Key [(window)] Keyname Context Modifiers Function
将键盘键绑定到指定的FVWM命令。语法与Mouse绑定的语法相同,只是用Keyname替换了鼠标按钮编号。通常,按下键时激活键绑定。
Keyname,是/usr/include/X11/keysymdef.h中定义的标准X11键名(没有XK_前缀),或keysym数据库/usr/X11R6/lib/X11/XKeysymDB。只保证在”没有修饰键“或”仅保持Shift键“的情况下生成的键名可以正常工作。
Context,该字段如同在Mouse绑定中的定义,指的是上下文窗口。但是,按下某个键时,上下文窗口是具有键盘焦点的窗口。这不一定与指针所在的窗口相同(使用SloppyFocus或ClickToFocus)。请注意,使用“R”(根窗口)上下文的键绑定无法与SloppyFocus和ClickToFocus一起正常工作。如果遇到问题,请改用PointerKey命令。如果要将键绑定到具有SloppyFocus或ClickToFocus的窗口,当指针不在窗口上时,该窗口应该起作用,fvwm假定指针位于客户端窗口上(即,您必须使用’W’上下文)。菜单的特殊上下文“M”可用于(重新)定义菜单控件。它可以单独使用,也可以与’T’,’S’,’I’,'[‘,’]’,’-‘和’_’一起使用。有关详细信息,请参阅“Menu绑定”部分。
Modifiers,该字段如同在Mouse绑定中的定义,修饰键,前缀键。
Function,要执行的FVWM命令。如果Function为’-‘,则删除绑定。
以下示例在按下Alt-Ctrl-Shift-F11时弹出内置窗口列表,无论鼠标指针位于何处:
Key F11 A SCM WindowList
将键绑定到标题栏按钮会导致该按钮的显示。有关详细信息,请参阅Mouse命令。
Mouse [(window)] Button Context Modifiers Function
定义鼠标绑定。
Button
Button,是鼠标按钮编号。如果Button为”0“,则任何按钮都执行指定的Function。请注意,只有鼠标按钮1到5会被X11完全支持。上述任何数字仅部分有效。复杂功能不能与这些按钮一起使用,也不能用任何需要按住按钮拖动指针的操作。这是由于X11的限制。默认情况下,允许的最高按钮数为”9“。
Context
Context,描述绑定的适用位置。有效上下文为:
- R:根窗口
- W:应用程序窗口
- D:桌面应用程序(如kdesktop或Nautilus桌面)、
- T:窗口标题栏
- S:窗口四周(侧面、顶部、底部栏)
- [、]、-、_:仅适用于左侧、右侧、顶部、底部
- <、^、>、v:左上角、右上角、右下角、左下角
- F:适用于窗框(角落)
- I:表示图标窗口
- 0~9:表示标题栏按钮
- A:所有的以上情境。
这些字母字符之间可以的任何组合。例如,当鼠标位于窗口边框中的任何位置(标题栏按钮除外)时,应用“FST”上下文。只有’S’和’W’对于未修饰的窗口有效。
菜单的特殊上下文“M”可用于(重新)定义菜单控件。它可以单独使用,也可以与’T’,’S’,’I’,'[‘,’]’,’-‘和’_’一起使用。有关详细信息,请参阅“Menu绑定”部分。
特殊上下文“P”控制可用于放置窗口的按钮。使用此上下文时,不允许使用修饰符(修饰符必须为”N“),不允许使用窗口,并且Funxction必须是:PlaceWindow,PlaceWindowDrag,PlaceWindowInteractive,CancelPlacement,CancelPlacementDrag,CancelPlacementInteractive,–这七个中的一个。
PlaceWindow使Button可用于窗口放置,用于交互式和拖动移动。CancelPlacement反过来。这使得Button取消移动,以进行交互和拖动移动。但是,它可能无法覆盖放置后重新调整新窗口的大小。这由Emulate命令控制。此外,无论是否将其设置为PlaceWindow,都可以通过在拖动时释放被按住的按钮来放置被拖动的窗口。
PlaceWindowDrag、PlaceWindowInteractive/CancelPlacementDrag、CancelPlacementInteractive的作用类似于PlaceWindow/CancelPlacement,但它们仅影响以交互方式拖动/放置的窗口。
-与CancelPlacement是等价的。
以下示例使所有按钮(除了按钮3)可用于交互式放置,并且如果在完成移动之前按下按钮1可以取消,则通过其他按钮启动拖动移动而不是取消:
Mouse 0 P N PlaceWindow Mouse 3 P N CancelPlacement Mouse 1 P N CancelPlacementDrag
(window)
(window),默认情况下,绑定适用于所有窗口。您可以通过在括号中指定窗口名称来指定绑定仅适用于特定窗口。窗口名称是通配符模式,指定要将绑定应用于的窗口的类、资源、名称。
以下示例显示了如何使用相同的键绑定来执行不同的功能,具体取决于所关注的窗口:
Key (rxvt) V A C Echo ctrl-V-in-RXVT Key (*term) V A C Echo ctrl-V-in-Term Key (*vim) V A C -- Key V A C Echo ctrl-V-elsewhere
“–”操作表示事件应传播到指定的窗口以进行处理。 这只是特定于窗口的绑定的有效操作。
此示例演示如何在rxvt窗口上按下按钮3时显示WindowList:
Mouse (rxvt) 3 A A WindowList
请注意,Fvwm实际上拦截了特定于窗口的绑定的所有事件,并且(如果聚焦窗口与任何绑定不匹配)将事件的合成副本发送到窗口。 这应该对大多数应用程序透明,但是(出于安全原因)某些程序默认忽略这些合成事件(xterm就是其中之一)。 要启用这些事件的处理,请将以下行添加到~/.Xdefaults文件中:
XTerm*allowSendEvents: true
即可。
Modifiers
Modifiers,“N”表示无修饰符,“C”表示Ctrl,“S”表示Shift,“M”表示Meta,“L”表示Caps-Lock,“A”表示任何修饰符。 例如,修饰符“SM”表示当Meta键和Shift键同时按下时。X11修饰符mod1到mod5表示为数字“1”到“5”。默认情况下忽略修饰符“L”。要打开它,请使用IgnoreModifiers命令。
Function
Function,是fvwm的命令之一。或者如果Function为’-‘,则删除绑定。
标题栏按钮的编号为标题栏左侧的奇数编号按钮和右侧的偶数编号。 较小编号的按钮显示在窗口的外侧,而较大编号的按钮显示在窗口的中间(0表示10的缩写)。 总之,按钮编号为:
具有绑定动作的最高奇数编号按钮决定了标题栏左侧绘制的按钮数。具有绑定动作的最高偶数决定了绘制的右侧按钮的数量。 操作可以绑定到鼠标按钮或键盘键。
参考文献
Fvwm Manual/Mouse, Key & Stroke Bindings