|

楼主 |
发表于 2003-3-16 22:54:44
|
显示全部楼层
1.2.3 一些其它的命令
这些是上面未曾讲到的:
FVWM 可以有很多个虚拟桌面(desk)(几乎无穷多!),每个虚拟桌面可以被分成很多个页("page")。这些page相当于把你的屏幕扩大了很多倍。这一行就是设定每个desk包含多少page.
DeskTopSize 这类语句指定了整个FVWM的某种行为方式,类似的语句还有很多。比如:
* Read file. 插入另外一个文件file的内容。如果你会C语言,你就知道这个语句相当于 #include . 当你的配置文件在某一方面有很长内容时,比如我的配置文件里有大量stroke,你就可以把这些都写到另一个文件里,这样使主配置文件容易修改。
* Exec app. 启动一个shell,并且在里面执行"app"命令。这时用菜单和按钮来启动程序时经常用到的命令。
如果你要启动一个X程序最好同时使用 exec, 比如
Exec exec rxvt
这样shell会执行"exec rxvt", 用rxvt替代自己的正文段,这样才不会出现很多shell在那里等待X程序返回。
* Module FvwmXxx. 启动一个叫做 FvwmXxx 的模块。一个模块是一个程序,它直接通过管道与Fvwm通信,所以必须从Fvwm fork() 出来,而不能从一个 xterm 独立启动。模块可以无限制的扩展Fvwm的功能,只要 Xlib 允许。
* ImagePath path. 指定一个路径,在配置文件里要用到的图标等文件就会到这个路径里去寻找。比如:
ImagePath +:/usr/share/icons:/usr/share/pixmaps:
$HOME/.fvwm/icons
加号是表示以前定义过的那个 ImagePath. FVWM 可以使用 .xbm, .xpm 和 .png 格式的图标。
* Move, Raise, Lower, Resize, ... 这些都是常用的操纵窗口的命令。
* Close, Delete, Destroy, Iconify, Maximize, WindowShade. 关闭窗口,图标化窗口,最大化窗口,shade 化窗口. 你会发现Xwindow关闭窗口的方式有很多种,其中 Close 是最文明的一种,这会发给窗口一个消息让它收拾干净然后退出。Destroy 是立即杀死这个窗口,跟 xkill 的功能一样。Delete介于两者之间,先礼后兵,如果窗口不知道怎么收拾干净,那么就强行杀死它。
* OpaqueMoveSize x. 如果一个窗口移动时显示内容,那么它必需占屏幕面积的 x%.
* MoveToDesk, MoveToPage. 可以把任何窗口移动到指定的桌面和页面。
* SnapAttraction. 设定在什么距离以内,满足什么条件的窗口就被吸附在一起。biaji~~~~~
* WarpToWindow x[p] y[p]. 让鼠标移动到窗口范围以内。x,y是在窗口内的坐标,用百分比表示。后面如果有后缀"p", 就用像素来表示。
* IgnoreModifiers. 你可以忽略某些键盘控制键。这将影响到你的鼠标和键盘热键定义。详细情况见鼠标和键盘一节。
* DesktopName desk name. 定义第desk号桌面的名字叫 name.
* Scroll. 移动你在桌面上的 viewport, 这样你可以把桌面当成一个整体来浏览。看到很大的范围。
* Nop. 不操作,在有些时候需要用它来占位,下面我们会遇到这样的例子。
* PipeRead. 从一个外部命令得到输入。这可以用来根据你的系统构造许多非常高级的控制方式。其中一种叫做“菜单式文件管理器”。我们在菜单一节会遇到这个用法。
* SetEnv. 设置FVWM的环境变量。
就举这些吧……我只是举出了我有时会用到的,其实还有很多很多,你看看 FVWM 的manpage就知道了。
# 鼠标和键盘
FVWM几乎可以以无穷的方式组合,来进行鼠标和键盘的操作。你还可以加入窗口上下文来进行更方便的动作。
键盘操作的定义:
Key Keyname Context Modifiers Function
它表示:在名叫 Keyname 的键在 Context 上下文按下时,如果控制键 Modifiers 组合按下,那么执行 Function. 键盘操作后面的部分跟鼠标一样的含义,我们下面只用鼠标操作来一起说明这些命令的用途。
鼠标操作的定义:
Mouse Button Context Modifiers Function
它表示:在鼠标编号为 Button 的键在 Context 上下文按下时,如果键盘控制键 Modifiers 组合按下,那么执行 Function.
鼠标键编号的方法是:1 左键,2 中键,3 右键。如果你的鼠标有轮子,那么一般4表示往上滚动,5表示往下滚动。
Context是鼠标按下的位置,它可以是:
* R(Root Window) 根窗口
* n (n 是0...9 之间的一个数)。第 n 号窗口按钮。按钮是这样编号的:
1 3 5 7 9 0 8 6 4 2
左边是奇数右边是偶数, 外面的大中间的小。
* T(Title)标题栏
* S(Sidebar)也就是边框. 也可以用 '[', ']', '-' , '_' 分别表示左,右,上,下的边框。
* F(Frame)就是用来resize的那四个角落. 也可以用 '<', '^', '>' and 'v' 分别表示左上,右上,右下,左下的角落。
* W(Working Area) 应用程序窗口工作区域
* I(Icon window) 图标化的窗口。
这些上下文可以组合。比如 "FST" 表示在frame, sidebar, 或者 title.
Modifiers 是鼠标操作时同时的键盘控制键。M 表示 "Meta",在PC上就是Alt,S: shift, C: ctrl. 还有 A: any, N: none. 也可以组合,比如"MS" 表示同时按下Alt-Shift.
Function 就是任意的FVWM操作了,可以是一个直接的命令,也可以是一个 FVWM 函数。
现在我们分析一下下面这个定义:
Mouse 3 W SC CloseOrNot
这个定义是说,在窗口上点击鼠标右键,并且先按下 Shift-Ctrl,那么调用 CloseOrNot 这个FVWM函数。这个函数会作用与当前鼠标所在的上下文,也就是一个窗口。函数是这样定义的:
# 函数
DestroyFunc CloseOrNot
AddToFunc CloseOrNot
+ C Silent Close
+ M Nop
你可以把一系列的操作有条件的加入到一个叫做“函数”的结构里,以后这个函数就可以像命令一样被使用了。
AddToFunc 把动作附加到函数, 如果函数不存在就先创建这个函数。除了第一行,后面的行都以一个"+"号开头,这说明以下是上一个命令(AddToFunc)的继续。DestroyFunc 是为了消除以前有可能定义过的函数体。这个函数 CloseOrNot 表示:
* 如果是一个鼠标点击(C), 那么关闭这个窗口(Close), 但是如果现在不是在窗口上下文,也就是说,函数调用的时候没有一个确定的目标,那么不进行操作,而不是出现一个"+"字瞄准器让用户选择窗口。 这就是 "Silent" 的含义。
* 如果鼠标点下去之后移动了,也就是“拖动”(M),那么不进行操作。
#条件命令
All, Any, Cond, Current, Direction, Next, None, Pick, WindowId, ... 这些命令是条件选择窗口的办法,它们让你可以用非常多样的方法,来确定你的操作需要对哪一个或者哪些窗口进行。比如:
All (Iconic) MoveToPage -1 -1
把所有图标化的窗口都移动到桌面右下角的那一页。
Key F5 A A Direction North Maximize True 0 growdown
以后按 F5 就可以让当前聚焦窗口上面(North)那个窗口往下长大,直到被当前窗口挡住去路。你有时候想在VIM里抄 Acrobat Reader 里的内容,安排窗口大小的时候就可以用这招。
1.3 模块的功能
这里是重点了,很多你看到的漂亮的东东都是通过模块来实现的,我将按照模块名结合实例来讲讲如何设置,你可以一边看一边试验.
1.3.1 一些准备工作
&:如何选定颜色
fvwm中许多的地方需要配置颜色,简单的判定颜色的方法是:在kde的控制中心-观感-背景-颜色1,点击弹出的菜单的右下角有个HTML方框,有类似这样的数值:#8A94C6,这就是你选定的颜色了.我们以几个菜单的背景设定来看:
MenuStyle * Font -*-lucida-bold-r-*-*-12-*-*-*-*-*-*-*
#字体的设定
MenuStyle * HilightBackOff, Hilight3DThickness -2, ActiveForeOff, PopupOffset -3 100
#菜单的样式设定,你可以取消这项看看是什么效果
MenuStyle * SidePic linux.net.png,SideColor black
#那张图片就是菜单左面的那个东东了
MenuStyle * ItemFormat "%s%10p%|%i%12p%l%|%6p%>%10p%s"
#菜单中字体的放置格式,改改数值发现了什么变化,注意:每个字母是有含义的,
MenuStyle * MenuFace VGradient 128 1 #807C77 50 #908B86 50 #807C77
#这就是颜色的设定了,可以将128改为256,512,颜色的变化就更加柔和了
我再给出几种菜单的样式,你可以选其中的语法来试验看看
1:MenuStyle * Foreground gray90, Background royalblue3, SeparatorsShort
MenuStyle * Hilight3DOff, HilightBack royalblue2, ActiveFore gray17
MenuStyle * Animation
#MenuStyle * TrianglesSolid
MenuStyle * Font -mdk-helvetica-medium-r-normal--12-120-75-75-p-64-tis620.2533-1, PopupOffset 1 90
MenuStyle * MenuFace VGradient 128 1 royalblue3 50 royalblue1 50 royalblue1
2:MenuStyle * Foreground White, Background Black, SeparatorsShort
MenuStyle * Hilight3DOff, HilightBack White
MenuStyle * Animation, TrianglesSolid, SideColor White
MenuStyle * Font -adobe-helvetica-medium-r-*-*-20-*-*-*-*-*-*-*, PopupOffset 1 90
MenuStyle * MenuFace VGradient 256 2 rgb:0/40/67 50 steelblue 50 rgb:AA/AA/FF
#MenuStyle * MenuFace VGradient 256 2 rgb:5b/73/38 50 rgb:c8/c7/43 50 rgb:cf/df/83
3:Menustyle * fvwm, Font -adobe_koi8_ru-helvetica-medium-r-normal-*-*-120-*-*-p-*-koi8-r
MenuStyle * MenuFace, ActiveFore, HilightBack
MenuStyle * MenuColorset 50, ActiveColorset 51, GreyedColorset 52
MenuStyle * Foreground black, Background grey80, Greyed grey40
MenuStyle * Hilight3DThickness 1
MenuStyle * PopupDelayed, PopupDelay 50, PopdownImmediately, PopdownDelay 50
MenuStyle * Popupoffset 2 200, TitleWarpOff
MenuStyle * VerticalItemSpacing, VerticalTitleSpacing
MenuStyle * TitleUnderlines2, SeparatorsLong, TrianglesRelief
MenuStyle * Animation, AutomaticHotkeysOff, DoubleClickTime
MenuStyle * BorderWidth 1, SidePic, SideColor
MenuStyle * PopupAsSubmenu, HoldSubmenus
4:MenuStyle * ForeGround rgb:00/00/30, Background rgb:a0/a0/a0, Greyed rgb:4e/4e/4e
MenuStyle * Font defaultfont(18)
MenuStyle * MenuFace YGradient 512 4 yellow 5 rgb:00/ff/ff 5 lightgrey 50 lightblue 90 yellow
MenuStyle * PopupImmediately, SubmenusLeft, TrianglesSolid, SeparatorsShort
MenuStyle * HilightBackOff, Hilight3DThickness -2, ActiveForeOff, PopupOffset -3 100
MenuStyle * TitleWarp, TitleUnderlines1
MenuStyle * SidePic sidepic.xpm, SideColor #0000ff
MenuStyle * ItemFormat "%10p%<%6p%|%i%12p%l%|%12p%s"
5:MenuStyle * Foreground grey90
MenuStyle * Background #1c5572
# diverses options
MenuStyle * SeparatorsShort
MenuStyle * Hilight3DOff, HilightBack #424164, ActiveFore white
MenuStyle * Animation
MenuStyle * TrianglesSolid
MenuStyle * Font -adobe-helvetica-medium-r-*-*-11-*-*-*-*-*-*-* fvwm, PopupOffset 1 90
MenuStyle * MenuFace VGradient 128 1 #2c80A0 1 #1c5572
#MenuStyle * MenuFace VGradient 128 2 grey85 50 grey70 50 grey50 -- Flat
BorderStyle -- HiddenHandles NoInset
6:MenuStyle * Win
MenuStyle * MenuColorset 0, HilightBack darkblue
MenuStyle * ItemFormat "%2.4s%.1|%.5i%.5l%.5l%.5r%.5i%2.3>%1|"
MenuStyle * Font "Shadow=1:xft:Arial:size=10:encodig=iso8859-15;" \
"-adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*"
如何,对比这些变化后,你可以发现你已经能控制自己的菜单样式了^-^ |
|