Pull to refresh

Скратчпад с mcabber в awesome WM

Reading time2 min
Views3.1K
В этом топике я расскажу, как с помощью модуля scratch я настроил удобный вызов и скрытие консольного джаббер-клиента mcabber в оконном менеджере awesome по хоткею. Это позволило мне освободить целый тэг, который раньше был занят под чат-клиент, плюс не нужно убирать фокус с текущего тега, с которым сейчас работаешь. Yeahconsole для этой задачи мне не подошла, т.к. у нее нет поддержки true-transparency(alpha channel), и она иногда криво отображает ncurses приложения.

Софт, используемый в данной схеме: awesome, screen, urxvt, mcabber, модуль scratch.

Для начала я создал файл screenrc в каталоге ~/.mcabber:

# не показывать, лишнюю в данном случае, строку хардстатуса
hardstatus ignore

# чтобы mcabber не залипал после нажатия Esc, визуально время реакции интерфейса резко уменьшается
maptimeout 0

# перемещаемся в каталог с конфигурационными файлами mcabber, вместо alparo подставьте имя своего юзера
chdir /home/alparo/.mcabber

# открываем две вкладки с двумя копиями mcabber запущенными для разных аккаунтов(может быть сколько угодно)
# открываем сначала первую, потом нулевую, чтобы в итоге нулевая осталась в фокусе
screen -t gtalk 1 mcabber -f mcabberrc_gtalk
screen -t main 0 mcabber -f mcabberrc

# биндим переключение между вкладками screen на ctrl+`
bindkey ^` next

В этом файле я указал только те настройки screen, которые нужны для mcabber. Все остальные общесистемные настройки у меня в /etc/screenrc.

На вики awesome есть раздел о Scratchpad manager, где можно почитать про все его фичи.
Вкратце, я скачал с git.sysphere.org/awesome-configs/tree каталог scratch и положил его в ~/.config/awesome/.

Потом добавил в начало файла ~/.config/awesome/rc.lua строку:

require("scratch")

А в секцию globalkeys этого файла добавил:

-- Scratchdrop
awful.key({ modkey }, "grave", function () scratch.drop("urxvtc -name scratch -e screen -rD -S mcabber", top, center, 0.98, 0.95) end),


Где top — положение вызываемого терминала по вертикали(может быть еще bottom или center),
center — положение по горизонтали(может быть еще left или right)
0.98 — высота терминала(максимум 1)
0.95 — ширина терминала(максимум 1)

Последний штрих — добавить в автозапуск либо запустить вручную команду:

screen -c /home/%username%/.mcabber/screenrc -d -m -S mcabber

На выходе получаем следующую картину:
при старте системы или запуске вручную вышеописанной команды запускается детачнутый screen и в нем запущено два mcabber'а — в каждом свой аккаунт. По нажатию win+`(win+grave) вызывается скратчпад и в нем запускается эмулятор терминала urxvtc, к которому аттачится screen с запущенным в нем mcabber. Переключение между аккаунтами mcabber по ctrl+`(ctrl+grave). По повторному нажатию win+` скратчпад скрывается.

При данном способе запуска screen появляется проблема: не работают хоткеи ctrl+s и ctrl+q. Но их можно эмулировать нажатием ctrl+a, s и ctrl+a, q соответственно.

Особенно круто это выглядит если включить в urxvtc true-transparency(подразумевается, что запущен композитный менеджер), добавив в ~/.Xdefaults следующие строки:

scratch*depth: 32
scratch*background:[85]black


Буду рад любым замечаниям, особенно касающимся улучшению и оптимизации этой схемы.

UPD добавил скриншот:
Tags:
Hubs:
+21
Comments45

Articles