7 ноября 2010 г.

Настройка переключений окон и десктопов в openbox

Пара мелочей в дефолтной конфигурации openbox, которые не давали мне спокойно жить:

  • Переключение окон по Alt+Tab производится только между окнами, открытыми на текущем рабочем столе. Хотелось, чтобы между вообще всеми открытыми окнами.
  • Переключение между рабочими столами по Ctrl+Alt+Left/Right (в смысле стрелки влево и вправо) работает нормально, но не переключает с первого на последний, если налево, и с последнего на первый, если направо.
В моём случае рабочих стола 4 и с четвёртого невозможно было перейти на первый используя стрелку вправо.

Впрочем такого всплывающего окошка может и не быть (это тоже настраивается). Проблемы решены с помощью копания в документации. Тут даю выжимку.
Обе настройки задаются с помощью общего файла настроек openbox: ~/.config/openbox.rc.xml.

Итак, переключение окон по Alt+Tab уже настроено и находится в разделе keyboard, что логично. У меня там ещё стоит комментарий: Keybindings for window switching, а начинается нужный кусок, как и положено, с задания сочетания клавиш: keybind key="A-Tab".
Нужно привести этот кусок к следующему виду:

    <keybind key="A-Tab">
      <action name="NextWindow">
      <allDesktops>yes</allDesktops>
      </action>
    </keybind>
По сути добавляется опция allDesktop со значением yes (так как по-умолчанию у неё значение no).

Таким же образом ищем настройку переключения рабочих столов (Keybindings for desktop switching) - логично, что начинается она с keybind key="C-A-Left".
Здесь вид будет такой:

    <keybind key="C-A-Left">
      <action name="DesktopLeft">
        <wrap>yes</wrap>
      </action>
    </keybind>
    <keybind key="C-A-Right">
      <action name="DesktopRight">
        <wrap>yes</wrap>
      </action>
    </keybind>
В данном случае добавилась опция wrap со значением yes.

Сборка tint2

Небольшой мануал по сборке панели tint2 из исходников. В репозитории версия программы старовата.

В общем вся информация есть на официальном сайте, но по-английски и с ошибкой в ссылке.

Для панели нужны в качестве зависимостей следующие пакеты: cairo, pango, glib2, imlib2>=1.4.2, xinerama, libXrender, libXcomposite, libXdamage, libx11, libXrandr>=1.3.
В Ubuntu всё необходимое можно установить следующей командой:

sudo aptitude install libcairo2-dev libpango1.0-dev libglib2.0-dev libimlib2-dev libxinerama-dev libx11-dev libxdamage-dev libxcomposite-dev libxrender-dev libxrandr-dev
Скачать файлы с исходными кодами можно либо из раздела Downloads сайта обычным способом, либо этой командой из консоли (для последней версии):
wget 'http://tint2.googlecode.com/files/tint2-0.11.tar.bz2'
Распаковать архив (выполнив из папки со скачанным архивом):
tar xvf tint2-0.11.tar.bz2
Ну и собственно сборка:
cd tint2-0.22
cmake -DCMAKE_INSTALL_PREFIX=/usr
make
И установка:
sudo make install
Впрочем, лучше использовать sudo checkinstall - тогда будет создан deb-пакет, но предварительно нужно установить соответственно пакет checkinstall.

Настройка панели tint2 с помощью tintwizard

Когда-то писала о панели tint2, настройка которой производится посредством правки простого конфигурационного файла. Но как-то в тот раз я совсем проглядела существование графической утилитки для той же самой цели.
Для многих настройка таким способом может оказаться удобнее и проще. Я сама предпочитаю, когда все прозрачно и любую опцию можно подправить, просто отредактировав текст в файле, однако тыканье мышкой по кнопкой оказывается обычно быстрее. Опять же, если надо просто посмотреть, как именно выглядит та или иная настройка, всегда проще применить изменения кликом мыши, а не правкой текста, пересохранением файла и перезапуском панели с помощью команды. Так что утилита вполне полезна.