Difference between revisions of "Openbox (Русский)"

From ArchWiki
Jump to: navigation, search
(wikify some external links, use https for archlinux.org)
m (поправил битый линк)
Line 257: Line 257:
 
Этот скрипт находится в Openbox пакетах дистрибутива Fedora. Поэтому вы можете только скопировать скрипт куда-нибудь и создать для него точку входа в файле меню.
 
Этот скрипт находится в Openbox пакетах дистрибутива Fedora. Поэтому вы можете только скопировать скрипт куда-нибудь и создать для него точку входа в файле меню.
  
Найти его можно по этой ссылке: [http://pkgs.fedoraproject.org/gitweb/?p=openbox.git;f=xdg-menu;hb=HEAD последняя версия]
+
Найти его можно по этой ссылке: [http://pkgs.fedoraproject.org/cgit/openbox.git/tree/xdg-menu последняя версия]
  
 
Скачайте из репозитория выше. Поместите в любую, удобную для вас папку.
 
Скачайте из репозитория выше. Поместите в любую, удобную для вас папку.

Revision as of 01:22, 15 April 2013

Openbox это легкий и гибкий в настройке оконный менеджер, поддерживающий большинство стандартных функций. Все его особенности документированы на официальном веб-сайте. Эта статья описывает процесс установки Openbox под Arch Linux.

Contents

Установка

Openbox доступен из репозитория сообщества:

# pacman -S openbox

После установки вы должны скопировать конфигурационные файлы по умолчанию rc.xml, menu.xml, autostart, и environment в ~/.config/openbox:

Note: Делайте это с правами пользователя, а не с правами суперпользователя.
$ mkdir -p ~/.config/openbox
$ cp /etc/xdg/openbox/{rc.xml,menu.xml,autostart,environment} ~/.config/openbox

rc.xml основной конфигурационный файл. В нем описаны сочетания клавиш, темы, виртуальные столы, и т.д.

menu.xml описывает содержимое меню, выпадающего по правому клику мыши. В нем описаны ярлыки запуска приложений и другие ярлыки. Смотрите секцию #Меню.

autostart файл, отвечающий за автозапуск приложений при загрузке сессии openbox-session. Содержит программы, которые должны запускаться при загрузке. Обычно используется для установки переменных окружения, запуска панелей и доков, установки обоев на рабочий стол или запуска иных скриптов. Смотри Openbox Wiki.

environment is sourced by openbox-session at startup. Содержит переменные окружения, которые будут добавлены в контекст Openbox. Любые переменные, которые вы устанавливаете здесь будут видны в Openbox всем приложениям, которые вы запускаете, включая приложения в меню.

Обновление до Openbox 3.5

Если вы обновляетесь до Openbox 3.5 или более поздней версии с ранних релизов, то вам следует знать следующее:

  • Новый конфигурационный файл environment вы должны скопировать отсюда /etc/xdg/openbox в папку ~/.config/openbox .
  • Прошлый конфигурационный файл, именуемый autostart.sh теперь носит имя autostart. Вам следует его переименовать - убрать из имени .sh .
  • Несколько изменилась грамматика в файле rc.xml. Но пока Openbox понимает старые опции, сравните свои файлы конфигурации с соответствующими файлами в /etc/xdg/openbox и посмотрите на изменения.

Проблемы 3.5

Смотри секцию ниже Устранение неисправностей Openbox 3.5.

Openbox в качестве отдельного менеджера окон

Openbox можно использовать в качестве отдельного менеджера окон. Так его обычно проще устанавливать и настраивать, чем использовать Openbox с другими рабочими средами. Запуск Openbox в качестве самостоятельного рабочего окружения может значительно снизить загруженность вашего процессора и уменьшить количество потребляемой памяти.

Для запуска Openbox в качестве отдельного менеджера окон файл ~/.xinitrc должен выглядеть так:

exec openbox-session

Вы можете так же запустить Openbox из терминала, используя xinit:

$ xinit /usr/bin/openbox-session

Если вы использовали другой менеджер окон (например, Xfwm) и теперь Openbox не запускается после выхода из X, попытайтесь проделать следующее:

mv ~/.config/autostart ~/.config/autostart-bak

Для запуска с Consolekit, используйте такую строку:

exec ck-launch-session openbox-session

Если вы используете polkit и D-Bus (требуется для автоматического монтирования носителей в Nautilus/Gnome) используйте:

exec ck-launch-session dbus-launch openbox-session
Note: pyxdg требуется Openbox для xdg-autostart
Note: "dbus-launch" должна быть помещена после "ck-launch-session", иначе будут проблемы с монтированием устройств

Openbox в качестве оконного менеджера для других окружений рабочих столов

Openbox может быть использован как заменяемый менеджер окон для законченных окружений рабочих столов. Этот метод развертывания Openbox требует окружение рабочего стола.

GNOME 2.24 и 2.26

Создайте /usr/share/applications/openbox.desktop следующего содержания:

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=OpenBox
Exec=openbox
NoDisplay=true
# name of loadable control center module
X-GNOME-WMSettingsModule=openbox
# name we put on the WM spec check window
X-GNOME-WMName=OpenBox

В gconf, установите /desktop/gnome/session/required_components/windowmanager в openbox:

$ gconftool-2 -s -t string /desktop/gnome/session/required_components/windowmanager openbox

В завершении, выберите сессию GNOME в GDM меню сессий.

GNOME 2.26 Redux

Если предыдущее руководство для GNOME 2.24 не работает:

Если когда вы пытаетесь сойти в сессию "Gnome/Openbox" session -- и сделать это не получается, попытайтесь так, как написано здесь. Это один из путей использовать Openbox в качестве оконного менеджера в любое время, когда вы используете сессию Gnome:

  1. Войдите в вашу сессию Gnome (она должна использовать Metacity в качестве оконного менеджера);
  2. Установите Openbox если вы этого еще не сделали;
  3. В главном меню System → Preferences → Startup Applications (может называться 'Session' в старых версиях Gnome);
  4. Откройте Startup Application, выберите '+ Add' и введите текст, показанный ниже. Комментариями можно пренебречь (#);
  5. Кликните на кнопку 'Add' для того, чтобы закрыть окно. Убедитесь, что переключатель точки выхода был выбран;
  6. Покиньте вашу сессию Gnome и войдите снова;
  7. Теперь в качестве оконного менеджера должен запуститься Openbox.
Name:    Openbox Windox Manager          # Можно изменить
Command: openbox --replace               # Этот текст нельзя удалять или менять, но можно добавить другие опции
Comment: Replaces metacity with openbox  # Можно изменить

Этот ярлык будет автоматически запускаться каждый раз, когда запускается сессия пользователя в Gnome.

GNOME 2.22 и ниже

  1. Если вы используете GDM, выберите "GNOME/Openbox"
  2. Если вы используете команду startx, добавьте exec openbox-gnome-session в ~/.xinitrc
  3. И выполните из терминала команду:
$ xinit /usr/bin/openbox-gnome-session

KDE

  1. Если вы используете KDM, выберите "KDE/Openbox"
  2. Если вы используете команду startx, добавьте exec openbox-kde-session в ~/.xinitrc
  3. И выполните из терминала команду:
$ xinit /usr/bin/openbox-kde-session

Xfce4

Загрузитесь в обычную Xfce4 сессию. И наберите в терминале команду:

$ killall xfwm4 ; openbox & exit

Тем самым вы убьете xfwm4, запустите Openbox, и закроете терминал. Теперь можно выйти из системы, но предварительно проверьте, что выбрали "Save session for future logins". При следующей загрузке Xfce4 в качестве оконного менеджера должен быть Openbox.

Для того, чтобы включить выход из сессии используя xfce4-session, отредактируйте ~/.config/openbox/menu.xml. Если этот файл отсутствует, скопируйте его из /etc/xdg/openbox/. Посмотрите на его содержимое, он выглядит так:

 <item label="Exit Openbox">
   <action name="Exit">
     <prompt>yes</prompt>
   </action>
 </item>

Приведите его к такому виду:

 <item label="Exit Openbox">
   <action name="Execute">
     <prompt>yes</prompt>
    <command>xfce4-session-logout</command>
   </action>
 </item>

Другой путь, выбрать "Exit" из главного меню Openbox, чтобы выйти из него, теперь у вас не будет запущенного оконного менеджера.

Если у вас проблемы с переключением между виртуальными столами с помощью колеса мыши - пропускаются рабочие столы, то отредактируйте ~/.config/openbox/rc.xml. Измените привязку к клавишам мыши для действий "DesktopPrevious" и "DesktopNext" в подгруппе Desktop в группе  Root.

Когда используете главное меню Openbox вместо главного меню Xfce, вы должны выйти из Xfdesktop скомандовав из терминала:

$ xfdesktop --quit

Xfdesktop управляет обоями и значками на рабочем столе, поэтому вам могут потребоваться такие утилиты, как ROX для решения этих задач.

(После закрытия Xfdesktop проблема с виртуальными рабочими столами отпадает.)

Openbox для пользователей с несколькими мониторами

Пока Openbox обеспечивает лучше, чем среднюю поддержку нескольких мониторов, проект развивающий эту тему называется Openbox Multihead и доступен в репозитории AUR это дает пользователям возможность воспользоваться его удобством. Эта модель обычно не основана на плавающих оконных менеджерах, но существует в основном в тайтловых оконных менеджерах. Она хорошо пояснена на сайте Xmonad. Также, пожалуйста ознакомьтесь с README.MULTIHEAD для того, чтобы понять все новые возможности и правильно настроить Openbox Multihead.

Openbox Multihead функционирует также, как и обычный Openbox когда доступен только один монитор.

Обратная сторона медали Openbox Multihead в том, что это ломает EWMH (Extended Window Manager Hints), т.к. предполагается, что один и только один рабочий стол доступен в данный момент времени. Таким образом, существующие менеджеры не могут работать корректно именно по этой причине. Чтобы исправить это попробуйте pager-multihead, который вы можете найти в репозитории AUR, он совместим с Openbox Multihead. Скриншоты.

В завершение, новая версия pytyle может быть найдена в репозитории AUR она работает с Openbox Multihead.

Обе pytyle3 и pager-multihead работают и без Openbox Multihead если только один монитор активен.

Настройка

Здесь несколько опций для настройки параметров Openbox:

Ручная настройка

Для настройки Openbox вручную отредактируйте файл ~/.config/openbox/rc.xml с помощью текстового редактора. Он содержит множество поясняющих комментариев. Смотрите Help:Configuration openbox wiki для того, чтобы узнать больше.

ObConf

ObConf это графическая утилита для настройки Openbox. Она может быть использована для установки множества общих настроек, таких как темы, виртуальные рабочие столы, свойства окон и рабочих столов. Ее можно установить используя pacman:

# pacman -S obconf

ObConf не может быть использован для настройки сочетаний клавиш и некоторых других функций. Для изменения этих параметров редактируйте rc.xml вручную. В качестве альтернатив можно воспользоваться obkeyAUR из AUR.

Настройка приложений

Openbox позволяет настроить приложения. Это позволяет вам определять правила для программ. Например:

  • Запустить ваш браузер на отдельном виртуальном рабочем столе.
  • Открыть ваш терминал без оконного обрамления.
  • Сделать так, чтобы ваш bit-torrent клиент открывался в заданной позиции экрана.

Настройки приложений определяются в файле ~/.config/openbox/rc.xml. Настройки в файле прокомментированы. Подробности смотрите в Help:Applications openbox wiki.

Меню

По умолчанию Openbox включает целый ряд элементов меню. Множество из них ярлыки для запуска программ которых у вас еще не установлены или которые вы никогда не будете устанавливать. Вы конечно можете отредактировать это меню, за него отвечает файлmenu.xml. Ниже описаны несколько способов это сделать.

Ручная настройка меню

Вы можете отредактировать ~/.config/openbox/menu.xml текстовым редактором. Множество настроек не требуют пояснения. В этой статье меню описано более подробно Help:Menus.

Иконки в меню

Начиная с версии 3.5.0 вы можете добавлять иконки рядом с ярлыками запуска программ в меню. Сделать это можно так:

  1. добавьте <showIcons>yes</showIcons> в секцию <menu> в файл rc.xml
  2. отредактируйте описание ярлыка в меню в файле menu.xml добавив в него icons="<path>" выглядит это примерно так :
<menu id="apps-menu" label="SomeApp" icon="/home/user/.icons/application.png">

затем выполните openbox --reconfigure или openbox --restart если у вас возникают проблемы с обновлением меню :)

MenuMaker

MenuMaker это утилита создания XML меню для нескольких оконных менеджеров включая Openbox. MenuMaker сканирует ваш компьютер на исполняемые файлы и генерирует меню по результатам сканирования. Она может быть сконфигурирована так, чтобы исключить определенные типы приложений (GNOME, KDE, или другие), если вам это требуется.

# pacman -S menumaker    #  Установка MenuMaker из репозитория

Послу установки сгенерируйте файл меню (named menu.xml) запустив программу.

$ mmaker -v OpenBox3     #  Не перезаписывать существующий файл меню.
$ mmaker -vf OpenBox3    #  Принудительно перезаписать файл меню.
$ mmaker --help          #  Просмотр всех доступных опций MenuMaker.

MenuMaker создает очень большой файл меню menu.xml. Вы можете его отредактировать вручную или сгенерировать заново после установки программ.

Obmenu

Obmenu это редактор меню для Openbox. Это графическое приложение - лучший выбор для тех, кто не любит или не хочет редактировать XML код. Obmenu доступно из репозитория сообщества:

# pacman -S obmenu

После установки и запуска obmenu вы сможете добавлять и удалять приложения из меню как вам будет угодно.

openbox-menu

Openbox-menu использует menu-cache из проекта LXDE для создания динамического меню для Openbox.

Домашняя страничка проекта: http://mimasgpc.free.fr/openbox-menu_en.html

Страница в репозитории AUR: https://aur.archlinux.org/packages.php?ID=31605

Obm-xdg

obm-xdg это консольная утилита, входящая в состав Obmenu. Эта утилита распределяет по категориям в подменю установленные GTK/GNOME приложения.

Для использования obm-xdg с другими меню, добавьте в файл ~/.config/openbox/menu.xml такую строку:

<menu execute="obm-xdg" id="xdg-menu" label="xdg"/>

Затем после линии с вашим 'root-menu' добавьте такую троку в том месте, где бы вы хотели чтобы появилось меню:

<menu id="xdg-menu"/>

Для использования obm-xdg самостоятельно создайте ~/.config/openbox/menu.xml только такого содержания:

<openbox_menu>
 <menu execute="obm-xdg" id="root-menu" label="apps"/>
</openbox_menu>


Затем запустите openbox --reconfigure для того чтобы обновить меню Openbox. Теперь вы должны увидеть подменю с именем xdg в вашем меню.

Note: Если у вас не установлен GNOME, то вам необходимо установить пакет gnome-menus для obm-xdg.

Основанный на Python скрипт меню xdg

Этот скрипт находится в Openbox пакетах дистрибутива Fedora. Поэтому вы можете только скопировать скрипт куда-нибудь и создать для него точку входа в файле меню.

Найти его можно по этой ссылке: последняя версия

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

Откройте файл menu.xml с помощью вашего текстового редактора и добавьте следующие строки, конечно, вы можете изменить метку, если хотите.

<menu id="apps-menu" label="xdg-menu" execute="python2 <path>/xdg-menu"/>

Сохраните файл и запустите openbox --reconfigure.

Note: Если у вас не установлен GNOME, то вам необходимо установить пакет gnome-menus для xdg-menu.

Генератор меню для Openbox

Он находится в репозитории AUR под именем obmenugen-bin, генератор меню для Openbox позволяет создать меню из файлов *.desktop. Obmenugen представляет текстовые файлы, как фильтры для элементов меню.

$ obmenugen               # Создать файл меню
$ openbox --reconfigure   # Чтобы увидеть результат в вашем меню

Pipe меню

Как в других оконных менеджерах, в Openbox возможно использование скриптов для генерирования динамического меню (меню на лету). Например, мониторы системных ресурсов, управление медиа плеерами или мониторы погоды. Примеры скриптов Pipe меню можно найти здесь Openbox:Pipemenus это одна из страниц проекта Openbox.

Пользователь Xyne создал браузер файлов pipe меню, а пользователь brisbin33 создал pipe меню для сканирования и подключения к беспроводным сетям (используется netcfg). Темы форума этих утилит по ссылкам ниже: браузер файлов, wifi.

Пользователь jnguyen создал pipe меню для управления съемными носителями с использованием Udisks. Тема на форуме по этой ссылке: obdevicemenu.

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

Openbox поддерживает автозапуск программ. Это обеспечивается командой openbox-session.

Включение автозапуска

Есть два способа включить автозапуск:

  1. Если вы используете команду startx или xinit для запуска X сессии, отредактируйте ~/.xinitrc. Замените в линии запуска openbox на openbox-session.
  2. Если вы используете GDM или KDM, выберите Openbox в этом случае автозапуск программ произойдет автоматически.

Скрипт автозапуска

Openbox запускает все программы описанные в файле ~/.config/openbox/autostart. Этот скрипт не создается по умолчанию. При отсутствии этого скрипта в домашней папке пользователя, Openbox использует системный скрипт /etc/xdg/openbox/autostart. Системный скрипт не используется, если существует пользовательский скрипт.

Для создания пользовательского скрипта автозапуска скопируйте системный скрипт в вашу папку с настройками ~/.config/openbox/ и добавьте в него свои команды. Это не гарантирует вам работоспособность окружения должным образом.

Полная инструкция доступна по ссылке Help:Autostart на сайте проекта Openbox.

Note: Этот файл назывался autostart.sh до версии OpenBox 3.5.0. Если вы обновляетесь, то проверьте переименовали вы ли его, удалив в имени старого файла окончание .sh.

Темы и оформление

Template:Box YELLOW

Темы Openbox

Темы управляют внешним видом окон, заголовков и кнопок. Также они контроллируют появление меню и режимы поступления информации на экран. Дополнительные темы доступны из стандартного репозитория.

# pacman -S openbox-themes

Курсоры, иконки, обои рабочего стола

Пожалуйста смотрите Openbox Themes and Apps для получения информации о перенастройке этих параметров.

Рекомендуемые программы

Template:Box YELLOW

По этой ссылке находится список Легковесных Программ из wiki. Большинство из них отлично работают с Openbox.

Менеджеры входа в систему

SLiM это графический менеджер входа в систему. Отличный выбор, если вы используете Openbox в качестве отдельного менеджера окон. Ссылка на статью о SLiM в wiki.

Qingy легкий, перенастраиваемый графический менеджер входа в систему. поддерживает вход в систему в консоль или X сессию. Qingy использует DirectFB. Qingy не запускает X сессию пока вы не выберете сессию входа в X. Прочитайте статью в Arch wiki о Qingy.

Композитные эффекты для рабочего стола

Xcompmgr это композитный оконный менеджер, способный отрисовывать тени, затухания и прозрачные окна для Openbox и других оконных менеджеров.

Note: Xcompmgr больше не обновляется. Он имеет несколько проблем и маловероятно, что они будут исправлены. (Например, Xcompmgr имеется проблема с tint2 0.9: значки в системном трее искажаются.)

Cairo Compmgr это многоцелевой композитный оконный менеджер Cairo. И обычно он более подходящий выбор.

Панели и треи

Дополнительные материалы можно найти здесь Openbox Themes and Apps.

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

Тройка популярнейших файловых менеджеров:

  • Thunar. Thunar поддерживает автомонтирование носителей и другие функции через плагины и дополнения.
# pacman -S thunar
  • ROX (ROX также может отображать иконки на рабочем столе)
# pacman -S rox
# pacman -S pcmanfm   #  PcManFM также может отображать иконки на рабочем столе.
# pacman -S ntfs-3g   #  Позволит PCManFM работать с NTFS разделами и устройствами.

Больше информации можно найти по ссылке Openbox Themes and Apps. Дополнительная статья о других удобных утилитах: диалог запуска программ gmrun, менеджеры буфера обмена, регуляторы громкости звука, и т.д..

Советы и хитрости

Поведение подобное Aero Snap

Windows 7 поддерживает уникальную функцию поведения окон, она заключается в том, что при перемещении окна к краю экрана оно цепляется за него. Этот эффект может быть включен в Openbox. Подробнее написано здесь.

Ассоциации файлов

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

Пакет в AUR называемый gnome-defaults-list содержит список типов файлов и связанных с ними программ для рабочего стола Gnome. Этот список устанавливается в /etc/gnome/defaults.list.

Откройте этот файл с помощью вашего текстового редактора. Теперь вы можете заменить предложенные там приложения на те, которые вы выбрали. Например, totem <=> vlc или eog <=> mirage. Сохраните файл ~/.local/share/applications/defaults.list.

Другой способ установить ассоциации - установить пакет perl-file-mimeinfo из репозитория и вызвать mimeopen, например, так:

mimeopen -d /path/to/file

У вас спросят каким приложением открыть /path/to/file:

Please choose a default application for files of type text/plain
       1) notepad  (wine-extension-txt)
       2) Leafpad  (leafpad)
       3) OpenOffice.org Writer  (writer)
       4) gVim  (gvim)
       5) Other...

Ваш ответ установит приложение по умолчанию для открытия всех файлов данного типа. Описание ассоциаций приложений к типам файлов /usr/bin/perlbin/vendor/mimetype.

Копирование и вставка

Из терминала Ctrl+Insert для копирования и Shift+Insert для вставки.

Также Ctrl+Shift+C для копирования и mouse middle-click для вставки (в терминалах).

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

Прозрачность окон

Программа transset-df (практически такая же как transset) устанавливается с помощью команды pacman -S transset-df. С помощью transset-df вы сможете включать прозрачность окон на лету.

Для этого поместите в строки представленные ниже ~/.config/openbox/rc.xml таким образом вы сможете с помощью скроллинга мыши регулировать прозрачность окон когда курсор мыши находится над заголовком окна (это внутри секции <mouse>):

    <context name="Titlebar">
     . . .
     <mousebind button="Up" action="Click">
       <action name= "Execute" >
       <execute>transset-df -p .2 --inc  </execute>
       </action>
     </mousebind>
     <mousebind button="Down" action="Click">
       <action name= "Execute" >
       <execute>transset-df -p .2 --dec </execute>
       </action>
     </mousebind>
     . . .
   </context>

Это будет работать только когда нет каких-то дополнительных действий назначенных в этой группе действий.

Значения Xprop для приложений

Если вы используете специальные настройки для приложений, вы можете найти этот удобный алиас для bash:

alias xp='xprop | grep "WM_WINDOW_ROLE\|WM_CLASS" && echo "WM_CLASS(STRING) = \"NAME\", \"CLASS\""'

Для использования запустите xp и кликните на запущенную программу, для которой вы хотите определить собственные настройки. Результат отобразит только информацию, требуемую для Openbox, а именно WM_WINDOW_ROLE и WM_CLASS (имя и класс):

[thayer@dublin:~] $ xp
WM_WINDOW_ROLE(STRING) = "roster"
WM_CLASS(STRING) = "gajim.py", "Gajim.py"
WM_CLASS(STRING) = "NAME", "CLASS"

Xprop для Firefox

В любом случае, Firefox и подобные приложения игнорируют правила (e.g. <desktop>) не меньше class="Firefox*" используется. Это применяет любое значение xprop может сообщить для программного класса WM_CLASS.

Привязка меню к кнопке

Некоторым людям может потребоваться привязать меню Openbox (или другое меню) к кнопке. Это полезно для создания панели кнопок всплывающего меню. This is useful for creating a panel button to pop up a menu. Хотя Openbox не поддерживает это, программа xdotool эмулирует нажатие клавиш. Openbox может быть настроен так, что при нажатии клавиши выполняется действие ShowMenu.

Пакет  xdotool доступен в AUR. После установки xdotool, добавьте следующее в секцию <keyboard> в вашем файле rc.xml:

 <keybind key="A-C-q">
   <action name="ShowMenu">
     <menu>root-menu</menu>
   </action>
 </keybind>

Перезапустите/переконфигурируйте Openbox. Эта команда вызовет меню в точке, где находится курсор мыши. Команда распространяется как есть, привязка к объектам, или размещение в скрипте.

$ xdotool key ctrl+alt+q

Конечно, вы можете изменить ключевые ярлыки на ваш вкус. Рассмотрим отрывок для tint2 (панель задач) файл настроек, который показывает выпадающее меню по клику по области с часами. Каждая комбинация клавиш установлена на открытие файла конфигурации rc.xml меню Openbox. Отличие right?click от left?click:

clock_rclick_command = xdotool key --clearmodifiers "ctrl+XF86PowerOff"
clock_lclick_command = xdotool key --clearmodifiers "alt+XF86PowerOff"

Urxvt в качестве фона рабочего стола

С Openbox запустить терминал в качестве фона рабочего стола крайне просто. Вам не потребуется использовать devilspie.

Сначала вы должны включить прозрачность, откройте ваш ~/.Xdefaults (если он не существует, то создайте его в домашней директории).

URxvt*transparent:true
URxvt*scrollBar:false
URxvt*geometry:124x24    #Я не использую полный экран, если вы хотите терминал на весь экран, то не беспокойтесь как это сделать написано ниже.
URxvt*borderLess:true
URxvt*foreground:Black   #Цвет шрифта. Мои обои рабочего стола белые, возможно вы захотите изменить его на белый.

Затем отредактируйте файл .config/openbox/rc.xml:

<application name="URxvt">
  <decor>no</decor>
  <focus>yes</focus>
  <position>
    <x>center</x>
    <y>20</y>
  </position>
  <layer>below</layer>
  <desktop>all</desktop>
  <maximized>true</maximized> #Используйте только если вы хотите терминал на весь экран.
</application>

Магия приходит со строчкой <layer>below</layer>, которая помещает приложение под все остальные. Здесь Urxvt отображен на всех рабочих столах, измените это для вашего удобства.

Note: Вместо использования <application name="URxvt"> вы можете дать другое имя (например, "URxvt-bg"), и использовать опцию -name при запуске uxrvt. Такой способ работает только для urxvt, для которого вы выбрали имя URxvt-bg введите и модифицируйте правила для этого приложения в rc.xml. Например: urxvt -name URxvt-bg (учитывая регистр)

Переключение между рабочими столами

Вышеописанный метод минимизирует Urxvt когда вы используете команду ToggleShowDesktop. Во избежание этого воспользуйтесь этим постом. Здесь требуется редактировать исходный код Urxvt.

Note: Этот метод возможно уже не работает после недавнего обновления, сейчас происходит утечка памяти когда запущен пропатченный Urxvt.

Рабочим остается только метод, описанный здесь. Он делает ToggleShowDesktop таким, чтобы не восстанавливал другие приложения на рабочем столе, когда ToggleShowDesktop запущен второй раз. Это так же дает возможность использовать различные терминалы, а не только Urxvt.

Клавиши регулирования громкости на клавиатуре

ALSA

Если вы используете ALSA для вывода звука, вы можете воспользоваться программой amixer для регулирования громкости звука. Вы можете использовать сочетания клавиш и назначить им команды в Openbox. (Или в качестве альтернативы, вы можете попытаться найти настоящие имена для ваших мультимедийных клавиш и их карту.) Например, в секции <keyboard> файла rc.xml:

   <keybind key="W-Up">
     <action name="Execute">
       <command>amixer set Master 5%+</command>
     </action>
   </keybind>

Таким образом, вы назначите комбинации клавиш Windows key + Up arrow возможность повысить уровень громкости канала Master. Соответственно, чтобы понизить:

   <keybind key="W-Down">
     <action name="Execute">
       <command>amixer set Master 5%-</command>
     </action>
   </keybind>

В качестве другого примера - XF86Audio:

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

Пример, приведенный выше должен работать для большинства мультимедийных клавиатур. Он должен увеличивать, уменьшать и выключать звук канала Master для вашего аудиоустройства. Помните так же об этом:

  • Клавиша "Mute" должна включать канал Master если он уже выключен.
  • Клавиши "Raise" и "Lower" должны включать канал Master если он выключен.

Pulseaudio

Если вместе с ALSA вы используете pulseaudio, то в этом случае настройки несколько отличаются, amixer должен использовать pulse.

  <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>

Эти сочетания клавиш должны работать для большинства систем. Другие примеры можно найти здесь.

OpenBox выключение/перезагрузка

Смотри статью SUDOSudo_(Русский)#OpenBox_.D0.B2.D1.8B.D0.BA.D0.BB.D1.8E.D1.87.D0.B5.D0.BD.D0.B8.D0.B5.2F.D0.BF.D0.B5.D1.80.D0.B5.D0.B7.D0.B0.D0.B3.D1.80.D1.83.D0.B7.D0.BA.D0.B0

Устранение неисправностей Openbox 3.5

X server падает

Проблема была обнаружена после обновления до версии 3.5, поэтому X server может падать при попытке запуска Openbox, в конце вы получаете такое сообщение:

(metacity:25137): GLib-WARNING **: In call to g_spawn_sync(), exit status of a child process \
                   was requested but SIGCHLD action was set to SIG_IGN and ECHILD was received by waitpid(), so exit \
                   status can't be returned. This is a bug in the program calling g_spawn_sync(); either do not request \
                   the exit status, or do not set the SIGCHLD action.
xinit: connection to X server lost
waiting for X server to shut down

В этом случае, какие-то проблемы с пакетом metacity привели к падению X server. Удаление пакетов metacity и compiz-decorator-gtk решит проблему. Хотя, позже было замечено, что просто переустановка пакета может помочь, но сначала надо удалить старый пакет, а только потом ставить новый.

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

Автозапуск лишних приложений в 3.5

Лишние приложения запускаются с вашей сессией Openbox, даже если они не находятся в вашем скрипте автозапуска ~/.config/openbox/autostart ?

Проверьте папку ~/.config/autostart/ , она может содержать файлы от прошлых ваших окружений рабочего стола (Gnome, KDE, etc.), и удалите ненужные файлы.

SSH агент больше не запускается

В то время как Openbox 3.4.x разрешалось запускать SSH агента из $XDG_CONFIG_HOME/openbox/autostart{,.sh}, с 3.5 это больше не работает. Вам требуется положить ваш код в: $XDG_CONFIG_HOME/openbox/environment, например:

SSHAGENT="/usr/bin/ssh-agent"
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then
        eval `$SSHAGENT $SSHAGENTARGS`
        trap "kill $SSH_AGENT_PID" 0
fi

Openbox не запускает сессию с D-Bus

Точно так де как и с SSH агентом, множество людей используют D-Bus код в $XDG_CONFIG_HOME/openbox/autostart{,.sh} - это больше не работает (например Thunar больше не видит ни одного съемного устройства).

Чтобы исправить это переместите код в $XDG_CONFIG_HOME/openbox/environment:

if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
       eval `dbus-launch --sh-syntax --exit-with-session`
fi

Или же вы можете начинать сессию openbox-session с dbus-launch например, через файл ~/.xinitrc.

Ресурсы