Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1121637
  • 博文数量: 82
  • 博客积分: 3362
  • 博客等级: 中校
  • 技术积分: 500
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-05 16:27
文章分类

全部博文(82)

文章存档

2011年(1)

2010年(19)

2009年(62)

我的朋友

分类: LINUX

2009-10-06 20:01:23

http://blog.csdn.net/jinn8522/archive/2008/08/27/2838767.aspx
fvwm在执行命令的时候总会将参数扩展。参数是由'$'开始的,后面跟着单个字符或者括在括号内的单词。如果fvwm遇到一个没有加引号的参数,那么它 将会把这个参数扩展为字符串。fvwm不会处理它不认识的参数。参数扩展的优先级比引号高,如果需要得到'$',那么请输入'$$'。

如果命令带有'-'号前缀,那么fvwm将不会执行参数扩展。这只适用于紧挨着'-'号的命令,因为通常在这样的情况下参数扩展已经执行过了。当参数扩展和其他前缀一起使用时,必须放在其他前缀的前面。
比如说像下面这样:
 - exec xmessage '$[w.name]'
这个命令将会打开一个对话框,里面写着"$[w.name]",而不是扩展以后的内容。
这个长变量可能在它的名字里面包含其它的变量,内部的变量将首先被扩展。
在fvwm的早期版本中提供一些单字符的变量,但是单字符变量会引起很多问题,所以现在已经没有了。应该使用较长的变量名来替代。
例:
#打印当前的桌面编号和页面的水平编号和窗口的类(在这里没有扩展,因为没有窗口)
 $[desk.n] $[page.nx] $[w.class]
注意:如果这个命令在窗口的焦点之外被执行,它将会打印"$[w.class]"而不是类的名字。通常来说把鼠标指针放在一个窗口上面来获得窗口焦点是不够的。命令可以强制使窗口具有焦点。

$[desk.n] $[page.nx] $[w.class]


fvwm能够识别的参数有:
$$
      字母'$'
$
      fvwm正在读的这个文件的绝对路径。用来创建可重新定位的配置树。如果在任何可读文件之外使用则返回'.'。
$0 to $9
      分别标示传递到函数的第1个到第10个参数。如果相应的参数在函数中没有定义,那么这个参数会被命令行自动删除。
$*
      表示传递到函数的所有参数,包括$9以后的参数。
$[n]
      传递到函数的第n个参数,n是从0开始计数的。如果这个参数在函数中没有定义,那么这个参数会被命令行自动删除。这个参数扩展时不带引号。( The parameter is expanded unquoted. )
$[n-m]
      传递给函数的第n个到第m个参数。如果所有的参数在函数中都没有定义,那么这个"$[...]"会被命令行自动删除。如果只是部分参数有定义,那么扩展所有已定义的参数,忽略其它。所有的参数扩展时都不带引号。
$[n-]
      传递给函数的从n开始的所有参数。如果所有的参数在函数中都没有定义,那么这个"$[...]"会被命令行自动删除。所有的参数扩展时都不带引号。
$[*]
      传递给函数的所有参数。和$[0-]等效。
$[version.num]
      fvwm的版本号
$[version.info]
      fvwm的版本信息,像"(from cvs)",正式发行的版本没有这个信息。
$[version.line]
      fvwm --version命令输出的第一行
$[vp.x] $[vp.y] $[vp.width] $[vp.height]
      当前视口(viewport)的坐标、宽度或者高度。
$[desk.n]
      当前桌面的编号。
$[desk.name]
      这个参数会被自动替换为第n个桌面的名字。桌面的名字是通过命令来定义的。如果桌面没有命名,那么这个变量返回这个桌面的默认名字。
$[desk.width] $[desk.height]
      整个桌面的宽度或者高度。也就是单个桌面的宽度或高度乘以x或者y方向上这里桌面里页面的个数。
$[desk.pagex] $[desk.pagesy]
      一个桌面中x方向的页面个数或者y方向的页面个数。这两个参数的值是通过命令来设置的。
$[page.nx] $[page.ny]
      当前页面的编号,也就是当前页面离x和y轴的距离。编号是从0开始计数的。这里页面相当于GNOME当中的区域。
$[w.id]
      调用这个命令的窗口的ID(用16进制表示,比如 0x10023c),或者如果没有窗口和它关联,那么它的值就是字符串"$[w.id]"
$[w.name] $[w.iconname] $[w.class] $[w.resource] $[w.iconfile] $[w.miniiconfile] $[w.iconfile.svgopts] $[w.miniiconfile.svgopts]
      $[w.name]是窗口的名字
      $[w.iconname]是图标的名字
      $[w.class]是resource的类
      $[w.resource]是resource的名字
      $[w.iconfile] $[w.miniiconfile] 是图标或者或者由 或者 定义的迷你图标的文件名(这个文件在硬盘上的绝对路径)
      $[w.iconfile.svgopts]$[w.miniiconfile.svgopts] 是图标或者迷你图标的SVG渲染选项,只有当fvwm编译时加入了SVG支持时才有效
      如果以上这些命令没有和任何窗口关联,那么这些命令会被没有扩展的字符串"$[w.]"替代。
      注意:上面的前4个变量可能包括任何类型的字符,所以使用这些变量需要引用。这意味着这个变量的值两边需要加上单引号,而且值里面所有单独的引号都需要在前面加上反斜杠。以确保下面这样的命令:
      $[w.resource] norm/network.png
      可以正常运行,即使这个变量的值含有像空格或者各种引号这样特殊的符号。
$[w.x] $[w.y] $[w.width] $[w.height]
      如果窗口没有图标话的话,这些参数分别表示当前窗口的坐标或者宽度或者高度。如果窗口已经图标话了或者没有窗口相关联的话,这些字符串的值将被保留。
$[w.desk]
      这个变量的值为窗口所在的桌面号,如果窗口是sticky风格的,那么则为当前的桌面号。
$[w.layer]
      这个变量的值为窗口所在的层。
$[cw.x] $[cw.y] $[cw.width] $[cw.height]
      这个和$[w...]相似,不过返回的是窗口客户端部分的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]
      这个和$[w...]相似,不过返回的是图标或者图标标题($[it...])或者图标所用图片($[ip...])
geometry属性
$[pointer.x] $[pointer.y]
      这两个变量返回鼠标光标在屏幕上的位置。如果光标不在这个屏幕上,那么这俩个变量将不会被
扩展
$[pointer.wx] $[pointer.wy]
      这两个变量返回鼠标光标在所选择的窗口的位置。如果光标不在这个屏幕上,窗口被图标话或者没有窗口被选择,那么这俩个变量将不会被扩展
$[pointer.cx] $[pointer.cy]
      这两个变量返回鼠标光标在所选择窗口的子窗口(client portion)的位置。如果光标不在这个屏幕上,窗口被隐藏或者图标话或者没有窗口被选定时,
那么这俩个变量将不会被扩展
$[screen]
      fvwm正在运行的屏幕编号,对于多屏用户很有用。
$[fg.cs] $[bg.cs] $[hilight.cs] $[shadow.cs]
      这些参数用来替代colorset中定义的前景色(fg),背景色(bg),高亮色(hilight)或者阴影颜色(shadow)。(用一个正整数来替代参数里面的)。例如 "$[fg.cs3]"将会被扩展为名字为colorset 3的前景色(像rgb:rrrr/gggg/bbbb 这样的格式)。colorset的详情请参见

$[schedule.last]
      这个参数会用命令调度的最后一条命令的ID替换自己,不管这个命令是否已经执行。
$[schedule.next]
      在没有明确指定其它的ID的情况下,这个参数会用命令调度的下一条命令的ID替换自己。
$[cond.rc]
      返回最后一个判断语句的返回值。这个变量只在函数内部有效,而且不能被判断语句用来作为判断的条件。详情请查看命令列表中的
章节。
$[func.context]
      当使用
, 或者 命令时用来获得运行命令的上下文字符。可以像下面这个例子这样来用:    
      3 FS N $$[func.context]
$[gt.str]
      返回当前区域目录中str的翻译。如果没有找到翻译则返回原文。详见 章节。
$[...]
      如果[ ]里面的字符串不是上面的任何一个,fvwm将试着找一个同名的环境变量来替换它,并将这个环境变量的值给这个参数(比如说
"$[PAGER]" 可以被"more"替换)。如果找不到则保留这个变量。

章节的描述中可以找到一些具体的例子。
阅读(354) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~