Настройка и использование OpenBox Window Manager | |
Дата публикации: April 10, 2010, 12:56 p.m.
| Теги: openbox, настройка, |
Автор: Brainsburn |
Краткое содержание: Настройка меню OpenBox; автозапуск программ в OpenBox; установка тем оформления; установка фона рабочего стола; панель задач и системный трей; лаунчер программ; горячие клавиши и мультимедиа клавиатура в OpenBox.
Решил я сменить свой FluxBox на что-нибудь другое. Единственная причина - известный баг, при котором многие флэш-анимации (если честно, ненавижу флэш) на сайтах не реагируют на нажатие кнопок мыши. Частично эта проблема решалась прописыванием export GDK_NATIVE_WINDOWS=1 в ~/.bashrc , но все-равно на многих сайтах проблема оставалась.
FluxBox меня радовал всем. Быстрый и незаметный - вот каким должен быть оконный менеджер, на мой взгляд. Я пробовал динамические тайловые оконные менеджеры типа Awesome и Xmonad но, как говорится, это не мое. Поэтому, когда от FluxBox пришлось отказываться, мой выбор пал на OpenBox.
Установив OpenBox командой emerge openbox и добавив строку openbox вместо строки startfluxbox в файл ~/.xinitrc (чтобы OpenBox запускался по startx), и перезапустив иксы, я попал (куда бы вы думали?) в дефолтный опенбокс. Возможно, если бы вместо FluxBox у меня был установлен KDE или Gnome, я бы испугался такому виду - черный экран, нету даже панели задач и лишь меню, появляющееся по правому клику мыши, дает понять, что это именно OpenBox. Но, это пройденный этап - мы видали и не такое ;)
В первую минуту был обнаружен глюк - окно Conky стало отображаться поверх всех остальных окон. Вылечился он очень быстро - в ~/.conkyrc надо было заменить строку own_window_type override на own_window_type normal
Настройка меню OpenBox
Первым делом было решено настроить меню. Для этой цели я решил воспользоваться графической утилитой obmenu (устанавливается отдельно). Я скопировал дефолтный конфиг в домашнюю директорию и запустил obmenu
$ mkdir ~/.config/openbox && cp /etc/xdg/openbox/menu.xml ~/.config/openbox/menu.xml $ obmenuЭта утилита ничего не делает автоматически, она всего-лишь позволяет отказаться от копания в XML коде. Кстати, после добавления нового меню, не забудьте добавить link на это меню в рутовое меню "Openbox 3", иначе ваше новое меню не будет отображаться. Чтобы изменения вступили в силу, нужно сохранить меню в Obmenu и выбрать System - Reconfigure Openbox в основном меню OpenBox, перезапускать иксы не нужно =)
Автозапуск программ в OpenBox
При запуске иксы смотрят файл ~/.xinitrc . Если его у вас нету - создайте. В него можно прописывать команды для тех программ, которые нужно запускать автоматически. Вот пример:
$ cat ~/.xinitrc psi & qutim & conky & xxkb & feh --bg-scale /files/Pictures/Абстракции/organic.jpg & tint2 & openboxОбратите внимание - команда openbox идет последней и после всех команд, идущих перед ней, стоит символ &. Если в этом примере "tint2 &" изменить на "tint2", то openbox не запустится, пока не завершится процесс tint2.
Установка фона рабочего стола в OpenBox
Знаете, возможно существуют удобные программки для быстрой смены фона на рабочем столе с GUI и всякими плюшками, но я меняю фон не чаще чем раз в месяц (раньше менял чаще, со временем это прошло), поэтому для установки обоев я воспользовался утилитой feh:
$ feh --bg-scale /files/Pictures/Абстракции/organic.jpgЭту же команду нужно добавить в ~/.xinitrc , тогда нужный вам фон будет устанавливаться каждый раз при запуске иксов. Причем этот способ не привязан к оконному менеджеру и будет работать везде.
Установка тем оформления в OpenBox
Я уже было приготовился открывать конфигурационный файл в текстовом редакторе, но обломался - почти во всех мануалах советуют использовать графическую утилиту obconf, которая позволяет удобно менять темы оформления, устанавливать новые темы да и вообще конфигурить OpenBox под собственные нужды. Через нее можно сделать, чтобы по двойному клику на заголовке окна оно привычно сворачивались в заголовок вместо разворачивания на весь экран; изменить шрифты, изменить кол-во рабочих столов и т.д. Довольно удобная тулза :)
Панель задач и системный трей в OpenBox
Из самых популярных я выделил бы PyPanel, Tint2 и fbpanel. Последняя мне показалось слишком навороченной, поэтому ее я отложил в сторонку. PyPanel довольно легка и хороша, но мне больше понравилась Tint2, уж не знаю почему. Пользователи Gentoo при установке Tint2 могут выбрать флаг examples, тогда tint2 установится вместе с несколькими примерами конфигурационных файлов, которые будут лежать в /usr/share/doc/tint2-0.9/examples/ . Дефолтный файл конфигурации tint2 называется ~/.config/tint2/tint2rc . Конфиг очень прост и интуитивен - мне хватило пяти минут, чтобы методом тыка привести tint2 панель в нужный мне вид. Для того, чтобы tint2 стартовала автоматически, я добавил строку tint2 & в ~/.xinitrc .
Лаунчер программ в OpenBox
В FluxBox лаунчер был сразу и вызывался сочетанием alt-F2. В OpenBox его надо ставить отдельно. Посоветую или grun или gmrun. Как сделать, чтобы они вызывались по сочетанию клавиш, читайте ниже в части "Горячие клавиши в OpenBox"
Горячие клавиши в OpenBox
Сочетания горячих клавиш настраиваются в ~/.config/openbox/rc.xml Ctrl-Alt-Left - переместиться на предыдущий рабочий стол
Ctrl-Alt-Right - переместиться на следующий рабочий стол
Shift-Alt-Left - переместить активное окно на предыдущий рабочий стол
Shift-Alt-Right - переместить активное окно на следующий рабочий стол
Windows-F1..F4 - перейти на нужный рабочий стол (1..4)
Настраиваются горячие клавиши в разделе keyboard Для того, чтобы по Alt-F2 вызывался лаунчер gmrun, добавьте в этот раздел следующие строки:
Ctrl-Alt-Right - переместиться на следующий рабочий стол
Shift-Alt-Left - переместить активное окно на предыдущий рабочий стол
Shift-Alt-Right - переместить активное окно на следующий рабочий стол
Windows-F1..F4 - перейти на нужный рабочий стол (1..4)
Настраиваются горячие клавиши в разделе keyboard Для того, чтобы по Alt-F2 вызывался лаунчер gmrun, добавьте в этот раздел следующие строки:
key="A-F2">
name="Execute">
gmrun
В моем дефолтном конфиге OpenBox не было таких биндингов как Alt-F10 для распахивания окна на весь экран и Alt-F9 для сворачивания. Привожу примеры бинда клавиш для управления окнами:
Переключатель Распахнуть окно на весь экран
key="A-F10">
name="ToggleMaximizeFull"/>
Переключатель Максимизировать окно по вертикали
key="A-F8">
name="ToggleMaximizeVert"/>
Свернуть окно в панель задач
key="A-F3">
name="Iconify"/>
Переключатель Максимизировать окно по горизонтали
key="A-F9">
name="ToggleMaximizeHorz"/>
Переключатель Растянуть содержимое окна на весь экран
key="A-F12">
name="ToggleFullscreen"/>
Переключатель Снять/Показать декорации окна
key="A-S-d">
name="ToggleDecorations"/>
Мультимедиа клавиатура и OpenBox
Во FluxBox я назначал мультимедиа клавиши в файле ~/.fluxbox/keys , узнавая код клавиш утилитой xev. В OpenBox есть одна тонкость - код клавиш нужно перевести в 16-ричную систему счисления. Например, вы хотите забиндить какую-то мультимедиа клавишу на увеличение громкости звука ALSA. Запускаете в терминале утилиту xev, нажимаете нужную клавишу и смотрите ее keycode. Там будет что-то вроде этого:
KeyRelease event, serial 39, synthetic NO, window 0x1e00001, root 0x15a, subw 0x0, time 1613305, (627,558), root:(655,831), state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: FalseЖирным текстом выделено нужное. Теперь это число (122) нужно перевести в 16-ричное. Делается это просто:
$ printf "%X\n" 122 7AК этому числу нужно добавить спереди "0x", т.е. получится "0x7A". Теперь, используя этот код клавиши (0x7A), биндите клавишу как обычно:
key="0x7A">
name="Execute">
amixer sset Front 1+
Ну и под конец привожу краткий список софта, который пригодится тем, кто использует WM вместо DE.
Настройка OpenBox - obconf, obmenu и... vim =))
Использование темы GTK для Qt программ - qtconfig.
Выбор темы GTK - gtk-theme-switch
Панель задач и системный трей - PyPanel, fbpanel или tint2
Автоматическое монтирование флешек и CD/DVD дисков - ivman или autofs
Лаунчер (запуск программ по Alt-
Установка фона рабочего стола - консольный feh или графический nitrogen
Отдельная раскладка клавиатуры для каждого окна - xxkb
Создание скриншотов - scrot
Логин менеджер для иксов - Slim