В этом топике я расскажу, как с помощью модуля scratch я настроил удобный вызов и скрытие консольного джаббер-клиента mcabber в оконном менеджере awesome по хоткею. Это позволило мне освободить целый тэг, который раньше был занят под чат-клиент, плюс не нужно убирать фокус с текущего тега, с которым сейчас работаешь. Yeahconsole для этой задачи мне не подошла, т.к. у нее нет поддержки true-transparency(alpha channel), и она иногда криво отображает ncurses приложения.
Софт, используемый в данной схеме: awesome, screen, urxvt, mcabber, модуль scratch.
Для начала я создал файл screenrc в каталоге ~/.mcabber:
В этом файле я указал только те настройки screen, которые нужны для mcabber. Все остальные общесистемные настройки у меня в /etc/screenrc.
На вики awesome есть раздел о Scratchpad manager, где можно почитать про все его фичи.
Вкратце, я скачал с git.sysphere.org/awesome-configs/tree каталог scratch и положил его в ~/.config/awesome/.
Потом добавил в начало файла ~/.config/awesome/rc.lua строку:
А в секцию globalkeys этого файла добавил:
Где top — положение вызываемого терминала по вертикали(может быть еще bottom или center),
center — положение по горизонтали(может быть еще left или right)
0.98 — высота терминала(максимум 1)
0.95 — ширина терминала(максимум 1)
Последний штрих — добавить в автозапуск либо запустить вручную команду:
На выходе получаем следующую картину:
при старте системы или запуске вручную вышеописанной команды запускается детачнутый 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 следующие строки:
Буду рад любым замечаниям, особенно касающимся улучшению и оптимизации этой схемы.
UPD добавил скриншот:
Софт, используемый в данной схеме: 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 добавил скриншот: