LINUX.ORG.RU

Как готовить pekwm

 ,


4

2

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)

Deleted

Проверено: JB ()
Последнее исправление: Deleted (всего исправлений: 4)

Модель фокусировки это кому как. Мне удобно, когда фокус следует за мышью, я в опенбоксе специально так сделал, и везде делаю. А вообще спасибо за подробную инструкция, она навела меня на мысль снова попробовать pekwm.

Dmitry_Sokolowsky ★★★★★
()

Очень даже неплохо. Только текст спрячьте под спойлер.

Odalist ★★★★★
()

мило, но fluxbox всё же няшнее, там встроена панель.

cetjs2 ★★★★★
()

Посоветую volumeicon, он будет смотрется лучше гигантского апплета, по себе знаю.

А так очень даже нравится мне.

timdorohin ★★★★
()
Ответ на: комментарий от Deleted

Для чего titlebar-ы у менюшек?

Видимо, потому что «мы можем». У части тем есть, у части - нет.

Deleted
()
Ответ на: комментарий от timdorohin

Посоветую volumeicon, он будет смотрется лучше гигантского апплета, по себе знаю.

Неа.

Громкость регулируется прокруткой мыши над апплетом - поэтому размер имеет значение. В большой апплет проще позиционировать мышь.

Deleted
()

Надо сказать, править такие конфиги намного удобнее, чем копаться в лапше XML Openbox-а.

Посмотри fluxbox. TL;DR, но есть подозрение, что если ковырять конфиги и настраивать всё под себя для тебя - ок, то стоит взглянуть на некоторые тайловые wm. В частности i3, awesome.

bytecode ★★
()
Ответ на: комментарий от bytecode

fluxbox я несколько лет назад смотрел, но что-то там не зашло. Кажется, были какие-то мешающие мне баги в совместимости с NETWM. Наверное, их пофиксили уже давно.

У меня слишком маленький экран для продуктивного использования тайлинга. А так в целом - мне хватает хоткеев нетайлингого WM-а и xbindkeys.

Deleted
()

kekwm

Страшненько, но простыня информативная.

HashDerpy
()
Ответ на: комментарий от Deleted

А, понятно. У меня ноут, регулирую функциональными клавишами, поэтому volumeicon использую ради индикации...

timdorohin ★★★★
()

openbox все же удобнее и привычнее для большинства

w1nner ★★★★★
()
Ответ на: комментарий от bytecode

стоит взглянуть на некоторые тайловые wm. В частности i3

я хотел предложить, особенно учитывая

Надо сказать, править такие конфиги намного удобнее, чем копаться в лапше XML

конфиги похожи. Но потом увидел

$ mcedit ~/.pekwm/themes/xfce4-fixed/theme

и

Громкость регулируется прокруткой мыши

мыши

и передумал...

Хотя, по сути, взять xfce-panel + запилить окна в дефолте floating и сделать ресайз по моусовер бордер - и вуаля, вот уже НЕ-тайлинговый вм с возможностью тайлинга.

Crystal_HMR ★★★
()

А какая панель тут использована? Миниатюры окон очень любопытные, хотя различать когда их много не реально.

kirill_rrr ★★★★★
()

Какая древность этот ваш pekwm, он хоть развивается?

Ygor ★★★★★
()
Ответ на: комментарий от Deleted

Боже. Не уважаю проекты, которые представлены только репой на гите. Альфа-версия кота в мешке, которую ещё надо собрать.

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

которую ещё надо собрать

Понимаю, непосильная задача для 90% посетителей ЛОРа. Но вы там держитесь.

Deleted
()
Ответ на: комментарий от Deleted

я могу это сделать. убью часов шесть чистого времени, буду сидеть и гордиться. зачем?!

З.Ы. ну, ладно. допустим есть веская причина сделать это. но ведь через месяц что то обновится и придётся повторить всё заново, руками. а после 5 раза придётся чистить мусор, откатываться, переставлять чистую систему или ещё что то в этом духе.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)

Ниче так, страшненько ©

Еще 10 лет назад, его можно было сделать покрасивее и вполне юзабельным. Сомневаюсь что с тех пор многое в нем изменилось)

Но с fvwm я на него тогда так и не слез.

CuB ★★
()
Последнее исправление: CuB (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

я могу это сделать. убью часов шесть чистого времени, буду сидеть и гордиться. зачем?!

Не знаю, чем тут гордиться, по-моему, код собрать - задача уровня «заправить машину» или «вкрутить лампочку». И занимает обычно столько же времени (если это не кеды и не фирефокс). Но если для тебя это такая сложная задача, ну значит не судьба.

Кстати, какой дистрибутив? Если не deb-based, я рассмотрю возможность сделать сборочные рецепты. Под Арч уже есть: https://github.com/sde-gui/pacman.sde-git

Deleted
()
Ответ на: комментарий от kirill_rrr

убью часов шесть чистого времени

Спасибо, рассмешил)) Не, ну правда, ты попробуй. Хотя, если у тебя какой дебиан, то с наскоку может и не получиться. Дистры с dev-пакетами они такие, не для слабаков)

bread
()
Ответ на: комментарий от bread

Именно дебиан. wine и firefox я раньше так и собирал. Это было давно и мне такие пляски надоели. Нет, менять дистрибутив чтобы в нём было удобно собирать чужие гит-проекты не разумно.

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

Именно дебиан. wine и firefox я раньше так и собирал. Это было давно и мне такие пляски надоели.

Лет 6 назад я вот так на Арч и пересел.

Нет, менять дистрибутив чтобы в нём было удобно собирать чужие гит-проекты не разумно.

Ладно чужие. Там столь же неудобно собирать свои.

Deleted
()
Ответ на: комментарий от Deleted

Есть такие понятия, как требуемые для сборки заголовочные файлы библиотек и требуемые для работы библиотеки. Я могу ошибаться в терминах, но суть та же. Их перечисляют в файле README, причём редко когда указывают имена пакетов для разных дистрибутивов, где их надо искать. А часто вообще забывают упомянуть, что для этого килобайта кода требуется некий фреймворк размером 0,5 Гб, который не у всех установлен.

Соответственно, в любом адекватном пакетном дистрибутиве надо нагуглить имена пакетов, а потом поставить их вручную. Потом сделать make и по ошибкам компилятора понять, что же не так. Ведь не всегда всё и везде собирается так, как на компе разработчика.

kirill_rrr ★★★★★
()
Ответ на: комментарий от Deleted

А слакбилды можешь запилить для всего SDE? Я все ленюсь попробовать штурман и свежую панель, до сих пор тащу lxpanelx из 2012. Собирается она кстати на ура, даже пакет для дебиана без проблем недавно собрал на тестинге.

bread
()
Ответ на: комментарий от bread

Насколько я помню, слакбилды - это же практически арчебилды, только без зависимостей? Могу заняться, не проблема.

Под слаку как принято собирать - все компоненты один архив?

Deleted
()
Ответ на: комментарий от kirill_rrr

в любом адекватном пакетном дистрибутиве надо нагуглить имена пакетов, а потом поставить их вручную

Сомневаюсь насчет адекватности таких дистров. В дебиане есть apt-get build-dep, но это понятно только для уже имеющихся пакетов. Вообще, если собирать под дебиан, лучше сразу вникать в их инструменты для пакетов, а не колхозить. Что-то готовое пересобрать там не так сложно, делать пакет с нуля вот это конечно гемор.

bread
()
Ответ на: комментарий от bread

делать пакет с нуля вот это конечно гемор

Я когда читал дебовский мануал по опакечиванию, меня не покидало ощущение, что это манускрипт призыва аццкого сотоны. При том, забагованый манускрипт. Вроде колдуешь-колдуешь, а сотоны всё нет.

Deleted
()
Ответ на: комментарий от Deleted

Под слаку как принято собирать - все компоненты один архив?

Я бы предпочел на каждый компонент по слакбилду. Да, зависимостей нет, но можно прописать в info файле. Можешь посмотреть для примера как готовят lxpanel на sbo: https://slackbuilds.org/repository/14.2/desktop/lxpanel/?search=lxpanel

bread
()

По сабжу: группировка во фреймах - это интересно. А как там с навигацией? Fluxbox я конечно щупал, но там как раз эта фича странно работает: только мышкой можно группировать, хоткеев нет и правила в настройках не работали почему то. В идеале нужны конечно именованные фреймы с полноценым управлением с клавы.

bread
()
Ответ на: комментарий от bread

Есть возможность назначить хоткеи. Действия а ля «пометить фрейм» и «сгруппировать всё помеченное».

Deleted
()

если честно, то много лет назад я пересел с fvwm на xfwm4 и ни разу не пожалел. Хз зачем нужно больше функционала. Весь мой кастомный конфиг реализовывается десятком чекбоксов :)

mrdeath ★★★★★
()

Жалко что разработку забросили, под него много скинов красивых.

robert_foster ★★
()
Ответ на: комментарий от Deleted

проект интересный, хотя бы минимальная документация бы не помешала.

val-amart ★★★★★
()

PekWM

Чем он лучше, того же самого IceWM?

Odalist ★★★★★
()

Ну что сказать, что сказать...

Г№!но, господа!

awesomebuntu
()

wayland support не вижу.

eR ★★★★★
()
Ответ на: комментарий от CuB

Родина дала им гитхаб с возможностью README написать и хоть скриншот один добавить, для гуйни-то, но нет, не будем. Будем на пользователей лучше бычить.

Hoodoo ★★★★★
()

Боковая панель похожа на xfdashboard для xfcе.

Stormy
()

JWM - Joe's Window Manager

Напишите кто-нибудь такую же инструкцию по JWM

https://joewing.net/projects/jwm/

Желательно с деталями о том как установить все это в LinuxMint

atsym ★★★★★
()

Настроить переключение между desktop'ами по горизонтальной прокрутке можно? Как у маководов.

Хороший скрин. Приятный. Сам остановился на openbox после долгих колебаний между dwm и evilwm — месяц стоял один, потом дёргал на другой, потом обратно. Надо поглядеть что там за pek такой.

dann
()
Последнее исправление: dann (всего исправлений: 2)

FPS в играх запущенных отдельно на pekwm довольно таки не плох. А если автору зашол этот wm то удачи ему в пользовании

debian000 ★★
()

а убрать заголовок для определенных окон при определенных условиях там можно?

ananas ★★★★★
()

Почему-то у меня все попытки освоить его кончаются тем, что он упорно отказывается запускать приложения, прописанные в автозапуске.

Dmitry_Sokolowsky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.