Fvwm中文手册-FVWM(四)
时间:2007-04-17 来源:ilttv.cn
内置的按键和鼠标绑定(BUILT-IN KEY AND MOUSE BINDINGS)
下面的命令是fvwm内置的:
Key Help R A Popup MenuFvwmRoot
Key F1 R A Popup MenuFvwmRoot
Key Tab A M WindowList Root c c NoDeskSort
Key Escape A MC EscapeFunc
Mouse 1 R A Menu MenuFvwmRoot
Mouse 1 T A FuncFvwmRaiseLowerX Move
Mouse 1 FS A FuncFvwmRaiseLowerX Resize
Mouse 2 FST A FuncFvwmRaiseLowerX Move
AddToFunc FuncFvwmRaiseLowerX
+ I Raise
+ M $0
+ D Lower
Help和F1按键调用fvwm创建的内置菜单。这可能对于新用户很有用处。
Tab+Alt调用窗口列表菜单。
在标题栏、边框上使用鼠标左键能够move、raise或lower窗口。
在窗口四个边角使用鼠标左键能够resize、raise或lower窗口。
你能够去掉或修改这些默认的绑定,比如,为了去掉Tab+Alt和窗口列表的绑定,可以使用:
Key Tab A M -
模块和函数命令(MODULE AND FUNCTION COMMANDS)
如果fvwm遇到一个它无法识别的命令,它会检查这个命令是否应该是:
Function (rest of command)
或
Module (rest of command)
这允许调用模块和复杂的函数。
例如:在配置文件里有下面的语句:
HelpMe
Fvwm查找名为“HelpMe”的fvwm命令,如果不成功,它将查找名为“HelpMe”的用户自定义函数,如果没有这样的函数存在,则fvwm将尽力执行一个名为“HelpMe”的模块。
命令的延迟执行(DELAYED EXECUTION OF COMMANDS)
有很多能够产生特效的命令,比如Style,Mouse,Colorset,TitleStyle和很多其它命令。由于性能的原因,这些特效仅当fvwm空闲的时候才执行。特别的,在函数里设置的新的Style选项将在函数完成之后才执行。有时这可能会导致一些并不希望的效果。
UpdateStyles, Refresh 或 RefreshWindow命令可以强制所有的改变立即生效。
引号(QUOTING)
如果希望fvwm将两个或更多个单词当成一个单一的参数,引号是必须的。不过你可以使用“-”符号避开它,比如,有一个名为“Window-Ops”的弹出菜单,你不需要加引号:
Popup Window-Ops
但如果用空格取代“-”,则引号是必须的:
Popup "Window Ops"
fvwm可以支持双引号,单引号和reverse single quotes。所有三种引号被同样对待。
命令扩展(COMMAND EXPANSION)
任何时候执行一个fvwm命令行,fvwm都需要完成参数的展开。参数可以为$[...]或单个字符。如果fvwm遇到一个没有加引号的参数,则将它扩展为字符串。“$$”可以得到字符“$”。
注意,如果在一个窗口上下文外面调用命令,则“$[w.class]”将取代class名。
fvwm能够识别的参数有:
$$
字母'$'
$
当前Read文件的绝对路径。
$0 ~$9
传递到函数的参数。“$0”代表第一个参数,“$1”代表第二个参数,依此类推。如果相应的参数没有被定义,“$...”从命令行里删除。
$*
传递到复杂函数的所有参数。包括“$9”之后的参数。
$[n]
传递到函数的第n个参数,从0开始计数。如果相应的参数没有定义,“$[n]”从命令行里删除。这个参数被不加引号的展开。
$[n-m]
传递到函数的参数,以参数n开始到参数m结束。如果所有相应的参数没有定义,,“$...”从命令行里删除。如果仅有部分参数定义,所有已定义的参数展开,剩余的忽略。所有参数被不加引号的展开。
$[n-]
所有从n开始的参数。如果所有相应的参数没有定义,“$...”从命令行里删除。
$[*]
所有参数,相当于$[0-]。
$[version.num]
版本号,比如“2.6.0”。
$[version.line]
--version命令行选型输出的第一行。
$[vp.x] $[vp.y] $[vp.width] $[vp.height]
当前视口的坐标和宽高。
$[desk.n]
当前的桌面号。
$[desk.name<n>]
这个参数被桌面n的名字替换,在DesktopName命令里定义。如果没有定义名称,返回默认名称。
$[desk.width] $[desk.height]
整个桌面的宽高,例如,width或height乘以x或y方向的页面数。
$[desk.pagesx] $[desk.pagesy]
桌面x或y方向的页面总数。和DesktopSize里设置的一样。
$[page.nx] $[page.ny]
X和Y轴的当前页面号,从0开始。page相当于GNOME语法里的area。
$[w.id]
窗口id(16进制)。
$[w.name] $[w.iconname] $[w.class] $[w.resource] $[w.iconfile] $[w.miniiconfile]
窗口名称,图标名称,resource class 和 resource name,使用Icon 或 MiniIcon style定义的图标或mini图标文件名。
$[w.x] $[w.y] $[w.width] $[w.height]
当前窗口的坐标和宽高(没有图标化的时候)。
$[w.desk]
窗口所在的桌面号,如果窗口是sticky风格的,则使用当前桌面号。
$[cw.x] $[cw.y] $[cw.width] $[cw.height]
窗口客户端部分的geometry。换句话说,窗口的边框和标题不被考虑。
$[i.x], $[it.x], $[ip.x] $[i.y], $[it.y], $[ip.y] $[i.width], $[it.width], $[ip.width] $[i.height], $[it.height], $[ip.height]
返回图标,图标标题,或图标picture的geometry。
$[pointer.x] $[pointer.y]
返回屏幕上光标的位置。如果光标不在这个屏幕上,它们不被扩展。
$[pointer.wx] $[pointer.wy]
返回指针在所选择的窗口里的位置。如果指针不在屏幕上,这个窗口已经图标化或没有窗口被选择时,它们不被扩展。
$[pointer.cx] $[pointer.cy]
返回指针在所选择的窗口的客户区的位置。
$[screen]
fvwm正在运行的屏幕号。仅对多屏显示时有效。
$[fg.cs<n>]
$[bg.cs<n>]
$[hilight.cs<n>]
$[shadow.cs<n>]
被colorset <n>定义的前景色、背景色、高亮色、阴影色替换。例如,“$[fg.cs3]”被colorset 3的前景色替换。
$[schedule.last]
被Schedule命令调度的最后一个命令的id替换,即使这个命令已经执行。
$[schedule.next]
被Schedule命令调度的下一个命令的id替换,即使这个命令已经执行。
$[cond.rc]
最后一个条件命令的返回代码。这个变量只能使用在函数内部,不能被条件命令使用。
$[func.context]
$[gt.str]
返回str在当前locale下的翻译字符串。
$[...]
如果[]里面的字符串不属于上面中的任何一个,fvwm将会尽力查找一个同名的环境变量来替换它。脚本和复杂函数(SCRIPTING AND COMPLEX FUNCTIONS)
为了实现更加复杂的效果,fvwm 有很多提高它的脚本能力的命令。脚本(Script)可以通过三种方式获取,使用Read读取文件,使用PipeRead获得命令行输出,或者使用AddToFunc命令创建函数。fvwm FAQ的第七部分显示了一些脚本的文件应用。参考COMMANDS FOR USER FUNCTIONS AND SHELL COMMANDS 和 CONDITIONAL COMMANDS部分。在一个复杂函数执行期间,fvwm需要接收所有来自鼠标指针的输入。函数运行期间,其它程序不能够接收任何鼠标指针输入。