|
==================================================
Fvwm 2.0设定说明 F(?) Virtual Window Manager 2.0
使用说明 FVWM 2.0在启动之後会先检查在个人目录($HOME/)下有无.fvwmrc2的档案,如果没有的话,就会检查/usr/lib/X11/fvwm2/.fvmwrc2 这个档案。然後读入其内容,该档案的内容就是FVWM的设定。以下我们将针对其内容分类并加以说明。
[ 环境设定 ]
IconFont fontname将Icon的字形。此时Icon的字形应为fontname所指定者。
IconPath path指定xbm 格式用来做为Icon用的图形档的路径所在。
PixmapPath path指定xpm 格式用来做为彩色的Icon用的图形档所在的路径。
ColormapFocus [followsmouse][followsfocus]指定FVWM控制颜色的方式。如果选用followsmouse,则滑鼠所在的视窗的colormap就是目前的colormap。如果是用followsfocus则目前拥有目前的键盘的输入控制的视窗之colormap就是目前所采用的colormap。
ClickTime delay指定在压下与放开滑鼠键的之间的时间。通常内定是150milliseconds。 Mouse Button Context Modifiers Function 此命令是用来定义滑鼠的按键的意义。各参数的意义如下:
Button 这是指滑鼠的按键。
0 表示任意键按下都会有反应。1 表示左键。2 表示中键。3 表示右键。
Context 是用来描述在什麽地方才会有用。
R 表示是root window ,也就是整个背景萤幕。
W 表示在视窗上面。
T 表示在Title Bar 上面,也就是显示视窗标题的地方。
S 表示在在视窗四周的边框上面。
F 表示在视窗的四角上面。
I 表示在Icon上面。
A 表示在Title Bar 以外的任何地方。
0-9的数字则是表示在Title Bar上面的按钮。它所表示的顺序如下所示:
1 3 5 7 9 0 8 6 4 2
上面的各项可以混合使用。如"FST" 表示整个视窗的任何地方。除了Title Bar 的按钮之外。
Modifiers 这个项目是指有无其他的组合键的配合。
N 表示没有其他的组合键。
C 表示CTRL键。S 表示SHIFT 键。A 表示ALT 键。M 表示Meta键。
上面各项也可以混合用,例如"CA"表示CTRL+ALT键。"CAS" 表示CTRL+ALT+SHIFT键。
Function 这可以是任何FVWM内建的功能。
Key keyname Context Modifiers Function这个命令是用来设定键盘上面的按键的定义。其中Context、Modifiers、 Function。请参照上面Mouse设定中的说明。至於Keyname 请参照/usr/include/X11/keysymdef.h 所定义的按键。要用的时候请把前面的XK_ 去掉。
[ 桌面设定与控制 ]
DeskTopSize HorizontalxVertical这是用来定义虚拟桌面的数目与排列方式。例如,如果设定
DeskTopSize 4x2
你就会有八个虚拟桌面可用,他们的排列方式是水平方向四个,垂直方向两排。
Desk arg1 arg2更换目前的工作的桌面,如果arg1为非零值,要移动的目地的桌面的号码为目前的桌面的号码加上arg1.但如果arg1为零的话, 则arg2就是目的桌面的号码。请注意arg1的值可以是负值。
GotoPage x y移动目前的工作桌面到(x,y)所指定的桌面上面。
EdgeResistance scrolling moving 这是用来设定当滑鼠游标碰触到萤幕的边界的时候,FVWM应该要如何动作。
scrolling 是告诉FVWM当滑鼠游标碰触到萤幕边界多少milliseconds之後,才会移动目前的工作桌面。moving则是设定当视窗超出画面多少像点之後,才要切换目前的工作桌面到别的桌面上。
EdgeScroll horizontal vertical这个命令是用来设定当滑鼠游标碰触到萤幕边界应该要移动多少百分比的萤幕大小。
如果设为0 的话,则当滑鼠游标碰到萤幕边界的时候,将不会有任何动作发生。如果设成100 的话,就可以移动一整个画面。
[ FVWM控制 ]
Quit这个内建命令将结束FVWM,通常也会造成X Window的结束。
Restart WindowManagerName这个命令会结束FVWM然後执行WindowManagerName 所指定的视窗管理程式。如果WindowManagerName 是FVWM本身的话,就相当於是重新执行FVWM。
[ 执行外部程式 ]
Exec command这个内建命令会去执行command 所指定的外部命令。
例如想要执行xterm 可以用下面的方式设定:
Exec xterm &
该命令应该是以背景的方式来执行。
Read filename这个会让FVWM从filename指定的档案读出命令来执行。
[ 选单设定 ]
Nop 这个内建命令的意思就是什麽都不做,所以当FVWM读到此行的时候什麽也不会做。这个命令通常是用来在选单之中加上一条分隔线。
Title 这个命令是用来在选单中插上一个标头字串。
Popup 这个命令是用来设定或是使用一个下拉式选单。通常有两个用法,一个是设定滑鼠或是某个定义键的按键按下後开启一个选单。另一个用法就是加在AddToMenu 的定义中成为一个选单的子选单。用法 请看下面的□例:
Popup "Utilities"Title "Utilities"Exec "Xterm" exec xterm &Exec "Rxvt" exec rxvt -sl &Nop ""Exec "Calculator" exec xcalc &Exec "Xman" exec xman &Exec "Xmag" exec xmag &EndPopup
上面定义了一个有五个选项的选单,有个标头为"Utilities" 。且在Rxvt与Calculator中间有分隔线做为分隔。上面只是定义了一个下拉式的选单。如果要呼叫这个选单的时候,就可以用Popup "Utilities" 的方式来呼叫。
MenuStyle forecolor backcolor shadecolor font style这个命令是是在设定选单的样式。forecolor 前景色。backcolor 背景色。shadecolor 禁止使用的选项的颜色。font 选单所使用的字形。style 选单的样式,有fvwm与mwm 这两种样式可以用。
AddToMenu 这个命令是用来定义一个选单。请看下面的例子
AddToMenu Tools "TOOLS" Title+ "Utils" Popup "Utilities" + "Xterm" Exec exec xterm &+ "Top" Exec exec xterm -e top &+ "" Nop+ "Xman" Exec exec xman &+ "Xcalc" Exec exec xcalc &
这个命令是在定义一个有五个选项的选单,在这个选单中,我们会在选单上看到"Utils"、"Xterm"、"Top"、"Xman"、"Xcalc",这五个选项。分别会执行xterm、top、xman、xcalc 这四个程式。以及呼叫"Utilities"这个下拉式的选单。而且这个选单将会有个Title,就是"TOOLS" 。而在Top 与Xman这两个选项之间将会出现一条分隔线。PS: 在设定档案中同一个Menu的定义不一定是要连续的。
Menu menu_name double_click_action上面所说的AddToMenu 仅是定义一个选单而已。如果要使用或是呼叫一个选单出来的话,就应该要用Menu这个内建命令。而後面的menu_name 就是在AddToMenu 後面所指定的选单名称。例如,如果你要呼叫上面定义的选单的话就应该要写Menu Tools Nop。如果你要设定使用者在选单上按两下之後的动作的话,可以设定在double_click_action 的地方。
DestoryMenu MenuName这个内建命令是要使MenuName所定义的选单无效化。也就是说如果执行了这个内部命令,MenuName所指的选单将会无效。
[ Function的设定与控制 ]
AddToFunc这个命令可以来设定Function。透过这个命令,你可以为你的FVWM定义自己的功能。请看下面的例子:
AddToFunc Move-or-Raise "I" Raise+ "M" Move+ "D" Lower
其中"I"、"M"、"D"意义如下: "I" Immediate 立即执行後面的命令。"M" Motion 如果滑鼠是在移动状态就执行後面的命令。"C" Click 如果使用者是以按下滑鼠键的 方式呼叫的话,就会执行後面的命令。"D" Double-Click 使用者如果是用连按两次滑鼠键的的方式来呼叫的话,就会执行後面的命令。 另外,Function也接受参数的输入。参数如下所列:
$w Window ID 视窗的ID(16进位)。$0-$9 表示呼叫时接在後面的第一个至第十个参数。
Function function_name arg0 arg1 ...这个是用来呼叫一个Function用的。如下面的例子:
Mouse 2 T A Function Move-or-Raise
如果没有内建命令与Function相冲突的话,Function这个关键字可以省略。
Wait name这个内建命令主要是用在Function的定义中,目地是要控制视窗出现的时间与顺序。例如下面的□例:
Function "InitFunction"Exec "I" exec xterm -geometry 80x64+0+0Wait "I" xtermDesk "I" 0 2EndFunction
当这个Function在执行的时候,会先执行xterm ,然後透过Wait的内建命令,FVWM会等到xterm 的视窗出现之後,才会执行後面Desk这个命令。
[ 视窗设定 ]
ButtonStyle button# lots-of-numbers这个命令是用来定义视窗的Title Bar 上面的按钮的样式。在没有特别设定的情况下,你会看到在Title Bar 上面有三个按钮,这些按钮都有他们的作用。透过这个命令可以让你定义自己想用的按钮样式。button# 是指你要定义哪一个按钮,FVWM提供了十个按钮可以让你设定,其排列采用下面的顺序:
1 3 5 7 9 0 8 6 4 2
而lots-of-numbers 其实是指很多的数字,这些数字的意义主要是定义你的按钮的样式。请看下面的□例:
ButtonStyle 2 4 50x30@1 70x70@0 30x70@0 50x30@1
这个命令是在定义第二号按钮,也就是最右边的按钮。4 这个数字是根据後面有四组数字而定的。如果你的後面有10组数字的话,那麽就应该填10这个数字。至於後面的数字,其实就是要告诉FVWM要怎麽样画这个按钮的外观。以上面的□例而言,FVWM将会从Button的水平方向的50% 的地方与垂直方向的30% 的地方,开始以前景色画线,一直画到水平方向70% 与垂直方向70% 的位置,然後在从这个位置以背景色画线到水平方向30% 与垂直方向70% 的位置。最後在从这个位置以背景色画线到水平方向的50% 与垂直方向30% 的位置。
HilightColor textcolor backgroundcolor这个命令是用来定义目前正在接受键盘输入的视窗的颜色。textcolor 就是其上Title Bar 文字的颜色。而backgroundcolor就是背景色。
Style windowname options这个命令是用来设定Window的样式。windowname是指要设定的视窗的名称,可以使用万用字元。而options 是用来指定这个视窗的样式,你可以有下面的选项使用:
BorderWidth width_of_pixel 指定视窗的边框的宽度为几个像点。
HandleWidth width_of_pixel如果视窗是属於可调整大小的视窗,指定其边框的宽度为多少像点。
NoIcon/Icon icon_file指定视窗的Icon,icon_file 即是Icon的档名。
IconBox l t r b指定视窗变成Icon後要放在萤幕的哪个区域内,後面的四个数字是指区域的□围。l 是指区域的左边,t 是指区域的上方,r 是指区域的右方,而b 是指区域的下方。
NoTitle/Title如果选择NoTitle ,则此视窗将不会有Title Bar 。如果选择Title 就会有Title Bar 。
NoHandles/Handles如果选择NoHandles ,则边框不会有四个角可以调整大小。如果选择Handles ,就会有。
WindowListSkip/WindowListHit如果选择WindowListSkip,则在WindowList这个Module就不会看到这个视窗的名字。WindowListHit则相反。
CirculateSkip/CirculateHit如果选择CirculateSkip 在做与个视窗之间的切换的时候将会跳过这个视窗。CirculateHit则相反。
StaysOnTop/StaysPutStaysOnTop将会让这个视窗一直在其它视窗的上方。
StaysPut是正常的情况。
Sticky/SlipperySticky会让视窗一直跟著桌面移动。Slippery则相反。
StartIconic/StartNormalStartIconic 会让此视窗启动的时候以Icon的方式出现。StartNormal 则是以正常的方式出现。
Color text_color/backgrond_color这是用来设定视窗的文字颜色为text_color,背景颜色为backgrond_color。 请注意,文字颜色与背景颜色之间请用斜线隔开。
ForeColor color这个是用来设定视窗的前景色,其实也就是文字的颜色。
BackColor color这个是用来设定视窗的背景色。
StartsAnyWhere/StartsOnDesk Desk指定视窗开启後要置於哪个桌面上,Desk是只桌面的代码。StartsAnyWhere,如果指定StartsAnyWhere则视窗会出现在目前的桌面上。
IconTitle/NoIconTitle设定Icon是否要显示Title Bar 的字元。NoIconTitle 则相反。
MWMButtons/FvwmButtons设定Button为Motif Window Manager的样式或是FVWM原本的样式。
MWMBorder/FvwmBorder设定边框是Motif Window Manager的样式或是FVWM原本的样式。
MWMDecor/NoDecorHint如果设定为MWMDecor,则此视窗可以接受一些属於Motif Window Manager才有的处理。
MWMFunctions/NoFuncHint如果设定为MWMFunctions,则此视窗可以接受一些属於Motif Window Manager才有的Function处理。
HintOverride/NoOverridem如果选择HintOverride,则FVWM会将一些MWM 所禁止使用的功能,以较浅的颜色来处理。不过实际上你还是可以使用这些功能。
NoButton/Button num_of_button这个是用来定义在视窗的Title Bar 上面的按钮有哪几个要有,有哪几个要去掉。num_of_button 是按钮的代码。
StickyIcon/SlipperyIcon如果选用StickyIcon,则此视窗如果变成Icon後,该Icon会一直跟著目前的桌面移动。SlipperyIcon则刚好相反。
SmartPlacement/DumbPlacement如果是使用SmartPlacement当视窗出现的时候,会自动的将视窗放在桌面上。而且仅可能的放在不会跟其他的视窗不重叠。DumbPlacement 则相反。 RandomPlacement/ActivePlacement如果是使用RandomPlacement 当视窗出现的时候自动的会放置到桌面上。如果选择ActivePlacement 则会让使用者选择放在桌面上的哪个位置。
DecorateTransient/NakedTransient[使用说明中未题及]
SkipMapping/ShowMapping[使用说明中未题及]
WindowFont font_name设定视窗的Title Bar的字形。
XORvalue number这个选项是用来设定当你在做调整视窗大小的动作的时候,要跟影像做XOR 的bits。在我们做调整视窗大小的动作的时候,萤幕上会出现一些线条,这些线条的颜色跟这个选项有很密切的关系。如果设定的不好的话,这些线条会变得很不明显。以致於不好操作。
[ 视窗控制 ]
Close这个命令会先送出要求视窗关闭的讯息,如果无法关闭视窗的话,将会强迫将其关闭。
Delete送出一个讯息要求该视窗自行结束。这通常都会让该软体以正常的方式自动结束。
Destroy跟Delete一样是要求视窗关闭。不过是属於暴力的方式来让强迫视窗结束
Lower这个内建命令会让视窗降到其它视窗之下的位置。
Raise这个内建命令会让视窗上升到其他的视窗之上的位置。
RaiseLower如果视窗是在其视窗之下,则这个内建命令会把它升到最上面的位置。如果这个视窗是在其他的视窗之上,FVWM则会将其降到下面的位置。
Maximize [ horizontal vertical ]这个内建命令是让视窗自动调整其大小。如果没有後面的参数的话,则该视窗会在正常大小与全萤幕的大小之间做切换。如果有参数的话,则会在正常大小与参数所指定的大小之间做切换。参数的意义,为水平方向占全萤幕宽的百分比,以及垂直方向占萤幕高的百分比。
Move [ x y ]让使用者可以移动这个视窗。如果没有参数则是让使用者移动视窗 。如果有参数的话,则是移动到参数所指定的位置。参数分别是指移到萤幕上面的水平与垂直各多少百方比的地方。如果数字後面加上'p' 的话,该数字则是表示像点。例如,要将视窗移到(100, 100)的话,就要写"Move 100p 100p"。如果要移到萤幕的中央,应该是写"Move 50 50"。
Resize [ x y ]如果没有给定参数的话,则是由使用者调整该视窗的大小。如果有给定参数的话,则自动将视窗调整到参数指定的大小。参数的用法是指占萤幕的多少百分比。而如果在数字後面加上'p' 就是表示多少的像点。
Next [conditions] command对所有满足下面的条件的下一个视窗执行command 所指定的命令。 "!iconic"、"CurrentDesk"、"Visible"、 "!Visible"、"CurrentScreen"。另外,conditions可以包含含有万用字元的视窗名字,来做为判断的条件。Prev对所有满足下面的条件的前一个视窗执行command 所指定的命令。"!iconic"、"CurrentDesk"、"Visible"、"!Visible"、"CurrentScreen"。
另外,conditions可以包含含有万用字元的视窗名字,来做为判断的条件。
None [conditions] command如果没有视窗满足下面的条件的时候,就执行command 所指定的命令。"!iconic"、"CurrentDesk"、"Visible"、"!Visible"、"CurrentScreen"。
另外,conditions可以包含含有万用字元的视窗名字,来做为判断的条件。
Recapture让FVWM回复所有的视窗的样式,这个命令的主要功用是让指定的样式能够有作用。
Refresh这个命令会让所有的视窗进行重绘的动作。
Sticky这个命令会让视窗在与桌面一起移动或是不与桌面一起移动之间做切换。
Iconify [ value ]让视窗在正常视窗与Icon之间做切换。如果value 为正值,则只允许变成Icon。反之,若value 为负值的话,则只允许变为视窗。
Focus将指定的视窗变成Active,并让它变成可见的,也就是移到所有视窗之上,并拥有键盘输入。
WindowList arg1 arg2将会产生一个下拉式选单,这个选单中会有目前桌面上所显示的视窗,及其目前的位置。如果是一个变成Icon的视窗,则这个视窗的名字会用括号括起来。如果arg1是偶数的话,则会显示Title Bar上所显示的字串。但如果是奇数的话,会显示Icon的名字。如果arg1小於2 的话,则所有的视窗都会显示出。但是如果arg1是2 或者是3 的话,只有在目前的桌面上的视窗会被显示出来。如果arg1是4 或是5 的话,则只有arg2所指定的桌面上的视窗会显示出来。
WindowsDesk new_desk移动目前的视窗到new_desk所指定的桌面上。
[ 模组命令 ]
ModulePath path_name设定Module的路径。如果有很多Module路径的话,请用冒号将其分隔开来。
Module module_name执行module_name 所指定的Module。如果module_name 没有跟其它的内建命令相冲突的话,可以省略Module这个关键字。
KillModule name 删除name所指定的Module,name可以包含万用字元。
[ 其它内建命令 ]
Beep这个内建命令会让电脑发出'beep'的一声。
CursorMove horizonal vertical这个功能是用来移动滑鼠的指标。後面的参数分别为水平和垂直的移动□围,其单位为一个桌面长宽的百分比。
这样就好了?呵呵,兄弟,别着急啊 :)最艰苦的还在后面呢,限于篇幅的关系,我只要另外做一个页面了 《FVWM 95设定说明》《FVWM新手入门不完全手册》自己看好了。
我的FVWM
下面我将我自己的FVWM配置文件“解剖”给大家看,呵呵 :)你可以看看我的FVWM截图。(我承认不怎么的PP,呵呵)当然这里只是我的个人喜欢配置成这样的样子,如果大家不喜欢的话,看完我这篇文章以后你能很容易的配置出你想要的FVWM。让大家能清楚的知道每一个选项和模块的意思。OK,我们开始:
#我的FVWM 配置文件,希望大家喜欢。
#设置图标的路径
#这里要说明一下:我用的是wm-icons的图标集合,你可以到任何一个XPM网站上面下载你喜欢的图标来装饰你的FVMW。
imagePath /usr/share/icons/wm-icons
# 设置鼠标样式
#有可能你的鼠标样式会改变,这里的声明可以让你的鼠标设置成你熟悉的Windows样式,当然不是完全的相似,是“黑心”的鼠标,呵呵。
CursorStyle ROOT left_ptr
CursorStyle TITLE left_ptr
CursorStyle DEFAULT left_ptr
CursorStyle SYS left_ptr
CursorStyle MENU left_ptr
#设置标题栏的样式
#这里的是标题栏的样式,我注释的两个是能实现任何窗口样式的左边(Style "*" TitleAtRight)和右边(Style "*" TitleAtRight)当然一般人更习惯上面的风格,FVWM也是一样,默认的是上面的。
TitleStyle Height 18
#Height 18 意思是标题栏的高度是18 ,总没有人BT到200吧?
#Style "*" TitleAtRight
#Style "*" TitleAtLeft
Style "*" FvwmBorder
Style "*" MWMButtons
# 这里的标题栏字体的对齐方式,FVWM默认是居中的,但是我看起来不怎么的好看,所以我把它改成了左对齐。
TitleStyle LeftJustified
#下面的是标题栏上面的按钮样式,具体的你可以参看FVWM的Man。
ButtonStyle 2 17 20x20@1 30x20@1 50x40@1 70x20@1 80x20@1 80x30@0 60x50@0 80x70@1 80x80@0 70x80@0 50x60@0 30x80@0 20x80@0 20x70@0 40x50@1 20x30@0 20x20@1
ButtonStyle 4 4 50x25@1 75x75@0 25x75@0 50x25@1
ButtonStyle 6 4 50x65@1 35x35@1 65x35@1 50x65@0
ButtonStyle 1 - Clear MWMDecorMenu
ButtonStyle 2 - Clear
ButtonStyle 4 - Clear MWMDecorMax
ButtonStyle 6 - Clear MWMDecorShade
# 设置标题栏的按钮和功能
Mouse 0 1 A Menu Window-Ops2 Close
Mouse 0 3 A Stick
Mouse 0 2 A Close
Mouse 0 4 A Maximize
Mouse 0 6 A WindowShade
Mouse 0 3 A Stick
Mouse 0 2 A Close
Mouse 0 4 A Maximize
# 设置样式
#这里的是设置一些样式的属性,比如颜色和字体。如果你看过我上面提供的文章的话,相信你会很容易的看懂它的。
Style "*" Font "-adobe-helvetica-medium-r-*-*-12-*,-aliasmisc-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*"
Style "*" IconFont "-adobe-helvetica-medium-r-*-*-12-*,-aliasmisc-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*"
Style "*" BorderWidth 1, HandleWidth 1
Style "*" HilightFore white, HilightBack #4b6888
Style "*" Color grey30/#8090a0
Style "*" MWMFunctions, MWMDecor, HintOverride
Style "*" MWMBorder
Style "*" DecorateTransient, NoPPosition
Style "*" IconBox 1096 404 1152 -120
Style "*" SmartPlacement
Style "*" MouseFocusClickRaises
Style "*" FPAllowFocusClickFunction, FPAllowRaiseClickFunction
Style "*" Frame 1
Style "*" MinOverlapPlacement, ReCaptureHonorsStartsOnPage
SnapAttraction 10 - Screen
#这里是设置不同Class窗口的属性,你可以看到一个叫“The GIMP”的窗口的标题栏是据左的。等等,自己根据还好添加吧 :)
Style "FvwmButtons" ClickToFocus,StaysOnBottom
Style "The GIMP" TitleAtLeft, NoHandles
Style "BarButtons" NoTitle, NoHandles, Sticky, WindowListSkip
Style "Fvwm*" Sticky,WindowListSkip,CirculateSkip,NoHandles,NoTitle
# 设置菜单样式
MenuStyle * Font "-adobe-helvetica-medium-r-*-*-12-*,-aliasmisc-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*" fvwm,PopupOffset 1 90
#设置菜单的前景色和背景色
MenuStyle * ActiveFore white
MenuStyle * Foreground white , Background #4b6888
#设置背景图
#我这里是注销的,如果你需要的话,可以打开。
#MenuStyle * MenuFace TiledPixmap /home/lufj/.fvwm/cheese.xpm
#设置键盘按键
Key F1 A M Exec exec rxvt -bg black -fg white -sr -T RXVT\ 通用中文终端
Key F2 A M Exec exec emacs
Key F3 A M Exec exec xmms
Key F4 A M Exec exec gimp
Key F5 A M Exec exec gvim
Key F6 A M Exec exec
Key F7 A M Exec exec
Key F8 A M Exec exec
Key F9 A M Exec exec
Key F10 A A Exec exec rxvt +sb -bg black -fg white -T FvwmConfigure -e vi $HOME/.fvwm2rc
Key F11 A A Restart fvwm
Key F12 A A Quit
# 设置按键操作窗口
Key F4 WTSFI M Close
Key F4 WTSFI M2 Close
#Key F3 WTSFI M Maximize
#Key F3 WTSFI M2 Maximize
#Key F2 WTSFI M WindowShade
#Key F2 WTSFI M2 WindowShade
#Key F1 WTSFI M Stick
#Key F1 WTSFI M2 Stick
# 设置鼠标动作
Mouse 1 R A Menu RootMenu Nop
Mouse 2 R A Menu Window-Ops2 Nop
Mouse 3 R A WindowList
# 设置鼠标动作
Mouse 1 R A Menu RootMenu Nop
Mouse 2 R A Menu Window-Ops2 Nop
Mouse 3 R A WindowList
# 设置虚拟桌面定数目和排列方式
DesktopSize 2x3
#虚拟桌面切换栏的样式
#就是“传说”中的虚拟窗口,呵呵。Windows可没有那东东 :)
*FvwmPagerBack #4b6888
*FvwmPagerFore grey90
*FvwmPagerFont none
*FvwmPagerHilight grey90
*FvwmPagerBalloons All
*FvwmPagerLabel 0 Misc
*FvwmPagerLabel 1 Maker
*FvwmPagerLabel 2 Mail
*FvwmPagerLabel 3 Matlab
*FvwmPagerBalloonBack #8090a0
*FvwmPagerBalloonFore white
*FvwmPagerBalloonFont "-adobe-helvetica-medium-r-*-*-12-*,-aliasmisc-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*"
*FvwmPagerBalloonYOffset +2
*FvwmPagerBalloonBorderWidth 1
#*FvwmPager: Pixmap /etc/gtk/cheese.xpm
# 设置是否鼠标移动切换窗口
# 100 是为是,0是为否
EdgeScroll 0 0
# 设置程序菜单 请根据自己的机子配置
AddToMenu RootMenu "Fvwm2 根菜单%16x16-gnome/linux.xpm" Title
#+ "Xterm 控制台%16x16-gnome/terminal.xpm" Exec exec xterm -bg black -fg white
+ "Rxvt 中文控制台%16x16-kde/terminal.xpm" Exec exec rxvt -bg black -fg white -sr -T RXVT\ 通用中文终端
#+ "Konqueror 浏览器%16x16-gnome/news.xpm" Exec exec konqueror
#+ "Opera Brower %16x16-gnome/amusement.xpm" Exec exec opera
+ "MozillaFirebird 浏览器%16x16-gnome/www.xpm" Exec exec MozillaFirebird
#+ "Konqueror%16x16-gnome/news.xpm" Exec exec konqueror
+ "Gaim%16x16-gnome/modules.xpm" Exec exec gaim
#+ "" Nop
+ "Xmms 音频播放器%16x16-gnome/music.xpm" Exec exec xmms
#+ "K Writer 3.0%16x16-gnome/kde.xpm" Exec exec kwrite
#+ "电子邮件%16x16-gnome/mail.xpm" Exec exec mutt -y
#+ "KDE文本编辑器%16x16-gnome/kde.xpm" Exec exec kedit
#+ "K Writer 3.0%16x16-kde/word-processor.xpm" Exec exec kwrite
#+ "AbiWord 文字处理%16x16-general/word-processor.xpm" Exec exec AbiWord
#+ "GNP 文本编辑器%16x16-gnome/word-processor.xpm" Exec exec gnp
#+ "Gedit 文本编辑器%16x16-kde/word-processor.xpm" Exec exec gedit
#+ "Gvim 编辑器" Exec exec gvim
#+ "Gthumb%16x16-gnome/colors.xpm" Exec exec gthumb
#+ "GtkSee%16x16-gnome/colors.xpm" Exec exec gtksee
+ "Gimp 图像处理%16x16-gnome/gimp.xpm" Exec exec gimp
+ "Gqview 看图软件%16x16-gnome/science.xpm" Exec exec gqview
#+ "Electric Eyes 电子眼%16x16-kde/science.xpm" Exec exec ee
#+ "Ksnapshot 抓图软件%menu/video.xpm" Exec exec ksnapshot
#+ "X 基本抓图程序%mini.camera.xpm%" FvwmForm FvwmForm-Capture
#+ "KDE音量控制器%16x16-gnome/sound.xpm" Exec exec kmix
#+ "Gnome 音量控制器%16x16-gnome/sound.xpm" Exec exec gmix
#+ "Xing 影像播放器%16x16-gnome/music.xpm" Exec exec xine
#+ "VideoLanClient%16x16-gnome/display.xpm" Exec exec vlc
#+ "Xine 播放器%16x16-gnome/display.xpm" Exec exec xine
#+ "Nautilus 浏览器%16x16-gnome/www.xpm" Exec exec run-nautilus
#+ "Mozilla 浏览器%16x16-kde/www.xpm" Exec exec mozilla
#+ "Netscape 浏览器%16x16-gnome/www.xpm" Exec exec netscape
#+ "Download For X%16x16-gnome/www.xpm" Exec exec nt
#+ "Opera Brower %16x16-gnome/amusement.xpm" Exec exec opera
#+ "电子邮件 Sylpheed %16x16-gnome/mail.xpm" Exec exec sylpheed
#+ "Balsa 邮件工具%16x16-gnome/amusement.xpm" Exec exec balsa
#+ "Gftp" Exec exec gftp
#+ "KPPP 拨号工具%16x16-gnome/game-cards.xpm" Exec exec kppp
#+ "GNOME 网络配置工具%16x16-gnome/game-cards.xpm" Exec exec neat
#+ "系统监视器 Gkrell %16x16-kde/monitoring.xpm" Exec exec gkrellm
#+ "Gnome系统监视器%16x16-gnome/monitoring.xpm" Exec exec gtop
#+ "计算器%16x16-gnome/calculator.xpm" Exec exec xcalc
#+ "放大镜%16x16-gnome/viewer.xpm" Exec exec xmag
#+ "字体管理%16x16-gnome/font.xpm" Exec exec xfontsel
#+ "电源" Exec exec xapm
#+ "X剪贴板%16x16-gnome/item.xpm" Exec exec xclipboard
+ "" Nop
+ "重新启动 Fvwm2%16x16-gnome/refresh.xpm" Restart fvwm2
+ "退出 Fvwm2 会话%16x16-gnome/choice-yes.xpm" Quit
#+ "" Nop
#+ "重新启动计算机%16x16-kde/refresh.xpm" Exec exec init 6
#+ "关闭计算机%16x16-kde/choice-yes.xpm" Exec exec init 0
#增加窗口控制菜单
AddToMenu Window-Ops2
+ "移动窗口%16x16-kde/window-move.xpm" Move
+ "重新设定大小%16x16-kde/window-resize.xpm" Resize
+ "(恢复)图标化%16x16-kde/window-iconify.xpm" Iconify
+ "(恢复)粘贴窗口%16x16-kde/window-stick.xpm" Stick
+ "(恢复)最大化%16x16-kde/windows.xpm" Maximize
+ "" Nop
#+ "删除窗口%16x16-kde/window-delete.xpm" Delete
+ "关闭窗口%16x16-kde/window-close.xpm" Close
+ "毁灭窗口%16x16-kde/window-destroy.xpm" Destroy
#设置按钮面板
*FvwmBacker: Command(Desk 0, Page * *) -solid grey90
DestroyModuleConfig BarButtons: *
#设置背景图片
#*BarButtons: Pixmap /home/lufj/.fvwm/cheese.xpm
*BarButtons: Fore white
*BarButtons: Back #4b6888
*BarButtons: Font "-adobe-helvetica-medium-r-*-*-12-*,-aliasmisc-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*"
#设置按键深度
*BarButtons: Frame 1
#设置快捷面板的位置
#*BarButtons: Geometry 798x75+0-0
*BarButtons: Geometry 65x598+0-0
#*BarButtons: Geometry 65x598+733-0
#设置单牌按键单数量按键
*BarButtons: Columns 1
#*BarButtons: (2x1, Title "电源", Swallow(Kill) "xapm" "Exec exec xapm -geometry -1500-1500 -p")
*BarButtons: (1x4, Swallow "xclock" "Exec exec xclock -padding 0 -bg grey95 -geometry -1500-1500")
*BarButtons: (1x4, Title Terminal, Icon 48x48-gnome/terminal.xpm, Action 'Exec exec rxvt -bg black -fg white -sr -T Rxvt\ 通用中文终端 ')
#*BarButtons: (1x6, Title Xftree, Icon 48x48-gnome/file-manager.xpm, Action 'Exec exec xftree')
#*BarButtons: (1x6, Title Mozilla,Icon 48x48-gnome/network.xpm, Action 'Exec exec MozillaFirebird')
*BarButtons: (1x4, Title Emacs,Icon 48x48-gnome/gnu.xpm, Action 'Exec exec emacs')
#*BarButtons: (1x6, Title Gaim,Icon 48x48-gnome/modules.xpm, Action 'Exec exec gaim')
#*BarButtons: (1x6, Title Gview,Icon 48x48-gnome/ghostview.xpm, Action 'Exec exec ghostview')
#*BarButtons: (1x5, Title GIMP, Icon 48x48-gnome/gimp.xpm, Action 'Exec exec gimp')
*BarButtons: (1x4, Padding 0 0, Container(Padding 0 0, Frame 1, Columns 3))
*BarButtons: (Icon 16x16-gnome/modules.xpm, Action 'Exec exec gaim ')
*BarButtons: (Icon 16x16-gnome/science.xpm, Action 'Exec exec gqview ')
*BarButtons: (Icon 16x16-gnome/gimp.xpm, Action 'Exec exec gimp')
*BarButtons: (Icon 16x16-gnome/amusement.xpm, Action 'Exec exec realplay')
*BarButtons: (Icon 16x16-gnome/multimedia.xpm, Action 'Exec exec xmms')
*BarButtons: (Icon 16x16-gnome/folder.xpm,### Action 'Exec exec xfm')
*BarButtons: (Icon 16x16-gnome/ghostview.xpm, Action 'Exec exec xpdf')
*BarButtons: (Icon 16x16-gnome/item.xpm, Action 'Exec exec MozillaFirebird ')
*BarButtons: (Icon 16x16-gnome/www.xpm, Action 'Exec exec rxvt +sb -bg black -fg white -T Mutt -e mutt')
*BarButtons: (End)
*BarButtons: (1x4, Padding 0 0, Container(Padding 0 0, Frame 1, Columns 3))
*BarButtons: (Icon 16x16-gnome/sound.xpm, Action 'Exec exec rxvt +sb -bg black -fg white -T Mp3blaster -e mp3blaster')
*BarButtons: (Icon 16x16-gnome/disk-cd.xpm, Action 'Exec exec rxvt +sb -bg black -fg white -e mount -o iocharset=gb2312 /dev/cdrom /mnt/cdrom ')
*BarButtons: (Icon 16x16-gnome/disk.xpm, Action 'Exec exec rxvt +sb -bg black -fg white -e umount /mnt/cdrom ')
*BarButtons: (Icon 16x16-gnome/window-destroy.xpm, Action Destroy)
*BarButtons: (Icon 16x16-gnome/window-move.xpm, Action Move)
*BarButtons: (Icon 16x16-gnome/help.xpm , Action Module FvwmIdent)
*BarButtons: (Icon 16x16-gnome/news.xpm,Action 'Exec exec ppp-on')
*BarButtons: (Icon 16x16-gnome/quit.xpm,Action 'Exec exec ppp-off')
*BarButtons: (Icon 16x16-gnome/configuration.xpm, Action 'Exec exec rxvt +sb -bg black -fg white -T FvwmConfigure -e vi $HOME/.fvwm2rc')
*BarButtons: (End)
*BarButtons: (1x4, Padding 0 0, Container(Padding 0 0, Frame 1, Columns 1))
*BarButtons: (Swallow "cputnik" "Exec exec cputnik &")
*BarButtons: (End)
*BarButtons: (1x4, Padding 0 0, Container(Padding 0 0, Frame 1, Columns 1))
*BarButtons: (Swallow "wmppp" "Exec exec wmppp &")
*BarButtons: (End)
*BarButtons: (1x8, Swallow "Misc")
#增加模块
#有些兄弟添加了样式,但是忘了添加了模块,这样可能造成没有你料想的后果。注意了,兄弟们。
AddToFunc StartFunction I FvwmButtons BarButtons
AddToFunc MailFunction "I" Next [$0] Iconify -1
+ "I" Next [$0] Focus
+ "I" None [$0] Exec $0 $1
AddToFunc Move-or-Raise "I" Raise
+ "M" Move
+ "D" Lower
AddToFunc Move-or-Raise2 "M" Raise
+ "M" Move
+ "D" Lower
AddToFunc Maximize-Func "M" Maximize 0 100
+ "C" Maximize 0 80
+ "D" Maximize 100 100
AddToFunc Move-or-Iconify "I" Raise
+ "M" Move
+ "D" Iconify
AddToFunc Resize-or-Raise "I" Raise
+ "M" Resize
+ "D" Lower
AddToFunc Resize-or-Raise2 "M" Raise
+ "M" Resize
+ "D" Lower
AddToFunc PrintFunction "I" Raise
+ "I" Exec xdpr -id $w
AddToFunc PrintReverseFunction "I" Raise
+ "I" Exec xdpr 1/2 -h -rv -id $w
AddToFunc Iconify-and-Raise "I" Iconify
+ "I" Raise
AddToFunc FocusAndWarp "I" FlipFocus
+ "I" WarpToWindow 50 50
AddToFunc DeiconifyFocusAndWarp "I" Iconify -1
+ "I" FocusAndWarp
AddToFunc ChangeDefaultFocus "I" Style "*" $0
+ "I" Recapture
AddToFunc MyTab "I" Next [!Iconic] FocusAndWarp
AddToFunc MyIcon "I" Iconify
+ "I" Focus
+ "I" WarpToWindow 50 50
AddToFunc InitFunction "I" Module FvwmPager 0 0
+ "I" Module FvwmButtons
AddToFunc RestartFunction "I" Module FvwmPager 0 0
+ "I" Module FvwmButtons
#设置墙纸
#这个不是FVWM 应该做的事情,但是你可以利用外部程序“安装”一个墙纸。我用的是xloadimage。
Exec exec xloadimage -onroot -fullscreen ~/0923.jpg &
FAQ :
好了,不知道上面的东东。兄弟们能否看懂?我再来说说在FVWM中很常见的问题
1,为什么 FVWM 不能用图片作为背景?
不熟悉Xwindow的人经常问这种问题。答案是FVWM确实不能设置复杂的高清晰图片作为背景,但是你却可以用图片作为背景。原因是:设置背景根本不是WM的职责,你需要用其它程序,比如 xloadimage, xv, ... 在根窗口上放置一幅图片,那就是所谓的“桌面背景”。你可以把它加入你的启动函数,一个 xloadimage 的例子可以在上面看到。
2 ,FVWM怎么锁定屏幕呢?
你又问到一个容易混淆的问题。锁定屏幕也不是WM必须有的功能。几乎所有WM都是调用另外一个程序,比如 xscreensaver 来锁定屏幕和提供屏幕保护,然后在它们的菜单里加入对 xscreensaver 配置程序 xscreensaver-demo 的调用。看起来好像是WM提供了屏幕保护功能,让很多用户模糊了WM的职责。 可以把 xsreensaver 加入到FVWM的启动函数里。参看启动函数和退出函数.
3,为什么 FVWM 的窗口标题不能显示汉字?
FVWM当然能显示汉字了,它是一个国际化的程序。原因在于你没有设置好汉字字体。你可以在配置文件里加入汉字字体的设定: Style * Font -*-simsun-medium-r-*-*-14-*-*-*-*-*-*-* simsun 是我机器上一种同时可以支持汉字和英语编码的字体,如果你的字体只有汉字编码,那么你的英文全部都会“乱码”,这时你需要在后面再加一个英文字体。比如:
Style "*" Font "-adobe-helvetica-medium-r-*-*-12-*,-aliasmisc-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*"类似的,pager,windowlist 都有自己的字体设定,你需要把它们都设置为你喜欢的中文字体。 另外,据说 FVWM 2.5 以前的版本对汉字支持不好。我没有用过 2.4.x,不知道怎么解决。如果你遇到这个问题就升级到 2.5.x 吧。
4,FVWM 有工具条吗?
有。启动 FvwmTaskBar 模块就行了。你还可以把它配置的非常漂亮。这里给出一个我的简陋的配置方案。
Style FvwmTaskBar HandleWidth 0, BorderWidth 0
*FvwmTaskBar: UseSkipList
*FvwmTaskBar: AutoStick
*FvwmTaskBar: DeskOnly
*FvwmTaskBar: Action Click1 DeiconifyRaiseAndFocus
*FvwmTaskBar: Action Click2 Iconify On
*FvwmTaskBar: Action Click3 Lower
*FvwmTaskBar: MailCommand Exec exec rxvt -e mutt
*FvwmTaskBar: 3DFvwm
*FvwmTaskBar: StartName FVWM
*FvwmTaskBar: StartMenu RootMenu
*FvwmTaskBar: Font -*-simsun-medium-r-*-*-14-*-*-*-*-*-*-*
*FvwmTaskBar: SelFont -*-simsun-medium-r-*-*-14-*-*-*-*-*-*-*
*FvwmTaskBar: ShowTips
*FvwmTaskBar: ClockFormat
*FvwmTaskBar: WindowButtonsRightMargin 20
*FvwmTaskBar: Back seagreen
*FvwmTaskBar: Fore gold2
*FvwmTaskBar: FocusFore cornsilk
*FvwmTaskBar: IconBack darkgreen
*FvwmTaskBar: IconFore white
另外,FvwmButtons 模块提供了更加复杂的功能。你可以把很多小程序(xclock,biff...)和模块(FvwmIconMan)嵌入到它里面。形成一个复杂的工具条。详情请 man FvwmButtons。你也可以使用 KDE 的 kicker 工具条和Gnome 的 gnome-panel. 请看后面。
5,FVWM 能不能像 Windows 那样用 Alt-Tab 切换窗口?
能。把这行加入 .fvwm2rc:
Key Tab A M WindowList Root c c NoDeskSort
这个绑定不知道什么时候好像成了 FVWM 缺省的。如果你不喜欢,那么加入:
Key Tab A M -
取消这个定义。
6,我不想要鼠标移动到窗口上就自动聚焦的方式怎么办?
FVWM 缺省的聚焦方式是 MouseFocus,也就是说,鼠标如果移动到哪个窗口,那个窗口就得到键盘聚焦。如果你想用 Windows 那样的需要点击鼠标才聚焦,那么你可以用 ClickToFocus 方式:
Style * ClickToFocus, ClickToFocusPassesClick
我用 MouseFocus 方式,可是当我的一个窗口被 Lower 后,我只能把鼠标移到其它窗口再移回来才能重新提升它。 缺省的 MouseFocus 方式不会在点击时提升窗口。如果你想点击窗口时提升它,那么加入配置:
Style * MouseFocusClickRaises
7,怎样才能使窗口获得焦点后自动提升?
你需要使用 FvwmAuto 模块。把 FvwmAuto 加入你的起动函数:
AddToFunc StartFunction + I Module FvwmAuto 500 Raise Nop
8,为什么 Acrobat Reader 打开一个全屏 PDF 文件后,还原为窗口还是不能移动?
把这行加到你的配置文件就行了:
Style "AcroRead" VariablePosition, VariableUSPosition
9,怎样才能让 ImageMagick 或者 Gimp 的几个小窗口同时提升或者下降呢?
把这行加到你的配置文件就行了:
Style "Display" RaiseTransient LowerTransient StackTransientParent
Style "Gimp" RaiseTransient LowerTransient StackTransientParent
10,FVWM 能和KDE, Gnome 一起工作吗?
KDE 和 Gnome 都是完整的桌面系统,包括了WM和其它很多东西。FVWM 只是一个WM。FVWM可以替代 KDE 缺省的 kwin,或者 Gnome 缺省的 sawfish 成为它们的WM。 只用KDE和Gnome的工具条 很多时候 Gnome 和 KDE 的程序是跟他们的桌面系统可以分开使用的。其实你有可能只需要它们漂亮的panel。 Gnome 的工具条叫做 gnome-panel, 在 xterm 启动一个就行了。 KDE 的工具条叫做 kicker. 注意 KDE 有些程序需要 dcopserver, 你可以先启动 dcopserver。 KDE 和 gnome 的panel上的pager和fvwm的FvwmPager都是相通的,所以你可以用它们任何一个来切换桌面 如果你在kde的任务条用右键选择“总在最前”可能不起作用,因为现在它们得完全听fvwm的话不过你可以给它们额外的权力,请参考fvwm manpage 的有关EWMH 的部分 完全启动Gnome和KDE与FVWM一起工作 还有些kde程序不知道用了什么通信方式,启动后就dump了。你可以用 startkde 来启动整个 KDE 系统。一般来说它们都可以与fvwm一起很好的工作。 Gnome 的启动命令叫做 gnome-session. 它也可以完全与 fvwm 一起工作。这样你就可以用 fvwm 的方式来控制所有桌面系统的窗口了。嘿嘿 |
|