Узнать о том, что такое Openbox, и о моем отношении к этому оконному менеджеру, можно из статьи Почему я пользуюсь Openbox?. Кроме того, я уже делился своим ТОП 15 приложений для Openbox, который также может вас заинтересовать.
Итак, Openbox установлен. И вот что мы имеем изначально:
Кроме меню ничего больше нет. Нас это не устраивает. Давайте шаг за шагом проведем настройку Openbox, чтобы получить легковесную, удобную и одновременно мощную среду для повседневной работы.
При подготовке материала статьи я проводил эксперименты под виртуальной машиной VirtualBox с дистрибутивом Archlinux, но выбор не столь принципиален и советы подойдут для любой *nix-совместимой системы.
Сразу замечу, что процесс настройки Openbox достаточно индивидуален, поэтому представленные здесь советы лучше рассматривать как рекомендации, а не в качестве пошагового руководства.
Начнем с несколько побочного, но важного (лично для меня) пункта - автоматический вход в систему. Поскольку я работаю за компьютером один, то такой вариант меня вполне устраивает. Но если для вас подобное поведение является нежелательным (с точки зрения безопасности или по каким-то другим причинам), то можете переходить к следующему шагу.
Для автологирования проще всего использовать тот или иной менеджер входа в систему. Например, я использую lxdm
. После установки менеджера не забудьте его активировать:
sudo systemctl enable lxdm.service
Затем для включения функции автологирования отредактируйте файл конфигурации /etc/lxdm/lxdm.conf
. В группе [base]
раскомментируйте строку вида autologin=login
, где login
- логин пользователя, для которого должен выполняться автоматический вход в систему.
Linux без терминала - не Linux. В качестве GUI-терминала под Openbox я уже давно использую приложение sakura
. Можете тоже попробовать его, но это дело вкуса и привычки - подойдет любой терминал.
Удобнее всего настроить запуск Openbox таким образом, чтобы терминал стартовал автоматически. Первым делом скопируйте конфигурационные файлы Openbox в свой домашний каталог:
mkdir -p ~/.config/openbox/
cp /etc/xdg/openbox/* ~/.config/openbox/
Затем откройте конфигурационный файл ~/.config/openbox/autostart
и добавьте в конец следующее:
APPS='sakura'
(for X in $APPS ; do ($X &) ; done) &
Этот простой скрипт обеспечивает запуск списка (который пока что состоит из одного элемента) приложений.
Далее сделаем так, чтобы sakura
появлялась именно там, где нужно. Откройте файл ~/.config/openbox/rc.xml
и найдите в нем раздел <applications>
. Ближе к концу раздела (и файла) должен располагаться комментарий:
# end of the example
-->
Вставьте сразу после этого комментария следующий фрагмент xml-кода:
<application name="sakura" type="normal">
<desktop>1</desktop>
<maximized>yes</maximized>
<focus>yes</focus>
<layer>below</layer>
</application>
В теге <desktop>
указано, что терминал должен появляться на первом виртуальном рабочем столе. С помощью <maximized>
говорим, что терминал должен быть развернут на весь экран. Тег <focus>
переводит фокус ввода на терминал после его запуска. А <layer>
закрепляет окно терминала на нижнем Z
-уровне так, что все остальные окна будут его перекрывать.
После ребута системы на первом рабочем столе должен появиться терминал:
С запуском более или менее разобрались, но хотелось бы иметь возможность еще и завершать работу не только командой shutdown
через консоль. Для этого можно установить приложение oblogout
. После установки настроим комбинацию клавиш для быстрого запуска. В файле ~/.config/openbox/rc.xml
найдите раздел <keyboard>
. В его конец добавьте следующий фрагмент:
<keyboard>
…
<keybind key="W-h">
<action name="Execute">
<command>oblogout</command>
</action>
</keybind>
</keyboard>
Затем обновите конфигурацию Openbox. Это можно сделать либо перезагрузив систему, либо с помощью системного меню System => Reconfigure Openbox
(чтобы меню появилось, нажмите правой кнопкой мыши на свободном участке рабочего стола; само меню изображено на первом скриншоте в начале этой статьи).
Как можно догадаться из фрагмента xml-кода, который мы добавили, вызвать oblogout
теперь можно с помощью комбинации клавиш Win + h
:
Обратите внимание, что настроить oblogout
вы можете в конфигурационном файле /etc/oblogout.conf
. Например, я поменял тему оформления кнопок на foom
, изменив параметр:
buttontheme = foom
Если понадобится, то можно сократить количество кнопок, поменять их быстрые клавиши и выполняемые команды. Мне кажется, что вполне достаточно оставить cancel
, logout
, restart
и shutdown
. Тогда, например, завершение работы компьютера достигается последовательным нажатием Win + h, h
, а перезагрузка - Win + h, r
.
При желании вы можете настроить для Openbox панель в стиле MacOS X, но от нее больше вреда, чем пользы. Она будет тормозить вашу работу, создавая соблазн лишний раз воспользоваться мышью при запуске приложений.
Для меня хорошо подошла панель задач - tint2
. Она легко устанавливается и просто настраивается с помощью вспомогательной утилиты tint2conf
. К тому же, имеются предустановленные темы оформления. Я рекомендую взять за основу одну из таких стандартных тем, а затем настроить ее под свои нужды.
Если хотите, то в качестве отправной точки можете взять мою конфигурацию:
# Tint2 config file
# Generated by tintwizard (http://code.google.com/p/tintwizard/)
# For information on manually configuring tint2 see http://code.google.com/p/tint2/wiki/Configure
# Background definitions
# ID 1
rounded = 0
border_width = 1
background_color = #000000 100
border_color = #464646 100
# ID 2
rounded = 0
border_width = 1
background_color = #000000 100
border_color = #333333 100
# ID 3
rounded = 0
border_width = 0
background_color = #46567C 100
border_color = #FFFFFF 0
# ID 4
rounded = 0
border_width = 1
background_color = #1F1F1F 100
border_color = #484848 100
# ID 5
rounded = 0
border_width = 0
background_color = #4B4B4B 100
border_color = #FFFFFF 20
# Panel
panel_monitor = all
panel_position = top center horizontal
panel_size = 100% 35
panel_margin = 0 0
panel_padding = 0 0 0
panel_dock = 0
wm_menu = 0
panel_layer = top
panel_background_id = 0
# Panel Autohide
autohide = 0
autohide_show_timeout = 0.3
autohide_hide_timeout = 2
autohide_height = 2
strut_policy = follow_size
# Taskbar
taskbar_mode = multi_desktop
taskbar_padding = 0 0 2
taskbar_background_id = 1
taskbar_active_background_id = 4
# Tasks
urgent_nb_of_blink = 8
task_icon = 1
task_text = 1
task_centered = 0
task_maximum_size = 140 35
task_padding = 0 1
task_background_id = 2
task_active_background_id = 3
task_urgent_background_id = 3
task_iconified_background_id = 5
# Task Icons
task_icon_asb = 70 0 0
task_active_icon_asb = 100 0 0
task_urgent_icon_asb = 100 0 0
task_iconified_icon_asb = 70 0 0
# Fonts
task_font = Droid Sans Bold 9
task_font_color = #FFFFFF 60
task_active_font_color = #FFFFFF 80
task_urgent_font_color = #FFFFFF 80
task_iconified_font_color = #CCC1C1 100
font_shadow = 0
# System Tray
systray = 1
systray_padding = 1 1 2
systray_sort = ascending
systray_background_id = 1
systray_icon_size = 20
systray_icon_asb = 70 0 0
# Tooltips
tooltip = 0
tooltip_padding = 2 2
tooltip_show_timeout = 0.7
tooltip_hide_timeout = 0.3
tooltip_background_id = 1
tooltip_font = sans 10
tooltip_font_color = #000000 80
# Mouse
mouse_middle = none
mouse_right = close
mouse_scroll_up = toggle
mouse_scroll_down = iconify
# Battery
battery = 0
battery_low_status = 10
battery_low_cmd = notify-send "battery low"
battery_hide = 98
bat1_font = sans 8
bat2_font = sans 6
battery_font_color = #FFFFFF 60
battery_padding = 1 0
battery_background_id = 0
# End of config
На скриншоте ниже приводится одна из стандартных конфигураций:
В качестве заключительного штриха для нашей первичной настройки Openbox добавим переключение клавиатурных раскладок. Я использую клавишу CapsLock
для переключения с английского на русский и обратно. Чтобы обеспечить такое поведение, создайте файл /etc/X11/xorg.conf.d/20-keyboard-layout.conf
:
Section "InputClass"
Identifier "keyboard-layout"
MatchIsKeyboard "on"
Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:caps_toggle,grp_led:scroll"
EndSection
Осталось добавить индикатор раскладки в системный трей панели задач. Для этого прекрасно подойдет приложение xxkb
. Для его настройки создайте в домашнем каталоге файл ~/.xxkbrc
:
XXkb.mainwindow.type: tray
XXkb.group.base: 1
XXkb.group.alt: 2
XXkb.mainwindow.enable: yes
XXkb.mainwindow.appicon: yes
XXkb.mainwindow.geometry: 16x16+0+0
XXkb.button.enable: no
XXkb.app_list.wm_class_name.start_alt: Pidgin
XXkb.controls.add_when_start: yes
XXkb.controls.add_when_create: yes
XXkb.controls.add_when_change: yes
XXkb.controls.focusout: no
XXkb.mainwindow.label.background: black
XXkb.mainwindow.label.foreground: white
XXkb.mainwindow.label.font: -misc-*-r-*-14-*
XXkb.mainwindow.label.text.1: En
XXkb.mainwindow.label.text.2: Ru
XXkb.mainwindow.label.enable: yes
А также не забудьте расширить содержимое файла ~/.config/openbox/autostart
, чтобы запуск xxkb
происходил автоматически при старте Openbox:
APPS='sakura
xxkb
tint2'
(for X in $APPS ; do ($X &) ; done) &
Конечно, нельзя сказать, что пользоваться Openbox в такой конфигурации удобно. Но самый минимум у нас уже есть: приложения можно запускать из терминала, а вход и выход из системы отработан.
Дальнейшие улучшения проводятся по двум фронтам - юзабилити (в первую очередь быстрые клавиши) и оформление. Оформление в мире Linux второстепенно, поэтому в следующий раз займемся повышением удобства использования…
Аноним:
Почему-то oblogout не входит в стандартные репы Debian.
Действительно, не входит. Был запасной вариант, который заключался в установке пакета obshutdown (то же самое, что и oblogout), но и его в репозиториях Debian не видно. Вероятно, придется брать из исходников.
Аноним
Почему-то oblogout не входит в стандартные репы Debian.