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