Openbox — минималистичный менеджер окон для X Window System, распространяется по лицензии GPL.

Применение:

  • можно использовать окружение LXDE, в котором он является оконным менеджером по умолчанию
  • собрать на его основе собственное окружение
  • использовать в каком-либо окружении рабочего стола только как рамку окон

Что он может:

  • отрисовывать рамку окон с кнопками управления и меню, с текстовым описанием
  • управлять окнами: свернуть, развернуть, закрыть, максимизировать, восстановить прежний размер, перетаскивать окно курсором при нажатой клавише Alt, изменять размер окна потянув за край, переключаться между окнами клавишами Alt+Tab
  • управлять виртуальными рабочими столами: переключаться между ними, перемещать окна с одного на другой
  • показывать контекстное меню на рабочем столе
  • запускать программы при входе в сессию openbox, завершать работу программ при выходе из сессии openbox
  • назначать горячие клавиши

Установка

Для установки Openbox выполните в терминале:

sudo apt-get install openbox obconf obmenu

Формируем собственное окружение на основе Openbox

Теперь перелогинимся из текущего окружения в Openbox (выйдите из системы к меню ввода пароля и входа, нажмите на кнопку выбора окружения над полем и выберите openbox). Пред нами предстал серый фон и (возможно, если устанавливали) conky. Весь смысл openbox заключается в создании полностью стилизованного под себя окружения. Существует огромное количество допилок для openbox, самые основные будут приведены в этом руководстве.

Автозапуск программ

Стандартное приложение контроля автозапуска ведет себя адекватно, но мы рассмотрим ещё один способ для openbox - скрипт autostart в папке ~/.config/openbox/. По умолчанию он не создается, создайте его сами в любом текстовом редакторе. Он использует обычный Bash синтаксис. Пример:

conky &
lxpanel &
feh --bg-scale ~/.img/303215-1280x1024.jpg &
nautilus -n &
setxkbmap -layout "us,ru(winkeys)" -model "pc105" -option "grp:alt_shift_toggle,grp_led:scroll" &
skype --disable-cleanlooks -style GTK &
xscreensaver -nosplash &

Знак & в конце строки означает запуск в фоновом режиме.
Если нужно запустить программу после всех, то используйте sleep 3 && команда

Добавляем панель

На выбор предстает достаточно много панелей, самые известные - lxpanel, pypanel, fbpanel, adeskbar, tint2, wbar (только панель запуска).
Здесь приведен пример настройки lxpanel. Эта панель используется по умолчанию в lxde, установка:

sudo apt-get install lxpanel

Запуск:

lxpanel

Она запустится в стандартной конфигурации. В ней присутствует определённое количество виджетов по умолчанию, есть возможность добавлять GTK апплеты (network-manager у вас будет ярким примером). Настройка осуществляется с помощью файла ~/.config/lxpanel/название_конфига/config/. Также возможна через клик правой кнопкой мыши на панели → Настройки панели.

Переключение раскладки клавиатуры

Для переключения раскладки клавиатуры горячими клавишами Alt+Shift нужно добавить в автозапуск следующую команду:

setxkbmap -layout "us,ru(winkeys)" -model "pc105" -option "grp:alt_shift_toggle,grp_led:scroll" &

Для отображения значка раскладки на панели можно установить и прописать в автозапуск fbxkb.

Второй способ - установить gxneur.

Третий способ. Если вы используете lxpanel, нужно нажать правой кнопкой мыши на панели и добавить индикатор раскладки, нажать на нем правой клавишей мыши и настроить переключение клавиатуры между разными раскладками. В последней версии lxpanel добавили такую возможность.

Мультимедиа клавиши

Ubuntu по умолчанию использует pulseaudio, звук регулировать будем через него. Добавьте строки ниже в ваш ~/.config/openbox/rc.xml. В этом файле хранятся все конфигурации «забинденных» сочетаний клавиш. Для большинства клавиатур подойдёт такой XML:

  <keybind key="XF86AudioRaiseVolume">
     <action name="Execute">
       <command>amixer -D pulse set Master 5%+ unmute</command>
     </action>
   </keybind>
   <keybind key="XF86AudioLowerVolume">
     <action name="Execute">
       <command>amixer -D pulse set Master 5%- unmute</command>
     </action>
   </keybind>
   <keybind key="XF86AudioMute">
     <action name="Execute">
       <command>amixer set Master toggle</command>
     </action>
   </keybind>

Изменения в файле rc.xml не вступят в силу, пока не будет перезагружен Openbox.

Определение названий мультимедиа клавиш

Если X дает отличные от «XF86Audio…» названия вашим мультимедиа клавишам, то для их определения вы можете использовать утилиту xev. Запустите её в терминале, перед вами откроется окошко с квадратиком. Сделайте окно активным (просто поместите его поверх всех остальных), «вытащите» из него курсор и нажмите на любую мультимедиа клавишу. Не нажимая другие клавиши (кроме, конечно, кнопки мыши) и не вводя курсор в окно закройте его. Возьмите текст последнего абзаца, он будет примерно таким:

 KeymapNotify event, serial 46, synthetic NO, window 0x0,
    keys:  79  0   0   0   0   0   0   0   0   0   0   0   0   0   0   4   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

KeyRelease event, serial 46, synthetic NO, window 0x3000001,
    root 0x34f, subw 0x0, time 1620513, (-72,18), root:(352,715),
    state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

где XF86AudioLowerVolume - искомое название. Проделайте данную операцию со всеми остальными мультимедиа кнопками и проделайте рецепт выше, заменив «XF86Audio…» на ваши названия, в первом случае на «громкость больше», во втором случае на «громкость меньше», а в третьем на «выключить звук».

Вызов клавишами Alt+F2 окна для выполнения команд

Решение аналогичное предыдущему (с мультимедиа клавишами). Выберите любой менеджер запуска приложений, в качестве примера используется gmrun. Установите его:

sudo apt-get install gmrun

Добавьте следующие строчки в ~/.config/openbox/rc.xml:

    <keybind key="A-F2">
      <action name="Execute">
        <command>gmrun</command>
      </action>
    </keybind>

Перезапустите Openbox.

Если вы используете lxpanel, то gmrun можно заменить на команду lxpanelctl run.

Файловый менеджер

Вы можете использовать любой, какой вам захочется:

и так далее…

Фон рабочего стола

Существует много приложений для управления фоном рабочего стола, здесь приводится пример для feh. Установка:

sudo apt-get install feh

Использование:

feh --bg-scale путь_до_изображения

Пример добавления в автозапуск см. выше.

Меню выключения

Установим мини программу gxmessage, которая позволяет сделать графический интерфейс для Bash скриптов.

sudo apt-get install gxmessage

Создадим в каталоге ~/bin текстовый файл oblogout с таким содержимым:

#!/bin/bash
 
gxmessage "Завершение работы" -center -title "Take action" -font "Sans bold 10" -default "Отмена" -buttons "_Отмена":1,"_Гибернация":2,"_Перезагрузка":3,"_Выключение":4,"_Выход из сеанса":5 >/dev/null 
 
case $? in
	1)
		echo "Exit";;
	2)
		dbus-send --system --print-reply  --dest=org.freedesktop.UPower /org/freedesktop/UPower  org.freedesktop.UPower.Hibernate;;
	3)
		dbus-send --system --print-reply  --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager  org.freedesktop.ConsoleKit.Manager.Restart;;
	4)
		dbus-send --system --print-reply  --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager  org.freedesktop.ConsoleKit.Manager.Stop;;
	5)
		openbox --exit;;
esac

В свойствах файла нужно разрешить исполнение.
Теперь можете использовать команду oblogout для завершения работы.
Данную команду можно добавить в меню панели, в меню рабочего стола - obmenu, назначить горячие клавиши.

В новых версиях Ubuntu, начиная, как минимум с 16.04, приведенный выше скрипт, работать не будет, так как он требует изменения команд для dbus. Пример скрипта для Ubuntu 16.04 приведен ниже. Вместо gxmessage он использует zenity. Но это не мешает при желании переписать его для gxmessage.

#!/bin/bash
RETURN_CODE=`zenity --window-icon="укажите тут полный путь к иконке, которую желаете видеть в заголовке окна" \
		--list --radiolist \
		--title="Выключение компьютера" \
		--text="Выберите предпочитаемое действие:" \
		--column="Выбор" --column="Действие" \
		TRUE "Выключение компьютера" FALSE "Перезагрузка" FALSE "Ждущий режим" FALSE "Спящий режим"`
if [ "$RETURN_CODE" = "Выключение компьютера" ]; then
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true
fi
if [ "$RETURN_CODE" = "Перезагрузка" ]; then
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.Reboot" boolean:true
fi
if [ "$RETURN_CODE" = "Ждущий режим" ]; then
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.Suspend" boolean:true
fi
if [ "$RETURN_CODE" = "Спящий режим" ]; then
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.Hibernate" boolean:true
fi

GTK2+GTK3+Openbox

Это одна из самых сложных тем в настройке Openbox. Вам нужно подобрать такую тему Openbox, GTK2 и GTK3, чтобы они подходили друг к другу (на ваш вкус). Подбирать их можно на ресурсах GNOME-look.org и Box-look.org (для GTK и *box соответственно).

На GNOME-look.org желательно выбирать только GTK3 тему, т.к. в архиве с ними идут и GTK2 порты.

Итак, вы выбрали темы. Но не спешите радоваться! Во-первых, русские шрифты могут всё испортить. Во-вторых, никто не знает, как она запустится у вас. Лучше сначала посмотреть GTK3 тему (по одной из инструкций ниже), если нормально запустится и понравится - ставить GTK2 из того-же архива и подбирать под все это *box тему.

Установка GTK2 темы

Здесь все просто. Вы можете вручную редактировать файл ~/.gtkrc-2.0. Подробнее о его синтаксисе вам поможет узнать Google. Здесь описан простой способ установки GTK2 темы. Устанавливаем пакет gtk-theme-switch:

sudo apt-get install gtk-theme-switch 

Скопируйте из архива папку с названием темы, содержащую в себе gtk2.0 и, возможно, index.theme в ~/.themes (если такой папки нет - создайте). Воспользуйтесь командой в терминале

gtk-theme-switch2

Выберите свежеустановленную тему и нажмите Apply. Ваши настройки применятся и сгенерируется новый файл ~/.gtkrc-2.0.

Установка GTK3 темы

Воспользуйтесь любой инструкцией из интернета по установке через Ubuntu Tweak. Не работает? Распакуйте из скачанного архива содержимое папки «Название_темы/gtk3.0» в ~/.config/gtk-3.0 и запустите какое-либо приложение, использующее GTK3 (например Gedit).

Установка Openbox темы

Здесь все очень просто: с Box-look.org вы скачаете .obt файл - архив с темой. С помощью obconf выберите его, нажав в окне этой программы «Установить новую тему…».

Ссылки