arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
127 lines (79 loc) • 10.8 kB
Markdown
Ссылки по теме
* [dmenu](/index.php/Dmenu "Dmenu")
* [wmii](/index.php/Wmii "Wmii")
[DWM](http://dwm.suckless.org/) — это динамический [фреймовый](https://ru.wikipedia.org/wiki/Фреймовый_оконный_менеджеррежиме) оконный менеджер для [X](/index.php/Xorg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Xorg (Русский)"). Его функционал может быть значительно расширен различными [Дополнениями](#.D0.94.D0.BE.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F). Режимы работы могут переключаться динамически, в зависимости от приложения и поставленной задачи. **dwm** - чрезвычайно легковесный и быстрый, написан на Си при условии не выходить за рамки 2000 строк исходного кода. Он обеспечивает поддержку нескольких видео-выходов для [xrandr (Русский)](/index.php/Xrandr_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Xrandr (Русский)") и Xinerama.
## Contents
* [1 Установка](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0)
* [1.1 Требования](#.D0.A2.D1.80.D0.B5.D0.B1.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F)
* [1.2 Применение изменений](#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B8.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D0.B9)
* [1.3 Инструкции по использованию](#.D0.98.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BA.D1.86.D0.B8.D0.B8_.D0.BF.D0.BE_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8E)
* [2 Настройка](#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0)
* [3 Советы и рекомендации](#.D0.A1.D0.BE.D0.B2.D0.B5.D1.82.D1.8B_.D0.B8_.D1.80.D0.B5.D0.BA.D0.BE.D0.BC.D0.B5.D0.BD.D0.B4.D0.B0.D1.86.D0.B8.D0.B8)
* [3.1 Дополнения](#.D0.94.D0.BE.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F)
* [3.2 Строка состояния](#.D0.A1.D1.82.D1.80.D0.BE.D0.BA.D0.B0_.D1.81.D0.BE.D1.81.D1.82.D0.BE.D1.8F.D0.BD.D0.B8.D1.8F)
* [3.3 Перезапуск dwm без закрытия программ](#.D0.9F.D0.B5.D1.80.D0.B5.D0.B7.D0.B0.D0.BF.D1.83.D1.81.D0.BA_dwm_.D0.B1.D0.B5.D0.B7_.D0.B7.D0.B0.D0.BA.D1.80.D1.8B.D1.82.D0.B8.D1.8F_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC)
* [3.4 Пространство вокруг шрифта в строке состояния](#.D0.9F.D1.80.D0.BE.D1.81.D1.82.D1.80.D0.B0.D0.BD.D1.81.D1.82.D0.B2.D0.BE_.D0.B2.D0.BE.D0.BA.D1.80.D1.83.D0.B3_.D1.88.D1.80.D0.B8.D1.84.D1.82.D0.B0_.D0.B2_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B5_.D1.81.D0.BE.D1.81.D1.82.D0.BE.D1.8F.D0.BD.D0.B8.D1.8F)
* [3.5 Конфликт горячих клавиш между st и dwm](#.D0.9A.D0.BE.D0.BD.D1.84.D0.BB.D0.B8.D0.BA.D1.82_.D0.B3.D0.BE.D1.80.D1.8F.D1.87.D0.B8.D1.85_.D0.BA.D0.BB.D0.B0.D0.B2.D0.B8.D1.88_.D0.BC.D0.B5.D0.B6.D0.B4.D1.83_st_.D0.B8_dwm)
* [4 Устранение проблем](#.D0.A3.D1.81.D1.82.D1.80.D0.B0.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D1.80.D0.BE.D0.B1.D0.BB.D0.B5.D0.BC)
* [4.1 Java приложения](#Java_.D0.BF.D1.80.D0.B8.D0.BB.D0.BE.D0.B6.D0.B5.D0.BD.D0.B8.D1.8F)
* [4.2 Firefox(полноэкранное html5(видео))](#Firefox.28.D0.BF.D0.BE.D0.BB.D0.BD.D0.BE.D1.8D.D0.BA.D1.80.D0.B0.D0.BD.D0.BD.D0.BE.D0.B5_html5.28.D0.B2.D0.B8.D0.B4.D0.B5.D0.BE.29.29)
* [5 Смотрите также](#.D0.A1.D0.BC.D0.BE.D1.82.D1.80.D0.B8.D1.82.D0.B5_.D1.82.D0.B0.D0.BA.D0.B6.D0.B5)
## Установка
**Примечание:** Если вы собрались использовать [dwm](https://aur.archlinux.org/packages/dwm/), учтите что для любой конфигурации требуется компиляция из исходных кодов. С примерами конфигурации можно ознакомится в разделе [#Настройка](#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0).
Основным способ получения исходных кодов **dwm** является использование [ABS](/index.php/ABS "ABS")([asp](https://www.archlinux.org/packages/?name=asp)). Однако для ознакомления(или в случаи отсутствия необходимости конфигурации) можно установить пакет [dwm](https://aur.archlinux.org/packages/dwm/) из официального репозитория.
### Требования
Для компиляции и сборки пакета **dwm** требуются пакеты [base-devel](https://www.archlinux.org/groups/x86_64/base-devel/) и [asp](https://www.archlinux.org/packages/?name=asp):
`# pacman -S base-devel asp`
Для навигации по списку приложений (рекомендуется) использовать [dmenu](https://www.archlinux.org/packages/?name=dmenu).
Для вывода информации в строку состояния (рекомендуется) [xorg-xsetroot](https://www.archlinux.org/packages/?name=xorg-xsetroot).
### Применение изменений
Все изменения вносимый в исходный код, будут доступны только после установки заново собранного пакета и перезапуска **dwm** `Mod1+Shift+Q`.
**Примечание:** После правки конфигурационных файлов для сборки и установки пакета используйте: `$ makepkg -efi `
### Инструкции по использованию
Основная [инструкция](http://dwm.suckless.org/tutorial) доступна на официальном сайте, а дополнительную информацию можно получить из:
`$ man dwm`
## Настройка
Настройка **dwm** заключается в правке исходных файлов. Все основные конфигурации собраны в файле `config.h`. Подробная информация о конфигурации хранится в хорошо прокомментированном файле `config.def.h`. Для получения дополнительной информации можно обратится к [официальному сайту](http://dwm.suckless.org/customisation/).
**Примечание:** Рекомендуем сделать копию файла config.h перед тем, как изменять его.
## Советы и рекомендации
### Дополнения
На официальном сайте имеется множество [дополнений](http://dwm.suckless.org/patches/), которые изменяют имеющийся функционал **dwm** внося изменения в `dwm.c` и `config.h`.
### Строка состояния
Оконный менеджер **dwm** использует имя основного окна работающего в фоне, в качестве [строки состояния](http://dwm.suckless.org/dwmstatus/).
С помощью `xsetroot -name ""` можно вывести любую информацию в строку состояния. Чтобы информация выводилась при старте **dwm** можно использовать `~/.xinitrc` или `~/.xprofile`. Пример ниже:
`xsetroot -name "Thanks for all the fish!"`
Для динамического обновления информации необходимо использовать цикл. Пример ниже:
```
while true; do
xsetroot -name "$( date +"%F %R" )"
sleep 1m # Время обновления
done &
```
**Примечание:** Также для вывода информации можно использовать conky, dzen и пр.
### Перезапуск dwm без закрытия программ
Для того что бы перезапустить **dwm** без закрытия приложений, **dwm** можно запустить в цикле. Пример ниже:
```
while true; do
dwm >/dev/null 2>&1
done
```
После этого можно будет перезапустить **dwm** `Mod1+Shift+Q`не затрагивая при этом остальные приложения.
**Примечание:** В случаи использования подобного подхода прийдётся использовать `killall xinit` для закрытия **dwm**
### Пространство вокруг шрифта в строке состояния
По умолчанию это расстояние составляет 2px. Изменить можно в файле `dwm.c`:
`bh = dc.h = dc.font.height + 2;`
### Конфликт горячих клавиш между st и dwm
В **dwm** по умолчанию для закрытие окон используется комбинация клавиш `Mod1+Ctrl+C` , в **st** эта же комбинация используется для копирования. Для нормальной работы необходим её переназначить в **st** либо же в **dwm**.
## Устранение проблем
### Java приложения
[Java#Non-reparenting window managers](/index.php/Java#Non-reparenting_window_managers "Java").
### Firefox(полноэкранное html5(видео))
При работе с html5(видео) в полноэкранном режиме не пропадает строка состояния. [Патч.](https://github.com/indeviral/dwm/blob/master/path/dwm-firefox-fs.diff) [Источник.](https://bbs.archlinux.org/viewtopic.php?id=212528)
## Смотрите также
* [dwm's official website](http://dwm.suckless.org/)
* [Introduction to dwm video](http://www.youtube.com/watch?v=GQ5s6T25jCc)
* [dmenu](/index.php/Dmenu "Dmenu") - Simple application launcher from the developers of dwm
* The [dwm thread](https://bbs.archlinux.org/viewtopic.php?id=57549/) on the forums
* [Hacking dwm thread](https://bbs.archlinux.org/viewtopic.php?id=92895/)
* Check out the forums' [wallpaper thread](https://bbs.archlinux.org/viewtopic.php?id=57768/) for a selection of dwm wallpapers
* [Show off your dwm configuration forum thread](https://bbs.archlinux.org/viewtopic.php?id=74599)