fvwm使用指南
时间:2005-11-02
来源:互联网
参考的文献是:http://www.zensites.net/fvwm/guide/index.html
fvwm的设置.rar (24.0 KB, 1808 次查看) |
作者: jyr_king 发布时间: 2005-11-02
非常感谢楼主!
===============================
fvwm的设置很复杂,为了方便自己的配置和学习,我将一个个人感觉很不错的guide翻译了一下。fvwm可以通过一个配置文件实现各种风格,这个文件在$HOME/.fvwm/.fvwm2rc。同时,通过“Read”命令,还可以从其他地方读取子文档,相当于C/C++中的#include。没有经过配置的fvwm是很丑的。(就像和氏璧一样,需要雕琢的——这是我自己加的)
下面就开始配置我们的.fvwm2rc文件:
1.全局设置
在fvwm中我们可以设置一些环境变量,就像shell中的环境变量一样,它告诉fvwm到相应的地方寻找相应的资源。例如:
#####
# Set Environment variables
###########
SetEnv fvwm_home $[HOME]/.fvwm
SetEnv fvwm_img $[fvwm_home]/images
SetEnv fvwm_icon $[fvwm_home]/icons
SetEnv fvwm_scrpt $[fvwm_home]/scripts
SetEnv fvwm_wallpapers $[fvwm_img]/wallpaper
同时你也可以设置一些你喜欢让fvwm默认使用的程序:
SetEnv fvwm_webbrowser /usr/bin/firefox
SetEnv fvwm_term /usr/bin/aterm
SetEnv fvwm_mail /usr/bin/mutt
SetEnv fvwm_media_player /usr/bin/xmms
SetEnv fvwm_video_player /usr/bin/mplayer
接下来设置ImagePath:
#####
# Set the image path
###########
ImagePath $[fvwm_icon]:$[fvwm_icon];.png:+
我将所有的图标文件都放到$[fvwm_icon]这个目录下了。之所以在上一行中我将它写两遍并且后一个后面加了;.png:+是因为我想告诉除了.xpm默认格式以外还可以有.png替代格式。你可以添加更多的ImagePath,例如将公用的image放在/usr/local/share/Images而将自己私有的放在$HOME/images下面。
接下来设置虚拟桌面,fvwm可以设置几乎无数的虚拟桌面,同时一个桌面又可以分为一定数目的pages。
#####
# Virtual Desktops
###########
DesktopSize 3x3
DesktopName 0 Main
DesktopName 1 Work
DesktopName 2 Games
EdgeScroll 100 100
EdgeResistance 150 150
EdgeThickness 1
上例中,我设置了3个桌面,分别为0-main,1-work,2-games。每个桌面分成3x3个页面。EdgeScroll告诉我当我鼠标移到边界的时候,移动(例中是一整屏100%)一定百分比的桌面到下一个页面上。EdgeResistance说明需要多长时间才被认为需要滚屏。EdgeThickness是边界宽度。设定值是像素数。如果不喜欢这样的滚屏动作,你可以将它置为0,或者设置EdgeScroll 0 0.
接下来设置鼠标和聚焦行为:
#####
# Mouse and Focus Behavior
###########
ClickTime 350
MoveThreshold 3
Style * SloppyFocus, MouseFocusClickRaises
ClickTime设置被认为是一次点击的极限时间,超过这个时间,就被认为是hold。 MoveThreshhold设置移动多少个像素被认为是鼠标在移动。Style发布样式命令,*表示多所有窗口都如此。SloppyFocus是一种鼠标聚焦方式,表示鼠标所在的窗口聚焦。MouseFocusClickRaises表示聚焦的窗口在鼠标点击之后浮到顶端。当然还有很多其他的样式,各人可以根据自己的喜好做选择,请参考fvwm的man pages。
除了样式以外,还有一些特殊的关键字设置桌面的行为,一个简单的例子如下:
EwmhBaseStruts 62 162 0 48
IgnoreModifiers L25
第一行设置“可用”的桌面面积,它申明的方式是EwmhBaseStructs 左右上下。数值表示离边界多少个像素。如果你想让fvwm忽略这个设置你应该设为EWMHMaximizeIgoreWorkingArea。第二行告诉fvwm忽略某些Modifiers。L25表示windows将忽略Lum Lock这个调节器。
在我的.fvwm2rc中使用的还有很多其他样式,我不打算一一解释,只是说明一下还有很多的样式可用。具体可参考fvwm参考文档。
#####
# Global Styles and options
###########
Style * TileCascadePlacement, GrabFocusOff
Style * NoPPosition, ResizeOpaque
OpaqueMoveSize -1
Emulate MWM
HideGeometryWindow Never
SnapAttraction 5 SameType Screen
SnapGrid 3 3
XorValue 55555
Style * DecorateTransient, DontRaiseTransient
Style * DontLowerTransient, StackTransientParent
Style * GrabFocusTransientOff
Style * WindowShadeSteps 20, WindowShadeScrolls
SetAnimation 10 -.01 0 .01 .03 .08 .18 .3 .45 .6 .75 .85 .90 .94 .97 .99 1.0
Style * MwmDecor, SlipperyIcon
Style * IconBox screen w 15 15 -165 -15, IconGrid 3 3, IconFill right top
接下来我将设置很多与程序有关的样式。命令的格式是[style] [string] [styles]。FVWM于是对比[string](包括*)和名字,类以及/或窗口资源。你可以用FvwmIdent Module来抽取这些资源。这个例子设定了与相关程序关联的小图标。当然还有其它的样式可用。
#####
# Program Styles
###########
Style "*" Icon 48x48/unknown.xpm
Style "XTerm" Icon 48x48/xterm.png, NoActiveIconOverride, MiniIcon mini/xterm.png
Style "gvim" Icon 48x48/gvim.png, IconOverride, MiniIcon mini/gvim.png, EWMHMiniIconOverride
Style "Firefox-bin" Icon 48x48/firefox.png, MiniIcon mini/firefox.png, EWMHMiniIconOverride
Style "irssi" Icon 48x48/gaim.png, MiniIcon mini/irc.png
Style "xmms" WindowListSkip, CirculateSkip
Style "MPlayer" Icon 48x48/mplayer.png
2.函数:
函数是能被fvwm调用的一系列操作的集合。Fvwm中的函数样式如下:
#####
#
# DestroyFunc FuncName
# AddToFunc FuncName
# + I (行为立即发生)
# + C (行为在鼠标单击时发生)
# + D (行为在鼠标双击时发生)
# + H (行为在鼠标保持的时候发生)
# + M (行为在鼠标移动的时候发生)
#
###########
第一件要做的事情是用DestroyFunc来清楚这个函数。这将清除用于这个函数上的所有应用。接下来AddToFunc,加入你想在函数被调用时执行的动作。动作行为在上面已经介绍过了,你同时还可以传递参数给函数,形式为'FuncName "$0" "$1" "$2" "$3" "$4"',这里$0-$4是传递给函数并且能决定其输出的参数。下面看一些基本的函数:
第一个函数FvwmDeleteOrDestroy在鼠标停留或者移动的时候不发生动作,单击的时候删除,双击销毁一个窗口。第二个函数FvwmIconifyOrShade在单击的时候图标化,双击时窗口阴影化。其他函数不做一一解释了,以后会做补充修订的:)
接下来我还可以写一些函数用来启动我常用的程序,这样我就可以调用它们:
最后一个函数用来显示帮助页,输入FvwmViewManPage fvwm可以显示fvwm的帮助页。注意那个’\’,它告诉fvwm将两行合并为一行来解释。
另外有三个特殊的函数,分别是启动函数,初始函数和重启函数。启动函数在fvwm启动的时候运行,当fvwm第一次初始化时初始函数在启动函数之后运行,重启函数用在启动函数之后fvwm重启时。下面是例子:
可以看到在fvwm启动的时候启动了三个module:FvwmTaskBar,FvwmPager,FvwmButtons。初始的时候运行了xscreensaver,设置背景并运行xmms和atem,重启函数出了StartFunction以外什么也没做。
函数可以包含很多细节并且加入很多实用性到你的桌面环境。你可以传递几乎任意数目的参数给它,并且产生与鼠标无关的各种行为。函数可以使用fvwm保留字以外的任意名字去定义一个行为(保留字包括Nop,Delete,Destroy,Restart,Exec,etc)。
下面是一些更复杂一些的例子:
3. bingings(绑定)
此绑定和微软的捆绑销售可不是一回事哦,绑定意思就是将一种行为绑定到一个鼠标动作或者键盘组合键上,其实就是快捷键的意思了:)
一个典型的桌面可以分为这么几个部分,如下图:
解释一下:R(oot), I(conify), S(frame-sides), F(rame-corner), W(indow), T(itle),0~9为buttons。
可以绑定一组键到一个动作:'Key X Context Modifier Action',也可以绑定一个鼠标动作到一个动作:'Mouse X Context Modifier Action'。Context是鼠标所在地。而Modifier是以下组合:(A)ny, (C)ontrol, (S)hift, (M)eta, (N)othing, or 1-5,代表 X Modifiers mod1-mod5 (man xmodmap). 下面是一个例子:
举例来说,第一行表明,无论鼠标在哪,按alt+F1键就可以打开根菜单。
而第二行,定义了当按下alt+tab时,列出目前使用的窗口列表,然后在列表中切换。
第三行定义了按下左边的windows键可以打开一个Aterm。
第四行定义在根窗口中点右键可以打开根菜单。
……….
不再累述。
4. windows décor(装点窗口)
这一小节是使得窗口变漂亮的关键哦!窗口装点顾名思义就是定义窗口的外观。Fvwm通过颜色主题或象素映射来定义窗口装饰。先看第一种情况的简单例子,初学者可以通过定一些colorset来定义窗口装饰所用的基本颜色。Colorset可以定义fvwm的所有部分。以下是一个简单例子:
定义了三组colorset3,4,5。每种colorset都有前景色和背景色。颜色可以用十六进制数表示,也可以用X定义的参考颜色(在/etc/X11/rgb.txt中)。同时还可以设置所谓的高亮(hi)和阴影(sh)。理论上说colorset可以用任意长的整数,但尽量用短整数因为fvwm将把你所用的colorsets加载到内存。你可以到FvwmThemes的帮助页去获取更详细的信息。
The decor can be broken up into three parts, the TitleStyle, the ButtonStyle and the BorderStyle. The following sets up a simple decor.装饰可以分为三部分:标题样式,按钮样式和边框样式。下面是一个简单的例子:
MyDecor定义了三个ButtonStyle:1,3,5(使用向量)。其排布和bingings中一样。这里要注意的是在定义一个按钮的使用向量之前需要先将其绑定到一个动作上(bingings)。每一句后面加入一句—flat意思是不要让按钮相对于标题栏有凸起的感觉。一个向量就是简单的划一横线,每个向量划在一个100x100的格子里,向量横线可以通过任意多的点数,其定义的语法是:'Vector [number of points] [[point1] [point2] ...]'。points定义:'XxY@Z' Z是0-4之间的一个数代表一种颜色:0 – 阴影(sh), 1 – 高亮(hi), 2 – 背景色(bg), 3 – 前景色(fg), 4 – 不可见.
现在可以告诉窗口去使用自己定义的décor和colorsets。
这几行告诉所有的窗口去使用MyDecor,设置字体,边界宽度,colorset4以及BorderColorset等。我喜欢我所有的窗口都使用一个方案,当然你也为一些特定的应用设置特别的方案:)
5. Menus(菜单)
你可以通过bingings来*出菜单,也可以把菜单挂到任务栏去。菜单可以用来列出应用程序甚至可以设置为动态的来显示路径信息以及最近使用程序菜单等等。设置菜单的第一件事情是设置它使用的colorsets。大多数菜单使用两种colorsets,一种用于主菜单,一种用于激活项。一个简单的例子是:
With fvwm 2.5.10 you can make RootTransparent colorsets for menus. These colorsets will use the background as the pixmap for the menu so they appear to be transparent but will not show any windows located under the menu. Example of such colorsets are:使用fvwm2.5.10你可以定义RootTransparent colorsets,这种colorset使用背景色作为菜单的颜色,这样菜单就变得透明而可以显示菜单以下的窗口。这样的例子是:
这是一个使用RootTransparent的例子。Tint和bgTint是菜单的色调,后面跟一数字表示透明度,0表示完全透明,而100不透明。
With the Translucency patch you can make the windows behave closer to true transparency. If you have installed that patch correctly, you can create a translucent colorset. To use the option you add 'Translucent [color] [percent]' to the colorset, like the following example:如果你使用Translucency补丁你可以使你的窗口显得更象真透明。如果你正确安装了这个补丁,你可以设置半透明的colorset。想使用这个效果可以在colorset里加入'Translucent [color] [percent]'。例如:
设置完毕colorsets之后就可以定义一些菜单样式了。菜单样式类似样式命令并可以用'*'把样式应用到所有的菜单。当然也可以不同的窗口使用不同的样式。一个使用全局样式的例子是:
你可以参考帮助页去了解每个选项是什么意思,不过它们的意思还是很明显的,定义了菜单的*出和*回行为,字体,colorsets,菜单项的格式,菜单标题等等。如果你希望不同的菜单有不同的外观你可以把“*”替换成你的菜单名字。例如用'MenuStyle FvwmMenu* [styles]' 和 'MenuStyle MyMenu* [styles]'来获得两种独立的菜单外观,分别称为FvwmMenu和MyMenu。
在定义好了菜单的外观和行为之后,我们可以建立一些菜单了。建立菜单和建立函数很相似。你必须先销毁以前的菜单然后加入你想要显示的菜单项。一个基本的根菜单可以这么写:
基本的菜单项格式是'+ "[item name]%[icon]%" [action]',icon选项放在前还是在后都无所谓,比如你也可以这么写:'+ "%[icon]%[item name]" [action]',是一样的效果,如果想控制图标在左还是在右,你应该放在MenuStyles里。这里建立了一个很简单的根菜单,当你在单击根窗口的时候*出。菜单中有五项。如上所示。“Nop”加入了一个分隔。
现在来建立这些子菜单:
下一次菜单是一系列窗口操作,通过它你可以对窗口作一系列操作并制作截图。在bindings那一节我设置了一个binding,当单击根窗口的时候打开这个菜单。最后一项调用了FvwmIdent模块,它可以提供窗口的各种信息。
6. modules(模块)
Fvwm模块是一小段程序,用“Module”命令添加到fvwm中以增加桌面的功能。有许多的模块可用,不过在这里我只讲三种很重要的模块:FvwmTaskBar, FvwmPager and FvwmButtons。为了运行一个模块,你需要先配置它然后用“Module”命令来使用它。这些模块都使用colorsets作为一个选项,所以我先生成两个用于整个模块的colorset。这三种模块都可以使用RootTransparent colorset,据我所知 Translucency补丁只能用于菜单。
为了了解module的基本语法,让我们来看一下FvwmIdent模块。这个模块用来鉴别一个窗口并且给出有用的窗口信息。大多数情况下在Fvwm中我们第一件事是清楚以前的设置,接下来给module发送一些选项如下:
这个module的配置相当简单。它仅仅告诉FvwmIdent用什么字体和颜色配置(colorset)。运行这个module只需要加入一句'Module FvwmIdent'到相应的动作中(比如我在windows ops menu中所做的)
接下来我介绍一下FvwmTaskBar。 FvwmTaskBar非常类似windows中的任务栏,它有一个开始菜单,有一些快速启动按钮,然后是正在运行的任务列表,在最边上还有一个时钟。
作为开始我们先给FvwmTaskBa设置一些风格,这样task-bar不会使用窗口装饰,也不会被包括入正在运行的任务列表。同时我还让我的任务栏变得“坚固”,这样所有的虚拟桌面中都有显示并且大小和位置是固定的。
第二行清除默认设置。接下来设置了很多选项,在FvwmTaskBar man page中有介绍。主要是设置了任务栏使用的颜色配置以及字体。我同时告诉了任务栏使用UseSkipList,这样如果包含有'WindowSkipList'选项的窗口将在taskbar上显示。
FvwmPager用来显示虚拟桌面的布局。它可以显示所有你设置的页面和桌面,以及在其中的窗口。
和FvwmTaskBar一样,第一件事情是设置你的页面所用的风格和颜色方案。这里我使用和任务栏一样的颜色方案。
参考帮助页你可以获得一个完整的描述。我在启动函数中已经使用了这个module,用来显示0-2三个桌面了,如果没有任何选项,FvwmPager只显示当前桌面。
FvwmButtons可能是fvwm中最多才多艺的模块了。
With that being said, the intro here will only cover the basics of how to set up FvwmButtons. As mentioned, you can create as many instances of FvwmButtons as you would like to do about anything you would want on your desktop. I will create a simple set of Buttons called MyButtons to get you familiar with the syntax. In the advanced topics section I will give examples of more complex FvwmButtons to give you a better feel for how they work.
The basic layout of FvwmButtons is a rectangle (though as taviso mentioned you can configure them to be any shape). You set the geometry of the FvwmButtons by giving its size (width X height) and then can break that into a grid by expressing the number of rows and columns it has. This is important because then each button inside the FvwmButtons panel can span any number of rows and columns allowing you to make buttons of various sizes. Then inside each button you can set up Titles, Icons, Actions and even have it swallow other applications (more on this in the advanced topics appendix). The buttons are filled in from the top left to the bottom right as shown in the figure.这里只是简单介绍怎样设置FvwmButtons。你可以创建要多少有多少的FvwmButtons范例去完成你想要的桌面任务。我在这里创建一个简单的MyButtons,让大家熟悉一下语法。在进阶内容中我会给出一个更复杂的FvwmButtons,让你更好的感觉到它们是怎么工作的:)
FvwmButtons的基本布局时一个矩形。你可以设置它的尺寸(宽x高)然后通过设定行数和列数把它分成一些格子。这很重要,因为FvwmButtons中的每个按钮可以跨越任意行数和列数以实现各种大小的按钮。每个按钮可以设置标题,图标,动作甚至“吃掉”其他应用程序(更多的介绍在进阶内容的附录中)。按钮从最左上角排到右下角,如下图所示:
The example I provide for this guide is quite basic just to show you the basic syntax. This is a single column button with a title and then a few quick launch buttons to launch some applications.我提供的这个例子很简单,仅仅为了显示一下语法。这是一个单列按钮,有一个标题,然后是一些程序的快速启动按钮。
7. 小结:
祝贺你,你已经完成了你第一个fvwm2rc文件。我希望你已经掌握了关于fvwm配置的基本知识,并且意识你掌握了多少自由了:)以上所提到的所有东西都是fvwm设置所必须考虑的基本内容。回顾一下,我们设置了全局变量去控制fvwm的行为,然后创建函数,设置绑定,装饰窗口然后创建菜单。最后我们看了一些可以加入fvwm中的模块。
这个向导中使用的fvwm2rc文件在这里,你可以看到整个配置文件,如果你使用我给的图片的话,你应该能得到一个类似的图片:
作者: soloforce 发布时间: 2005-11-02
楼主的包里头好象没把图片打包进去。。。
作者: soloforce 发布时间: 2005-11-02
fvwm-guide-icons.tar.bz2 (73.1 KB, 623 次查看) |
作者: jyr_king 发布时间: 2005-11-03
作者: druggo 发布时间: 2005-11-07
用zip格式也比它要好点啊.
作者: Yuri 发布时间: 2005-11-09
thx
作者: st690714 发布时间: 2005-12-01
欣赏fvwm的速度
作者: qeming 发布时间: 2005-12-02
作者: realtek 发布时间: 2005-12-06
作者: xulin_2005 发布时间: 2006-01-25
作者: shannleon 发布时间: 2006-01-25
作者: shannleon
楼主再接再厉,把fvwm的man pages翻译了吧
|
作者: srlmm 发布时间: 2006-01-31
作者: 小劲鸭 发布时间: 2006-02-01
作者: windflying 发布时间: 2006-02-05
作者: miaohf 发布时间: 2006-02-06
In FVWM, how to set 2 fonts for rendering different kind of characters on Window Title, i.e use Arial for English letter, use SimSum for Chinese characters, just like what GTK+ does.
作者: gamedragon 发布时间: 2006-02-06
作者: 佳瑞 发布时间: 2006-02-18
最近一直在研究tingx 以及最小Linux系统在ARM的移植.....不打算使用Gnome 就用fvwm了~
作者: wenjiacao 发布时间: 2006-03-22
不知和fvwm相比如何
作者: co63 发布时间: 2006-03-25
作者: co63
不是有个e17出来了吗?
不知和fvwm相比如何 |
基本上e17也算一个桌面环境了吧,FVWM只是一个窗口管理器。
作者: quchen 发布时间: 2006-03-25
e17总有一个桌面管理器吧
比如哪个漂亮,哪个易于配置,哪个占内存少什么的
还有, fvwm能不能在e17中用?e17的窗口管理器能不能在fvwm使用的环境中用什么的?
我相信这些可以在大量的英文文档中找到答案,
看这里很热闹,讨论一下也无妨吧.
作者: co63 发布时间: 2006-03-26

作者: quchen 发布时间: 2006-03-27
作者: syd 发布时间: 2006-06-25
fvwm是一个超自由的桌面,什么都要自己动手。默认的设置十分简陋,以至于几乎没有人会在第一次见到它时喜欢它。不过如果配置得当,fvwm将是一个功能十分强大且美丽的视窗管理器,一点不输给gnome和kde,甚至可以超过M$的XP。让人更加喜欢它的原因是,fvwm所占资源极小。在我的机器上(配置看签名),可以同时用mplayer播放两个视频文件,也可以一边用终端编译一边看电影,或者一边看电影一边用vmware的windows me。
作者: john_yao 发布时间: 2006-06-26
作者: john_yao 发布时间: 2006-06-26
作者: hejux 发布时间: 2006-08-07
还是这里比较全。 建议楼主以后引用加上原始URL
谢谢
作者: panlm 发布时间: 2006-08-11
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28