IT Notes

Настройка Openbox: Первые шаги

Узнать о том, что такое Openbox, и о моем отношении к этому оконному менеджеру, можно из статьи Почему я пользуюсь Openbox?. Кроме того, я уже делился своим ТОП 15 приложений для Openbox, который также может вас заинтересовать.

Итак, Openbox установлен. И вот что мы имеем изначально:

openbox-empty-thumbnail

Кроме меню ничего больше нет. Нас это не устраивает. Давайте шаг за шагом проведем настройку Openbox, чтобы получить легковесную, удобную и одновременно мощную среду для повседневной работы.

При подготовке материала статьи я проводил эксперименты под виртуальной машиной VirtualBox с дистрибутивом Archlinux, но выбор не столь принципиален и советы подойдут для любой *nix-совместимой системы.

Сразу замечу, что процесс настройки Openbox достаточно индивидуален, поэтому представленные здесь советы лучше рассматривать как рекомендации, а не в качестве пошагового руководства.

Шаг 1. Автологин

Начнем с несколько побочного, но важного (лично для меня) пункта - автоматический вход в систему. Поскольку я работаю за компьютером один, то такой вариант меня вполне устраивает. Но если для вас подобное поведение является нежелательным (с точки зрения безопасности или по каким-то другим причинам), то можете переходить к следующему шагу.

Для автологирования проще всего использовать тот или иной менеджер входа в систему. Например, я использую lxdm. После установки менеджера не забудьте его активировать:

sudo systemctl enable lxdm.service

Затем для включения функции автологирования отредактируйте файл конфигурации /etc/lxdm/lxdm.conf. В группе [base] раскомментируйте строку вида autologin=login, где login - логин пользователя, для которого должен выполняться автоматический вход в систему.

Шаг 2. Терминал

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-уровне так, что все остальные окна будут его перекрывать.

После ребута системы на первом рабочем столе должен появиться терминал:

openbox-sakura-thumbnail

Шаг 3. Завершение работы

С запуском более или менее разобрались, но хотелось бы иметь возможность еще и завершать работу не только командой 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:

openbox-oblogout-thumbnail

Обратите внимание, что настроить oblogout вы можете в конфигурационном файле /etc/oblogout.conf. Например, я поменял тему оформления кнопок на foom, изменив параметр:

buttontheme = foom

Если понадобится, то можно сократить количество кнопок, поменять их быстрые клавиши и выполняемые команды. Мне кажется, что вполне достаточно оставить cancel, logout, restart и shutdown. Тогда, например, завершение работы компьютера достигается последовательным нажатием Win + h, h, а перезагрузка - Win + h, r.

Шаг 4. Панель задач

При желании вы можете настроить для 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-tint2-thumbnail

Шаг 5. Раскладки клавиатуры

В качестве заключительного штриха для нашей первичной настройки 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.

Аноним:

Почему-то oblogout не входит в стандартные репы Debian.

Действительно, не входит. Был запасной вариант, который заключался в установке пакета obshutdown (то же самое, что и oblogout), но и его в репозиториях Debian не видно. Вероятно, придется брать из исходников.