COMMANDS FOR MOUSE, KEY AND STROKE BINDINGS
IgnoreModifiers [Modifiers]
指定进行鼠标键盘绑定时,哪个修饰符将被忽略。IgnoreModifiers也影响ClickToFocus风格。最好在配置文件里使用它,如果你的fvwm会话已经正在运行,执行这个命令所造成的结果是不可预知的。它应该在一些应用或模块启动前使用。
Modifiers和Mouse或Key绑定的语法相同,另外还有‘L’表示大写锁定键,默认是‘L’。Modifiers为空,表示不忽略任何修饰符。在num-lock和scroll-lock键妨碍了你的快捷方式的时候,这个命令会派得上用场。在XFree86下,‘2’通常表示num-lock修饰符,‘5’表示scroll-lock修饰符。为了关闭所有这些烦人得修饰符,你可以使用下面得命令:
IgnoreModifiers L25
如果Modifiers参数是字符串“default”,则使用默认值“L”。
注意:这个命令创造了大量额外的网络流量,依赖于你得CPU,网络连接,配置文件里Key或Mouse命令得数量,和你希望忽略的修饰符的数量。如果你没有一个速度快的机子或有比较多的绑定,你不应该忽略两个以上得修饰符。比如,如果scroll-lock没有什么问题,就不要忽略它。在FAQ里,你可以发现一个更好得解决方法。
EdgeCommand [direction [Function]]
将指定的fvwm命令Function与屏幕的边缘(edge)绑定。direction可以是“North”,“Top”,“West”,“Left”,“South”,“Bottom”,“Right”和“East”。如果Function为空,绑定被删除。如果不带参数执行EdgeCommand,则所有边缘的绑定被删除。
Function当指针进入围绕可见屏幕的the invisible pan frames时执行。仅当EdgeThickness的值大于0时,这个绑定有效。如果一个函数绑定到一个边上,EdgeScroll针对这个边指定的滚动被禁止。将函数绑定到一些边上,则另外在另外一些边上执行滚动是可以的。当指针进入一个边时,这个命令有意提升或降低某些窗口。FvwmAuto可以用来获得提升或降低窗口的延迟。下面的例子里,指针进入屏幕top边时,提升FvwmButtons:
# Disable EdgeScrolling but make it possible
# to move windows over the screen edge
EdgeResistance 10000 20
# Set thickness of the edge of the screen to 1
EdgeThickness 1
# Give focus to FvwmButtons if the mouse
# hits top edge
EdgeCommand Top Next (FvwmButtons) Focus
# Make sure the Next command matches the window
Style FvwmButtons CirculateHit
Module FvwmButtons
Module FvwmAuto 100 \
"Silent AutoRaiseFunction" \
"Silent AutoLowerFunction"
# If any window except FvwmButtons has
# focus when calling this function
# FvwmButtons are lowered
DestroyFunc AutoLowerFunction
AddToFunc AutoLowerFunction
+ I Current (!FvwmButtons) \
All (FvwmButtons) Lower
# If FvwmButtons has focus when calling \
# this function raise it
DestroyFunc AutoRaiseFunction
AddToFunc AutoRaiseFunction
+ I Current (FvwmButtons) Raise
Normally, the invisible pan frames are only on the screen edges that border virtual pages。如果屏幕边缘绑定有命令,the pan frame is always created on that edge。
EdgeLeaveCommand [direction [Function]]
将指定的fvwm命令Function与屏幕的边缘(edge)绑定。direction可以是“North”,“Top”,“West”,“Left”,“South”,“Bottom”,“Right”和“East”。如果Function为空,绑定被删除。如果不带参数执行EdgeLeaveCommand,则所有边缘的绑定被删除。
Function当指针进入围绕可见屏幕的the invisible pan frames时执行。仅当EdgeThickness的值大于0时,这个绑定有效。如果一个函数绑定到一个边上,EdgeScroll针对这个边指定的滚动被禁止。将函数绑定到一些边上,则另外在另外一些边上执行滚动是可以的。当指针进入一个边时,这个命令有意提升或降低某些窗口。FvwmAuto可以用来获得提升或降低窗口的延迟。参看EdgeCommand的例子。
Normally, the invisible pan frames are only on the screen edges that border virtual pages。如果屏幕边绑定有命令,the pan frame is always created on that edge。
GnomeButton
与Mouse命令一起将根窗口上的鼠标按键按下(presses)操作传递到一个GNOME程序(例如GMC)。下面的例子传递鼠标按键1和3的presses到这样的程序:
Mouse 1 R A GnomeButton
Mouse 3 R A GnomeButton
Key [(window)] Keyname Context Modifiers Function
将键盘按键操作和fvwm命令绑定,如果Function为‘-’,则绑定删除。语法和Mouse绑定相同,除了鼠标按键数被Keyname取代。通常,键盘绑定当按键按下时被激活。Keyname是一个标准的X11按键名,在/usr/include/X11/keysymdef.h里定义,(不带XK_前缀),或者在keysym数据库/usr/X11R6/lib/X11/XKeysymDB里定义。Only key names that are generated with no modifier keys or with just the Shift key held are guaranteed to work。Context和Modifiers域和Mouse绑定里定义的相同。然而当你按下按键时,context窗口是有键盘焦点的窗口。不需要与指针下面的窗口相同(带有SloppyFocus或ClickToFocus)。注意,在‘R’上下文上的键盘绑定和SloppyFocus和ClickToFocus一起并不会很好的工作。如果你遇到某些问题,使用PointerKey命令替换。
下面的例子绑定内置的(built-in)窗口列表到Alt-Ctrl-Shift-F11序列,无论指针在什么地方:
Key F11 A SCM WindowList
细节参考Mouse命令。
Mouse [(window)] Button Context Modifiers Function
PointerKey [(window)] Keyname Context Modifiers Function
工作方式和Key命令类同,唯一的区别是在指针下面的窗口上执行绑定操作。通常是在焦点所在的窗口执行绑定操作。如果你正在使用SloppyFocus或ClickToFocus,PointerKey命令可以用来绑定按键到根窗口。然而一些应用不能够处理这个按键,即使指针在xterm窗口上面。推荐仅为不必在任何一个应用窗口内的按键组合使用PointerKey命令。
例如:
Style * SloppyFocus
PointerKey f1 a m Menu MainMenu
Stroke [(window)] Sequence Button Context Modifiers Function
StrokeFunc [Options]