OpenBox Bindings
Help:Bindings
[править]From Openbox
Jump to: navigation, search
Привязка клавиатуры и мыши осуществляется в ~/.config/openbox/rc.xml файле. Вы должны скопировать файл из /etc/xdg/openbox/rc.xml в ~/.config/openbox/rc.xml для его редактирования, если этот файл ещё не создан.
Обе, привязка клавиатуры и привязка мыши, используют действия (Actions) для указания того, что они будут выполнять. Есть ряд действий, доступных для Вас. Здесь мы расскажем основные привязки клавиатуры и мыши. Смотрите документацию о действиях (actions documentation), для детальной информации о доступных действиях и их параметрах.
Содержание. 1.Привязка клавиш (клавиатуры)< 1.1. Синтаксис 1.1.1.Комбинации клавиш 1.1.1.1. Модификаторы 1.1.1.2. Клавиши 1.1.2. Действия 1.2. Key chains 1.2.1. The key chain dialog 1.2.2. Cancelling key chains 1.2.3. Chrooting key chains 1.2.4. Key quoting with Chroots 2. Привязка мыши 2.1. Синтаксис 2.1.1. Контекст 2.1.2. Кнопки 2.1.3. События 2.1.4. Действия
Привязка клавиш
Привязку клавиш можно найти в разделе <keyboard> Вашего rc.xml конфигурационного файла. Любые привязки, вне этого раздела будут является недействительными и будут игнорироваться.
Вот пример нескольких привязок клавиш, из конфигурационного файла «по умолчанию», чтобы Вы имели представление о чём здесь идёт речь.
<keyboard>
<keybind key="A-F4">
<action name="Close"/>
</keybind>
<keybind key="A-Escape">
<action name="Lower"/>
<action name="FocusToBottom"/>
<action name="Unfocus"/>
</keybind>
<keybind key="A-space">
<action name="ShowMenu"><menu>client-menu</menu></action>
</keybind>
</keyboard>
Key combination
KEY-COMBINATION (сочетания клавиш) — это комбинации клавиш, с которыми Вы хотите связать действия. Формат KEY-COMBINATION таков: Modifier-Modifier-Key (Модификатор-Модификатор-клавиша). Любое количество модификаторов (0 или больше) может использоваться вместе и они должны быть разделены "-".
Modifier keys (Модификаторы) S Shift key C Control key A Alt key W Super key (обычно ассоциируются с Windows клавишей, если таковая имеется) M Meta key H Hyper key (если таковая есть и ассоциирована)
Вы можете также использовать от Mod1 до Mod5, как модификаторы для прямого выбора масок модификаторов (т.е. Mod1 для выбора Mod1Mask), но это для тех продвинутых пользователей, кто настраивает свои модификаторы используя «карты» xmodmap.
Клавиши
Клавиша — это имя клавиши, как "a", "space", "Escape", "less", или "F1". Вы можете найти имя любой клавиши, используя xev команду в терминале, нажав соответствующую клавишу, и посмотрев вывод xev в терминале. Например, следующий xev вывод показывает, что на третьей строке какая была нажата клавиша.
KeyRelease event, serial 36, synthetic NO, window 0x1e00001,
root 0x7e, subw 0x0, time 29920856, (168,-7), root:(900,313),
state 0x0, keycode 135 (keysym 0xff67, Menu), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Эту клавишу можно использовать в следующем примере.
<keyboard>
...
<keybind key="C-Menu">
Клавиши можно также указывать их числовым кодом. Это можно осуществить указанием в шестнадцатеричном виде. Для того, чтобы в выше приведённом примере keycode для клавиши Menu был 135, что является 0x87 в шестнадцатеричной системе, это можно осуществить так:
<keyboard>
...
<keybind key="C-0x87">
<action name="ShowMenu">
<menu>root-menu</menu>
</action>
</keybind>
...
</keyboard>
Заметим, что "0x" prefix необходим для интерпретации клавиши, как числового кода, и hex символы приводятся без учёта регистра (т.е. Вы можете использовать "0xAE" или "0xae").
Действия
Действия определены в следующем перечне action. Они будут выполнятся, как правило в порядке от первого до последнего.
Key chains (брелки)
Вы можете создавать Emacs-style брелки (key chains) просто вкладывая клавиши друг в друга . Вот пример:
<keybind key="C-f">
<keybind key="x">
<action name="ToggleMaximizeFull"/>
</keybind>
<keybind key="s">
<action name="ToggleShade"/>
</keybind>
</keybind>
Для максимилизирования окна, используя сочетания клавиш, Вы должны нажать Control key и "f" клавиши вместе (что записывается как C-f), далее если надо будет нажать "x" клавишу. Чтобы спрятать (скрутить) окно, Вам нужно нажать Control и "f" клавиши вместе, и тогда нажать "s" клавишу.
Вы можете создавать брелки в брелках, с таким количеством уровней, каким Вы пожелаете.
The key chain dialog
Когда Вы запускаете брелок, после небольшой задержки, появляется небольшое диалоговое окно верхнем левом углу экрана, чтобы показать «где Вы находитесь» в брелке. Пока Вы находитесь в брелке, другие сочетания клавиш не работают, за исключением тех, что указаны внутри брелка.
Отмена брелка
Если Вы оставите OpenBox в состоянии брелка слишком долго, не завершив его, OpenBox самостоятельно завершит брелок, восстановив нормальное сочетание клавиш. Вы также можете использовать "C-g" (Control key и "g" key вместе), в конфигурации по умолчанию, для отмены любой цепи брелка, в которой Вы находитесь. Выбрать такие сочетания клавиш можно в <chainQuitKey> в разделе <keyboard> rc.xml конфигурационного файла.
По умолчанию, <chainQuitKey> определено так:
<keyboard>
<chainQuitKey>C-g</chainQuitKey>
...
</keyboard>
Chrooting key chains
По умолчанию, когда Вы доходите до коца брелка и выполняете какое то действие с ним, Openbox выйдет из брелка и вернётся к нормальному сочетанию клавиш. С "chrooted" key chain (брелка), Openbox не покинет брелок автоматически, и когда Вы будете использовать клавиши дальше по цепочке, они останутся в chroot.
Есть целый ряд примеров того, каким образом это может быть использовано, для более полного представления и получения неплохих идей в его применении. С его помощью Вы можете, например, использовать клавиши стрелок для смены рабочих столов. Цепочка брелков будет иметь примерно следующую конфигурацию:
<keybind key="C-A-d" chroot="true">
<keybind key="Up"><action name="DesktopUp"><dialog>no</dialog></action></keybind>
<keybind key="Down"><action name="DesktopDown"><dialog>no</dialog></action></keybind>
<keybind key="Left"><action name="DesktopLeft"><dialog>no</dialog></action></keybind>
<keybind key="Right"><action name="DesktopRight"><dialog>no</dialog></action></keybind>
<keybind key="Escape"><action name="BreakChroot"/></keybind>
</keybind>
Этот брелок означает, что при нажатии Control-Alt-D Вы войдёте в режим chroot. С этого момента никакие комбинации клавиш, кроме перечисленных, функционировать не будут, но клавищи Перемещения (стрелки) будут перемещатся по Вашему рабочему столу. Нажмите Escape или Control-G (в конфигурации по умолчанию) выведет Вас из режима chroot и вернйт обычные сочитания клавиш.
После того, как Вы вошли в chrooted брелок, Openbox не будет автоматически выходить из брелка. Вы будете оставаться в брелке пока не используете действие BreakChroot, как показано здесь, или нажмёте <chainQuitKey>. BreakChroot действие отлично от <chainQuitKey> в том, что в этом случае выход будет произведён из одного chroot. Таким образом, если у Вас имеются вложенные chroots, Вы можете производить выхот из стольких, скольких пожелаете, поместив 1 или более BreakChroot действий на сочетания клавиш.
Key quoting with Chroots
Другое применение chroots — это "key quoting" (цитирование клавиш). Это используется когда Вы запустили Openbox session в окне, таком как VNC client. Для того чтобы использовать сочетания клавиш внутри VNC, в общем, Вы должны убедится, что они отличаются от сочетаний основной Openbox session.
С цитированием, Вы можете использовать одинаковые сочетания клавиш в обоих сессиях. Вот пример:
<keybind key="C-A-q" chroot="true">
<keybind key="C-A-q"><action name="BreakChroot"/></keybind> </keybind>
В этом примере, когда Вы нажимаете Control-Alt-Q, Openbox войдёт в режим chroot. Тогда Ваши обычные сочетания клавиш Openbox не будут работать и будут переданы сессии VNC (само собой, если Вы сфокусированы на ней). Когда все нужные операции выполнены, Вы можете вновь нажать Control-Alt-Q и Ваши обычные сочетания клавиш будут восстановлены в Вашей основной сессии Openbox.
Настройка кнопок мыши
Привязка мыши (Mouse bindings) используется для привязки действий wm к действиям мыши. Это используется для контроля и определения наиболее интерактивного поведения Openbox's, от того, что должно происходить при перетаскивание заголовков окон до того, как Вы нажмёте кнопку закрытия окна.
Привязку мыши можно найти в разделе <mouse> Вашего rc.xml конфигурационного файла. Любые привязки вне этого раздела будут являться недейственными и будут игнорироваться.
Настоятельно рекомендуется настраивать любые пользовательские привязки мыши, исходя из конфигурации по умолчанию, либо мышь-фокус примера (mouse-focus), вместо того чтобы начинать с нуля, поскольку они довольно сложны и имеют некоторые продвинутые, но «хрупкие» настройки.
Для начала, вот несколько примеров привязки мыши из конфигурационного файла, по умолчанию:
<mouse>
<context name="Titlebar">
<mousebind button="Left" action="Press">
<action name="Focus"/>
<action name="Raise"/>
</mousebind>
<mousebind button="Left" action="Click">
<action name="Unshade"/>
</mousebind>
<mousebind button="Left" action="Drag">
<action name="Move"/>
</mousebind>
<mousebind button="Left" action="DoubleClick">
<action name="ToggleMaximizeFull"/>
</mousebind>
<mousebind button="Up" action="Click">
<action name="Shade"/>
<action name="FocusToBottom"/>
<action name="Unfocus"/>
</mousebind>
<mousebind button="Down" action="Click">
<action name="Unshade"/>
</mousebind>
</context>
</mouse>
Синтаксис
Привязка мыши задаётся следующем образом:
<mouse>
...
<context name="CONTEXT">
<mousebind button="BUTTON" action="EVENT">
...ACTIONS...
</mousebind>
</context>
...
</mouse>
Любое количество <mousebind> может сопровождаться <context>, а также любым числом действий.
Контекст (context)
Привязка мыши, в отличие от привязки клавиатур, совершается при помощи contexts. The CONTEXT представляет то, что Вы нажимаете/тяните при помощи мыши (за исключением особого контекста MoveResize context).
Frame
The entire window frame for any window (except the desktop). This includes both the window decorations (if any) and the application window itself.
Note: When a button is bound in this context, the clicks will not be passed through to the application. Use with care.
Client
The application window, inside the window decorations.
Note: When a button is bound in this context, the clicks will be passed through to the application. However, because of this, only "Press" events can be used for this context.
Desktop
The desktop, or background, regardless of if you use a program to place icons on your desktop or not (such as in KDE and GNOME). This is also called the "root window" frequently.
Root
This works similarly to the Desktop context. However, this is a special context for bindings you only want to work only when you don't have a program running to place icons on your desktop. Generally this is only used for the root menus, so that they won't override the menus provided by your desktop icons.
Titlebar
The decorations on the top of each application window
Top, Bottom, Left, Right
The top, bottom, left or right edge of a window
TLCorner, TRCorner, BLCorner, BRCorner
The top-left, top-right, bottom-left or bottom-right corner of a window
Icon
The window icon shown in window titlebars
Iconify
The iconify button shown in window titlebars
Maximize
The maximize button shown in window titlebars
Close
The close button shown in window titlebars
AllDesktops
The all-desktops (omnipresent) button shown in window titlebars
Shade
The shade button shown in window titlebars
MoveResize
Bindings in this special context are available while a window is being moved or resized interactively
Button
Button — это кнопка мыши, для привязки мыши обязательно должна быть указана.
Имена кнопок следующие: Left, Right, Middle, Up (scroll wheel up /\ колесо прокрутки вверх) и Down (scroll wheel down /\ колесо прокрутки вниз). Для привязки дополнительных кнопок мыши используйте Button6, Button7 и т. д. Код кнопки можно узнать при помощи утилиты xev.
You can also prefix the button name with a modifier as for key bindings (see above section), for example S-A-Down for shift-alt-scroll wheel down.
Event
Event — события.
Press
кнопка мыши должна быть нажата в указанном контексте.
DoubleClick
кнопка мыши должна быть нажата в указанном контексте дважды
Release
кнопка мыши должна быть отпущена в указанном контексте
Drag
мышь должна тащить (тянуть) указанной кнопкой в указанном контексте
Action
Действия могут быть любое количество действий. Они будут, как правило, выполняются в порядке от первого до последнего.
http://ru.wikibooks.org/wiki/OpenBox_Action
http://ru.wikibooks.org/wiki/OpenBox_rc.xml