После длительных скитаний по разным DE и WM я пришел к OpenBox. Слышал про него и раньше. Даже пробовал ставить. Но сейчас понимаю что наверное я сильно был занят что пропустил его мимо. Кратко о OpenBox:
Openbox — свободный менеджер окон для X Window System, распространяемый под лицензией GNU General Public License. Изначально Openbox произошёл от Blackbox 0.65.0, но затем был полностью переписан на языке Си и с версии 3.0 не базируется на программном коде Blackbox.
Openbox разработан маленьким и быстрым, он поддерживает много функций, таких, как меню, с помощью которого пользователь может управлять приложениями.
Мое мнение:
Мой Openbox. Сутки после установки |
Собственно эта статья посвящена сборке среды рабочего стола на основе менеджера окон OpenBox:
После установки и входа в OpenBox вы окажитесь на пустом рабочем столе лишенным всяких панелей, значков и обоев. Полагаю что первым делом вам захочется настроить элементарные части, для создания комфортной работы.
Панель задачПанель tint2 |
Я видел несколько сносок на панель задач для OpenBox. Выбор не так велик. Для себя я выбрал довольна молодой проект tint2. Его преимущества это необычный подход к отображению панели. А именно то что панель можно расположить как скринлет. Углы у панели и ее элементов можно округлять что в месте едва заметной прозрачностью создает необычный тандем. Все настройки можно изменять в файле ~/.config/tint2/tint2rc. Здесь пример как настраивать панель на странице проекта (на английском). Пример моего файла конфигурация:
#---------------------------------------------
# TINT2 CONFIG FILE
#---------------------------------------------
#---------------------------------------------
# BACKGROUND AND BORDER
#---------------------------------------------
rounded = 3
border_width = 1
background_color = #EDE9E3 60
border_color = #776E6D 100
rounded = 5
border_width = 1
background_color = #776E6D 40
border_color = #EDE9E3 100
rounded = 5
border_width = 1
background_color = #CFC7BA 18
border_color = #776E6D 100
#---------------------------------------------
# PANEL
#---------------------------------------------
panel_monitor = all
panel_position = top center
panel_size = 100% 30
panel_margin = 0 0
panel_padding = 7 0
font_shadow = 0
panel_background_id = 1
wm_menu = 0
panel_dock = 0
panel_layer = normal
#---------------------------------------------
# TASKBAR
#---------------------------------------------
#taskbar_mode = multi_desktop
taskbar_mode = single_desktop
taskbar_padding = 2 3 2
taskbar_background_id = 0
#taskbar_active_background_id = 0
#---------------------------------------------
# TASKS
#---------------------------------------------
task_icon = 1
task_text = 1
task_maximum_size = 140 35
task_centered = 1
task_padding = 6 3
task_font = sans 7
task_font_color = #1A1A1A 70
task_background_id = 3
task_icon_asb = 100 0 0
# replace STATUS by 'urgent', 'active' or 'iconfied'
#task_STATUS_background_id = 2
#task_STATUS_font_color = #ffffff 85
#task_STATUS_icon_asb = 100 0 0
# example:
task_active_background_id = 2
task_active_font_color = #1A1A1A 85
task_active_icon_asb = 100 0 0
urgent_nb_of_blink = 8
#---------------------------------------------
# SYSTRAYBAR
#---------------------------------------------
systray = 1
systray_padding = 0 4 5
systray_background_id = 0
systray_sort = left2right
systray_icon_size = 0
systray_icon_asb = 100 0 0
#---------------------------------------------
# CLOCK
#---------------------------------------------
time1_format = %H:%M
time1_font = sans 8
time2_format = %A %d %B
time2_font = sans 6
clock_font_color = #1A1A1A 76
clock_padding = 1 0
clock_background_id = 0
#clock_lclick_command = xclock
clock_rclick_command = orage
#clock_tooltip = %A %d %B
#time1_timezone = :US/Hawaii
#time2_timezone = :Europe/Berlin
#clock_tooltip_timezone = :/usr/share/zoneinfo/Europe/Paris
#---------------------------------------------
# BATTERY
#---------------------------------------------
battery = 1
battery_hide = 0
battery_low_status = 10
battery_low_cmd = notify-send "battery low"
bat1_font = sans 8
bat2_font = sans 6
battery_font_color = #1A1A1A 76
battery_padding = 1 0
battery_background_id = 0
#---------------------------------------------
# TOOLTIP
#---------------------------------------------
tooltip = 0
tooltip_padding = 2 2
tooltip_show_timeout = 0.7
tooltip_hide_timeout = 0.3
tooltip_background_id = 1
tooltip_font_color = #1A1A1A 80
tooltip_font = sans 10
#---------------------------------------------
# MOUSE ACTION ON TASK
#---------------------------------------------
mouse_middle = none
mouse_right = wm_menu
mouse_scroll_up = toggle
mouse_scroll_down = iconify
#---------------------------------------------
# AUTOHIDE OPTIONS
#---------------------------------------------
autohide = 0
autohide_show_timeout = 0.3
autohide_hide_timeout = 2
autohide_height = 4
strut_policy = minimum
Обои рабочего стола
OpenBox не умеет сам сохранять и отображать обои на рабочем столе. В сети распространены примеры установки обоев с помощью feh но после короткого времени его использования я понял что подбирать обои под настроение теперь у меня так легко не получиться. feh требует при авто запуске указывать адрес адрес изображения, а мысль о том что при смене обоев на рабочем столе мне необходимо будет переписывать руками (либо дополнительно писать программу) файл авто запуска (о нем поговорим позже) вызывает у меня отвращение. Потому я искал дальше пока не наткнулся на программу nitrogen в отличии от feh nitrogen использует графический интерфейс. Достаточно запустить программу с параметром в качестве каталога с изображениями (для удобства можно добавить подобный пункт к контекстному меню папок в файловом менеджере). Появиться небольшое окно с миниатюрами в котором можно выбрать не только само изображения для рабочего стола но и метод его расположения на рабочем столе. Если при таком выборе в окне выбрать пункт Сохранить то для восстановления обоев после перезагрузки будет достаточно запустить nitrogen с параметром --restore. И не каких файлов править дополнительно не понадобиться:) Недостатком nitrogen считаю небольшой список методов отображения картинки на рабочем столе.
Настройка раскладки клавиатуры
Если у вас уже стоял какой не будь DE либо при установке уже успели указать необходимое количество раскладок клавиатуры. остается лишь запустить индикатор раскладки и настроить так что бы раскладка клавиатуры была уникальная для каждого окна. Здесь без компромиссов по советам многочисленных поклонников OpenBox выбираем xxkb. xxkb это универсальный индикатор раскладки клавиатуры с возможностью определения раскладки для каждого окна, приложения индивидуально. Его конфигурационный файл можно создать (если его еще там нет) по адресу ~/.xxkbrc. Вот простой пример настройки xxkb:
XXkb.controls.two_state: no
XXkb.controls.add_when_start: yes
XXkb.controls.add_when_create: yes
XXkb*label.text.1: En
XXkb*label.text.2: Ru
XXkb*label.text.3: Ua
XXkb.mainwindow.type: tray
XXkb.mainwindow.label.enable: yes
XXkb.mainwindow.enable: yes
XXkb.mainwindow.appicon: no
XXkb.mainwindow.geometry: 20x20+0+0
XXkb.mainwindow.in_tray: KDE2
XXkb.mainwindow.label.background: #EDE9E3
XXkb.mainwindow.label.foreground: black
XXkb.mainwindow.label.font: -misc-*-r-*-13-*
XXkb.button.enable: no
У меня xxkb не корректно читал файл настроек и при перезагрузках уже по другому реагировал на его содержимое. Проблема была решена установкой версии 1.11-2.1
Настройка горячих клавиш
Для примера будем ставить на комбинацию клавиш Alt + F2 (так сложилось исторически и я не стал придумывать другой вариант) утилиты запуска программ. Она называется gmrun. Не скажу что на установку ее меня подтолкнули заметки других пользователей но раньше на Windows я пользовался программой Typeandrun потому ставил gmrun чисто из личных предпочтений. Возможно есть программы и лучше gmrun но на данный момент она меня устраивает полностью, потому отпадает необходимость искать аналоги. Конфигурационный файл gmrun храниться в ~/.gmrunrc. И так задача поставить запуск программы gmrun на комбинацию клавиш Alt + F2. Все горячие клавиши OpenBox хранит в файле ~/.config/openbox/rc.xml. Для того что бы поставить запуск программы на "горячие клавиши" надо изменять строки в этом файле. Вот пример установки запуска gmrun на комбинацию клавиш Alt+F2.
gmrun
Создание скриншота
Пример файла ~/.gmrunrc:
Создание скриншота
Пример файла ~/.gmrunrc:
# gmrun configuration file
# gmrun is (C) Mihai Bazon,
# GPL v2.0 applies
# Set terminal
Terminal = screen
#TermExec = ${Terminal} -bg black -fg white -geometry 100x60 -e
TermExec = ${Terminal}
AlwaysInTerm = ssh telnet ftp lynx mc vi vim pine centericq perldoc man
# Set window geometry (except height)
Width = 300
Top = 500
Left = 500
# History size
History = 256
# Shows last history line selected when invoked
ShowLast = 0
# Show files starting with '.'
# Default is 0 (off), set it to 1 if you want "hidden" files to show up
# in the completion window
ShowDotFiles = 0
# Timeout (in milliseconds) after which gmrun will simulate a TAB press
# Set this to NULL if don't like this feature.
TabTimeout = 0
# URL handlers
# If the entered text is "http://www.google.com" then:
# - %u gets replaced with the whole URL ("http://www.google.com")
# - %s gets replaced with "//www.google.com". This is useful for URL-s
# like "man:printf" --> %s will get replaced with "printf"
URL_http = firefox "%u"
URL_ftp = firefox "%u"
URL_mailto = firefox "%u"
URL_man = ${TermExec} "man %s"
URL_info = ${TermExec} "info %s"
URL_pd = ${TermExec} "perldoc %s"
URL_file = firefox "%u"
URL_readme = ${TermExec} 'most /usr/doc/%s/README'
URL_sh = sh -c "%s"
URL_bash = bash -c "%s"
# extension handlers
EXT:doc,rtf = abiword %s
EXT:txt,cc,cpp,h,java,html,htm,epl,tex,latex,js,css,xml,xsl,am = vim %s
EXT:ps = gv %s
EXT:pdf = acroread %s
Выключение и перезагрузка компьютера
Конечно вы удивитесь тому факту что в этой новой среде рабочего стола вы не найдете графических способов управления работой компьютера (имеется в веду выключение и перезагрузка компьютера). Но это только на первый взгляд. OpenBox имеет возможность управлять работой gdm с помощью команды gdm-control. Достаточно запускать ее с ключами --shutdown и --reload. Соответственно вам захочешь как минимум поместить эти полезные команды в меню OpenBox. Настройка меню храниться в файле ~/.config/openbox/menu.xml. Он представляет из себя xml структуру. Конечно его можно отредактировать вручную но для этих целей можно поставить obmenu. И добавить необходимые пункты в меню.
Вот все уже почти готово к работе. Почему почти? Осталось еще два немало важных пункта настройки.
Во первых после перезагрузки компьютера вы вернетесь к тому же с чего и начинали после первой загрузки OpenBox. По умолчанию никакая программа выбранная вами не будет отправлена на автозагрузку. То есть картинки на рабочем столе не будет так как нужно еще запустить nitrogen с параметром --restore. Панель tint2 тоже к сожалению сама не загрузиться. и это касается всего что должно авто загружаться при запуске рабочего стола.
Автозагрузка в OpenBox
Для того что бы программы автоматически запускались при старте OpenBox их нужно прописать в сценарии автозагрузки. Для OpenBox он находиться (либо его нужно создать) по адресу ~/.config/openbox/autostart.sh. Вот мой пример этого файла:
tint2 &
conky -c ~/.conkyrc1 &
xxkb &
/usr/bin/kdeinit &
kbluetooth &
nitrogen --restore &
Во вторых рано или поздно но вам захочется немного настроить OpenBox под себя. Как минимум поменять тему строки заголовка окна и меню OpenBox. Эти все настройки хранятся в файле ~/.config/openbox/rc.xml. И опять для упрощения работы с ним предлагается установить программу obconf.
Вот собственно и все. План минимум выполнен. Еще посоветую использовать для изменения тем иконок и тем GTK программу lxappearance. Создана она была для среды рабочего стола LXDE на базе оконного менеджера OpenBox потому можно сказать она нативная для него.
lxappearance |
Статья написана в качестве заметки для самого себя. Ее автор надеется что она сможет помочь кому то в сложном выборе среды рабочего стола.
Я и до сих пор остаюсь фанатом E17 но OpenBox лучший выбор для минималиста.
6 коммент. on "Установка и настройка OpenBox"
feh тоже может при загрузке ставить последнюю используемую картинку. Для этого в autostart.sh нужно вписать строчку "eval `cat ~/.fehbg` &&"
Я выбрал nitrogen потому что есть возможность просмотра обоев в списке (+список натравливается на определенную папку, это отсекает не нужные картинки). Да и применять на лету изображения к рабочему столу и смотреть результат это удобно. Я люблю консольные приложения но иногда гуй это быстро.
Ну это скорее дополнение к статье (кстати, там надо один знак &). Чтобы читатели не входили в заблуждение :)
насчет дополнений к статье. решил дополнить небольшим "фокусом". Как настроить клавиши мультимедиа в OpenBox
1. Запускаем xev
2. Жмем клавиши
3. Перебиваем (с помощью printf "%X\n" номер клавиши) в hex
4. описываем в rc.xml
5. profit
Статья отличная.
Избавляет от необходимости долго гуглить и выбирать, как раз то, что нужно.
Спасибо!
конфиг tint2 пригодился, никак не мог настроить трей нормально
Отправить комментарий