__TOC__
Спасибо Mark Tiefenbruck (_markt/#fluxbox/Freenode), которого долго пинали, чтобы он наконец написал этот замечательный код. :)
KeyModes или "Пространства имен в файле keys" - это способ временно заменить бинды, нажав комбинацию клавиш. Смысл их - соответствие другим WM, имеющим несколько режимов для перемещения и изменения размеров окон. На данный момент возможно назначить таким образом:
Mod4 Shift Up :ResizeVertical -2Mod4 Shift Down :ResizeVertical +2Mod4 Shift Left :ResizeHorizontal -2Mod4 Shift Right :ResizeHorizontal +2Mod1 Shift Up :ResizeVertical -10Mod1 Shift Down :ResizeVertical +10Mod1 Shift Left :ResizeHorizontal -10Mod1 Shift Right :ResizeHorizontal +10
Как видно, при таком подходе кнопки бысто кончаются :)
KeyModes появились в svn версии 4298 и в версии 1.0rc.
Синтаксис следующий:
[NameSpace:] [ ] key [key key] :command
Если не указано NameSpace, то по умолчанию используется default.
Новой командой является KeyMode.
:KeyMode [ [mod mod ...] [key key ...]]
Последняя комбинация "
Для лучшего понимания преводится пример.
## ResizeModeMod4 w Mod4 r :KeyMode ResizeModeResizeMode: None Up :ResizeVertical -2ResizeMode: None Down :ResizeVertical +2ResizeMode: None Left :ResizeHorizontal -2ResizeMode: None Right :ResizeHorizontal +2ResizeMode: Shift Up :ResizeVertical -10ResizeMode: Shift Down :ResizeVertical +10ResizeMode: Shift Left :ResizeHorizontal -10ResizeMode: Shift Right :ResizeHorizontal +10
## MoveMode Mod4 w Mod4 m :KeyMode MoveModeMoveMode: None Up :MoveUp 2MoveMode: None Down :MoveDown 2MoveMode: None Left :MoveLeft 2MoveMode: None Right :MoveRight 2MoveMode: Shift Up :MoveUp 10MoveMode: Shift Down :MoveDown 10MoveMode: Shift Left :MoveLeft 10MoveMode: Shift Right :MoveRight 10
## XnestModeMod1 x :KeyMode XnestMode
Для визуализации смены режима можно использовать следующую строку:
Mod4 w Mod4 r :MacroCmd {Exec echo "Resize Mode" | osd_cat -d 1 -p bottom -A center } {KeyMode ResizeMode}