Настройка и использование OpenBox Window Manager | ||||
| ||||
| Автор: 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, добавьте в этот раздел следующие строки:
<keybind key="A-F2">
<action name="Execute">
<command>gmrun</command>
</action>
</keybind>
В моем дефолтном конфиге OpenBox не было таких биндингов как Alt-F10 для распахивания окна на весь экран и Alt-F9 для сворачивания. Привожу примеры бинда клавиш для управления окнами:
Переключатель Распахнуть окно на весь экран
<keybind key="A-F10">
<action name="ToggleMaximizeFull"/>
</keybind>
Переключатель Максимизировать окно по вертикали
<keybind key="A-F8">
<action name="ToggleMaximizeVert"/>
</keybind>
Свернуть окно в панель задач
<keybind key="A-F3">
<action name="Iconify"/>
</keybind>
Переключатель Максимизировать окно по горизонтали
<keybind key="A-F9">
<action name="ToggleMaximizeHorz"/>
</keybind>
Переключатель Растянуть содержимое окна на весь экран
<keybind key="A-F12">
<action name="ToggleFullscreen"/>
</keybind>
Переключатель Снять/Показать декорации окна
<keybind key="A-S-d">
<action name="ToggleDecorations"/>
</keybind>
Мультимедиа клавиатура и 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), биндите клавишу как обычно:
<keybind key="0x7A">
<action name="Execute">
<command>amixer sset Front 1+</command>
</action>
</keybind>
Ну и под конец привожу краткий список софта, который пригодится тем, кто использует WM вместо DE.
Настройка OpenBox - obconf, obmenu и... vim =))
Использование темы GTK для Qt программ - qtconfig.
Выбор темы GTK - gtk-theme-switch
Панель задач и системный трей - PyPanel, fbpanel или tint2
Автоматическое монтирование флешек и CD/DVD дисков - ivman или autofs
Лаунчер (запуск программ по Alt-) - grun или gmrun
Установка фона рабочего стола - консольный feh или графический nitrogen
Отдельная раскладка клавиатуры для каждого окна - xxkb
Создание скриншотов - scrot
Логин менеджер для иксов - Slim
Скриншоты OpenBox
Немного скриншотов из просторов Интернета
Видео скринкасты OpenBox
Возможно, эти материалы Вас заинтересуют:
no subject
Date: 2012-11-28 05:10 pm (UTC)за загрузку openbox отвечает файл /usr/bin/openbox-session лишнее писать в .xinitrc не нужно
obconf работает с локальным файлом, ссылка на /etc/xdg/openbox/menu.xml не нужна (а файл ~/.config/openbox/menu.xml нужен)
ещё нужно немного напильника, чтобы дебиановское меню в меню опенбокса присутствовало
no subject
Date: 2012-11-28 05:48 pm (UTC)оказалось - не был установлен gmrun :)
no subject
Date: 2012-11-28 05:55 pm (UTC)как раз после установки gmrun в ~/.config/openbox
файл menu.xml и появился:))
no subject
Date: 2012-11-28 08:09 pm (UTC)файл menu.xml и появился:))" - прямо чудеса )))
а dmenu имеется? (штука гораздо удобней gmrun)
no subject
Date: 2012-11-28 09:39 pm (UTC)....файл menu.xml и появился:))" - прямо чудеса )))...
правда появился:) у меня как раз файловфй менеджер был открыт, тольк что не было и вдруг...:)))
no subject
Date: 2012-11-29 10:17 pm (UTC)no subject
Date: 2012-11-30 10:13 pm (UTC)