PekWM — малоизвестный, но сравнимый по фичастости с openbox-ом менеджер окон. А в некоторых вещах — и опережающий openbox. Возможности:
- Possibility to group windows in a single frame
- Configurable keygrabber that supports keychains
- Configurable mouse actions
- Configurable root- and window-menus and keybindings for all menus
- Dynamic menus that regenerate on every view from a script output
- Multi-screen support both via RandR and Xinerama
- Configurable window placement
- Theming support with images, shaping and configurable buttons.
- Autoproperties (Automatic properties such as a window's sticky state, etc.)
На ЛОРе кто-то жаловался: «у pekwm настолько невменяемый дефолт, что сколько ни брался настраивать, не осилил».
Дефолтный конфиг у него действительно слегка неадекватен. Модель фокусировки по умолчанию - фокус следует за мышью. Нет никаких обозначений на кнопках в заголовке окна. Настройка хоткеев отличается от привычной DE-юзерам, и посмотреть их можно только в конфиге. Alt+Tab работает, но листает окна не в порядке MRU, а в порядке их создания. Ну и как маленькое издевательство: xterm из меню зачем-то запускается с опциями, перекрывающими настройки цвета из X Resources.
Скрин с дефолтом: https://s27.postimg.org/j5eeztudv/2017_01_17_105634_1366x768_scrot.png (слева xterm, запущенный при помощи команды Run, справа - запущенный непосредственно пунктом меню.)
На скрине по ссылке видно список тем, опакетированных в Арче для pekwm. Я потыкал во все, и ни одна из них не показалась мне приличной:
- Либо нет обозначений на кнопках заголовка. (Смысл? Убрали бы тогда их вообще...)
- Либо неконтрастное сочетание цвета фона и цвета текста.
- Либо просто страшные.
Тем не менее. Дефолт — для слабаков.
В первую очередь я занялся внешним видом. Выбрал тему, имитирующую XFCE. Не знаю, насколько удачно имитирующую, - оконный менеджер XFCE я много лет не видел, но выглядит нормально. Требуется только исправить контрастность надписей. Запускаем напильник:
$ cp -r /usr/share/pekwm/themes/xfce4 ~/.pekwm/themes/xfce4-fixed
$ mcedit ~/.pekwm/themes/xfce4-fixed/theme
diff, если кому надо. http://pastebin.com/Q5eDCvDY
Радует, что список тем обновляется сразу после создания новой, нет нужны вручную вызывать Reload.
Дальше - модель фокусировки. Тут всё просто. В ~/.pekwm/mouse непосредственно написано, какие строки надо раскомментировать, чтобы получить модель фокуса по щелчку.
Хоткеи в ~/.pekwm/keys:
Чтобы Alt+Tab перечислял окна в порядке MRU, нужно заменить биндинги NextFrame/PrevFrame на NextFrameMRU/PrevFrameMRU:
KeyPress = "Mod1 Tab" { Actions = "NextFrameMRU EndRaise" }
KeyPress = "Mod1 Shift Tab" { Actions = "PrevFrameMRU EndRaise" }
В принципе, на этом процедуру спасения рядового пользователя от дефолта можно считать оконченной. Но для полноты картины следует настроить прочие хоткеи, меню приложений и автозапускаемые приложения.
Мои настройки для действий с рабочими столами:
KeyPress = "Mod4 F1" { Actions = "GotoWorkspace 1" }
KeyPress = "Mod4 F2" { Actions = "GotoWorkspace 2" }
KeyPress = "Mod4 F3" { Actions = "GotoWorkspace 3" }
KeyPress = "Mod4 F4" { Actions = "GotoWorkspace 4" }
KeyPress = "Mod4 F5" { Actions = "GotoWorkspace 5" }
KeyPress = "Mod4 F6" { Actions = "GotoWorkspace 6" }
KeyPress = "Mod4 F7" { Actions = "GotoWorkspace 7" }
KeyPress = "Mod4 F8" { Actions = "GotoWorkspace 8" }
KeyPress = "Mod4 F9" { Actions = "GotoWorkspace 9" }
KeyPress = "Mod4 F10" { Actions = "GotoWorkspace 10" }
KeyPress = "Mod4 Shift F1" { Actions = "SendToWorkspace 1" }
KeyPress = "Mod4 Shift F2" { Actions = "SendToWorkspace 2" }
KeyPress = "Mod4 Shift F3" { Actions = "SendToWorkspace 3" }
KeyPress = "Mod4 Shift F4" { Actions = "SendToWorkspace 4" }
KeyPress = "Mod4 Shift F5" { Actions = "SendToWorkspace 5" }
KeyPress = "Mod4 Shift F6" { Actions = "SendToWorkspace 6" }
KeyPress = "Mod4 Shift F7" { Actions = "SendToWorkspace 7" }
KeyPress = "Mod4 Shift F8" { Actions = "SendToWorkspace 8" }
KeyPress = "Mod4 Shift F9" { Actions = "SendToWorkspace 9" }
KeyPress = "Mod4 Shift F10" { Actions = "SendToWorkspace 10" }
Действия над активным окном:
KeyPress = "Mod4 A" { Actions = "Toggle FullScreen" }
KeyPress = "Mod4 S" { Actions = "Toggle Maximized True True" }
KeyPress = "Mod4 Delete" { Actions = "Close" }
KeyPress = "Mod4 Space" { Actions = "ShowMenu Window" }
Ну и далее по вкусу. Надо сказать, править такие конфиги намного удобнее, чем копаться в лапше XML Openbox-а.
Количество и имена рабочих столов в ~/.pekwm/config, и прочие настройки:
Screen {
Workspaces = "10"
WorkspacesPerRow = "10"
WorkspaceNames = "α;β;γ;δ;ε;ζ;η;θ;ι;κ"
ShowFrameList = "True"
ShowStatusWindow = "True"
EdgeSize = "0 0 0 0"
Placement {
Model = "CenteredOnParent Smart MouseNotUnder"
}
}
В ~/.pekwm/vars правим команду вызова терминала:
#$TERM="xterm -fn fixed +sb -bg white -fg black"
$TERM="lilyterm"
Для динамически заполняемого меню приложений арчевики рекомендует menumaker или pekwm-menu. Первый на питоне, что само по себе уже не радует. И что более важно, он не умеет в локализацию пунктов меню.
Второй из AUR-а не собирается из-за ошибки в формате сборочного рецепта. Приходится закатывать Солнце вручную:
$ cd /tmp
$ yaourt -G pekwm-menu
$ cd pekwm-menu
$ mcedit PKGBUILD
$ makepkg
$ yaourt -U pekwm-menu-0.5.0-1-i686.pkg.tar.xz
Добавляем в корневое меню в файле ~/.pekwm/menu:
Submenu = "Applications" { Icon = "ICON"
Entry { Actions = "Dynamic pekwm-menu lxde-applications.menu" }
}
Автозапуск приложений:
В ~/.pekwm/start прописываем всё автозапускаемое. Мой вариант конфигурации:
export XDG_MENU_PREFIX='lxde-'
setxkbmap -model pc104 -layout 'us(basic),ru:2,rs(latinyz):3' -option '' \
-option lv3:ralt_switch,grp:shift_caps_switch,grp_led:caps,compose:menu &
killall xbindkeys 2>/dev/null
xbindkeys &
compton -cC &
waterline -p p1 &
stuurman -d &
rainbow-cm &
synapse -s &
nm-applet &
Не забыть сделать файл исполняемым:
$ chmod u+x ~/.pekwm/start
Итого, на скриншоте:
- pekwm с допиленной темой XFCE4.
- Показана возможность pekwm объединять в один фрейм несколько окон.
- pekwm-menu отображает динамическое меню по спеке freedesktop.
- Боковая и нижняя панель — waterline.
- ШГ — куда ж без него.
>>> Просмотр (1366x768, 449 Kb)