Настройка Openbox: Юзабилити

Настройка Openbox: Юзабилити

Мы уже закончили с базовой настройкой Openbox в прошлый раз. Но все еще не так здорово, как хотелось бы. Теперь поработаем над улучшением опыта взаимодействия с системой.

Шаг 1. Управление окнами

В Openbox можно установить комбинации клавиш для выполнения практически любых операций с окнами. Вот лишь небольшой список тех комбинаций, которые можно настроить (и которыми я сам пользуюсь регулярно):

  1. Win + c — закрыть текущее окно (замена Alt + F4);
  2. Win + m — изменить размер текущего окна, чтобы оно занимало все доступное пространство рабочего стола;
  3. Win + l — свернуть (минимизировать) текущее окно;
  4. Win + Space — развернуть (максимизировать) текущее окно на весь экран или восстановить его размер, если оно уже развернуто;
  5. Win + Enter — поместить текущее окно в центр рабочего стола;
  6. Win + ; — переместить текущее окно на следующий монитор (конечно, если мониторов несколько);
  7. Ctrl + Alt + Shift + h — изменить размер текущего окна в левую сторону;
  8. Ctrl + Alt + Shift + l — изменить размер текущего окна в правую сторону;
  9. Ctrl + Alt + Shift + k — изменить размер текущего окна в нижнем направлении;
  10. Ctrl + Alt + Shift + j — изменить размер текущего окна в верхнем направлении;
  11. Ctrl + Win + h — сдвинуть текущее окно влево;
  12. Ctrl + Win + l — сдвинуть текущее окно вправо;
  13. Ctrl + Win + k — сдвинуть текущее окно вниз;
  14. Ctrl + Win + j — сдвинуть текущее окно вверх.

По умолчанию эти комбинации не включены. Но добавить их очень легко. Для этого откройте файл ~/.config/openbox/rc.xml. Найдите раздел <keyboard> и комментарий <!-- Keybindings for windows -->. А затем вставьте после этого комментария следующий xml-код:

Чтобы опробовать эти настройки, не забудьте обновить конфигурацию Openbox.

Следует заметить, что некоторые из назначенных комбинаций клавиш могут создавать конфликты с теми или иными приложениями. Например, текстовым редактором emacs. Поэтому вам может понадобиться подправить конфигурацию под свою среду.

Также обратите внимание на <keybind key="W-0x2F">. W означает клавишу Win, а 0x2F — 16-ричный код клавиши ';'. Но как узнать код клавиши? Для этого можно воспользоваться утилитой xev. Запустите ее в консоли, и нажмите ту клавишу, которая вас интересует. Например, для клавиши ';' в результате вы увидите (я оставил только интересующую нас часть информации):

Обратите внимание на значение keycode 47. Это и есть код клавиши ';'. Но почему 47, а не 0x2F? Потому что 47 — десятичная запись 16-ричного числа 0x2F.

Еще пара полезных комбинаций клавиш, которые напрямую не связаны с управлением окнами:

  1. Win + n — замена Alt + Tab;
  2. Win + Shift + n — замена Alt + Shift + Tab;
  3. Ctrl + Alt + k — перейти на следующий рабочий стол;
  4. Ctrl + Alt + j — перейти на предыдущий рабочий стол;
  5. Shift + Ctrl + k — перейти на следующий рабочий стол вместе с текущим окном;
  6. Shift + Ctrl + j — перейти на предыдущий рабочий стол вместе с текущим окном.

Для их использования вставьте следующий xml-код в файл ~/.config/openbox/rc.xml в любое место раздела <keyboard> (например, сразу после предыдущих добавленных инструкций):

Шаг 2. Запуск приложений с помощью комбинаций клавиш

В предыдущей статье мы уже добавили комбинацию клавиш для вызова oblogout. По аналогии можно обеспечить вызов любого приложения по нужному для вас сочетанию. Например, для терминала удобно использовать Win + t:

Если вы вставите этот фрагмент сразу за кодом привязки клавиш для oblogout, то легко сможете запускать терминал. Но есть один недостаток — каждый раз будет открываться новый терминал. Мне обычно достаточно одного. К тому же, sakura поддерживает вкладки.

Что же делать? Я использую следующий подход: если приложение еще не запущено, то запускаем его, иначе переходим к уже работающему экземпляру (даже если он находится на другом рабочем столе), передавая ему фокус ввода. Звучит хорошо, но как это сделать? К сожалению, на момент написания статьи Openbox такой возможности не поддерживает. Придется написать свой вспомогательный скрипт. А вот и он:

Обратите внимание, что для его работы вам понадобится утилита wmctrl. Скрипт работает не идеально и иногда может находить не то окно, которое нужно, но это происходит не часто.

Сохранить этот скрипт можно в подкаталоге домашнего каталога ~/.scripts/find_app.sh. Не забудьте дать ему права на выполнение chmod u+x ~/.scripts/find_app.sh. Далее откройте в редакторе файл ~/.config/openbox/environment, и добавьте в самый конец:

После перезагрузки Openbox наш скрипт find_app.sh станет виден в среде окружения. Поэтому мы можем вновь вернуться к ~/.config/openbox/rc.xml и отредактировать команду запуска sakura:

После вступления новой конфигурации в силу поведение комбинации клавиш Win + t будет приводить именно к тому поведению, которое мы ожидаем.

По аналогии вы можете назначить комбинации клавиш для любого приложения, которого захотите.

Шаг 3. Скриншоты

Еще одна крайне полезная вещь, без которой можно обходиться, но иметь под рукой необходимо. Сам Openbox не умеет делать скриншоты. Приходится использовать вспомогательные утилиты. Одной из таких утилит является scrot. Назначим создание скриншота всего экрана на комбинацию клавиш Win + ':

Чтобы она работала, не забудьте создать в домашнем каталоге подкаталог ~/screenshots/.

Еще время от времени требуется делать скриншоты только текущего окна, а не всего экрана. Для этого можно воспользоваться утилитой import, входящей в пакет imagemagick (не забудьте его установить). Создадим вспомогательный скрипт ~/.scripts/active_window_screenshot.sh:

Пусть этот скрипт вызывается по комбинации клавиш Win + [:

Заключение

Теперь у нас имеется полноценная среда управления окнами с клавиатуры на базе Openbox. Также мы можем быстро запускать нужные приложения и делать скриншоты наших достижений. В следующий раз займемся настройкой отображения некоторых приложений по аналогии с тем, что сейчас сделано только для терминала. Разберемся с закреплением окон к рабочему столу и монитору

Понравилась статья? Поделиться с друзьями:
Добавить комментарий