简述
FVWM95 的全名是 F? Virtual Window Manager,是专门为 X11 所设计,外形和用法都类
似 Windows 95 的一个 window manager。□作者的说法,那个 F 所代表的意思是什麽,
他自己也忘记了。而 FVWM95 是由 FVWM 所衍生出来的,FVWM 又是从 twm 衍生出来的。
fvwm95 提供了 Virtual Desktop 和 Virtual screen,因此如果你的记忆体够大的话,
要多大的桌面就有多大的桌面,同时它也和95一样,可以经由 keyboard 来控制 window,
包括window的移动和基本操作等等,keyboard都以可胜任。它同时也提供了
Configuration command 和 build-in command,方便我们随时作更动。另一个特性是它
的 focus 方式,它提供了 Sloppy-focus 和 per-window focus 的功能。
Sloppy-focus 是 focus-follows-mouse,当mouse由 window 移到 root window 时,
focus 并不会移动,直到 mouse 移到其它 window。
版权
fvwm95 既是 fvwm 所衍生的,当然就□袭了 fvwm 的版权.
fvwm 是由 Evan and Sutherland Computer Corporation 於1988年所取得版权。
而在1989年由麻省理工学院取得版权。在1993年和1994年由Robert Nation取得版权。
Fvwm95的window
Fvwm 的 window 就像95一样,提供了 3D-look 的外观,window 大小的调整可
经由将 mouse 移到 window 的角落,此时会出现一个小L的 mouse cursor,利用它来
控制 window 的大小。当将 mouse 移至 title bar 时,按下 mouse 左键便可以移动
此 window,按下中键可以显示出 window 的控制视窗(包含window的移动,放大、缩小、
关闭、删除等等),当然,当你将 mouse 移到 titile bar 的左方的小图示,并按下
mouse 任一键也会显示出 window operation 的视窗。
Title-bar 里最多可以 10 个 button。而这些 button 都可以经由 user 自
行定义,default 值是在左方的小图示。其功能如上述.
Virtual Desktop
FVWM95 提供了多重虚拟桌面给 user 使用。这个 virtual desktop 可以比真
实的萤幕还大。同时也可以利用 DeskTopSize 的内部指令来控制。当然每个Desktop的
大小必须要一致。所有在 desktop 内的 window 都可经由 pager(一个小形□ widnow
desktop)看到。Pager 是一个程式模组。之所以会做成 module 是因为它并不是 window
使用的必要程式。所有开启的 window 也可利用 FvwmWinList 模组来显示在一个 popup
menu中。
Sticky 是指将某个 window 锁定在 desktop 的某个位置,这种功能通常用在
将某种程式 window 锁住,如可以将 clock 锁在某地。当然它也适用在 ICON 上。
Window 的 geometry 是指相对於目前的 viewport。例如:
xterm -grometry +0+0
就会将 xterm 开在 screen 可见的部分的最左上角的位置。当然我们也可以利
用它来设定 widnow 的位置,但这个位置是对整个 Virtual desktop 而言,而非对单独
的 desktop 而言。
或者我们也可以使用下列的方式:
xterm -geometry -5-5
便可使 xterm 的右下角离 window 的右下角5个 pixel。但并非所有的应用程式
都支援这个负数的指定方式。
初使化(INITIALIZATION)
在作初始化的时候FVWM95会先找设定档 (configuration file) 来作一些设定。
首先 fvwm95 会在使用者的目录中找一个叫做 .fvwm2rc95 的档案。如果在使用者的目录
中找不到这个档案,它就会找 /usr/lib/X11/fvwm/.fvwm2rc95,如果再找不到,那
fvwm95就无法执行了。
fvwm95 会设定两个可以让子视窗继□的环境变数。一个是$DISPLAY,用来描述
那个 display 要使用 fvwm95,它可以是 unix:0.0 或 :0.0。但是它在透过 rsh 传递
时并不能做得很好。所以有另一个 $HOSTDISPLAY 也可以使用,它是透过 TCP/IP 的方式
(即使是在local)。fvwm95 可以利用两种 Function 来作初始化的工作:InitFunction
和 RestartFunction,很明显的,一个是经由刚开始进入 X 时作设定,一个是经由
restart来作设定。这些都可以经由rc档中的 AddToFunc 功能来作个性化(customized)
来起动 modules、xterm 或其它你想要经由 fvwm95 来起动的程式。
图示(icons)
基本的 FVWM95 设定是使用黑白的位元图示,就好像 twm 一样。但如果 XPM 有
内建的话,你就可以使用类似 ctwm,MS-windows,machitash 之类的图示了,如果
SHAPE 和 XPM 的选项都有选择的话,那就会有彩色且有形状的图示出来。
模组(modules)
模组是一种类似分别执行的 process 分离程式(seperate program),但是却把
执行指令传给 fvwm95 去执行。使用者可以自行撰写 module 而不会影响整个 fvwm95。
模组必须包含在 fvwm95 内,这样才能在 fvwm95 和 module 之间建立两个管线
(pipe)互相连系。在 X 的执行阶段,Module 可以经由内建的指令来将 module 包含进来
。Module 可以一直存在 X 中执行,也可以执行一段工作,然後离开。如果 module 正在
执行时,X 被要求离开,那麽 fvwm95 会先关掉与 module 间的 pipe,而後再等待
module 的离开回应。若 fvwm95 等了30秒还没收到回应,那它就会自动结束。可以同步
执行的 module 的数目是受限於作业系统的可同时开档数。通常在 60-256 之间。
M4 preprocessing 和 cpp preprocessing
fvwm95 提供了 M4 和 C 的preprocess。你可以使用 M4 或 C 来对你的
.fvwm2rc95 作前置处理。
自动上升(auto-raise)
当 mouse 移到 window 时,window 可以自动上升或经数个亳秒後再上升。这
是 FvwmAuto 这个 module 所提供的功能。
设定参数
Fvwm95也提供了执行参数, 但在此不予介绍.
设定档
设定档是用来设定 mouse、按键、颜色、虚拟萤幕大小,和其它相关事项。初始
的设定档是 .fvwm2rc95。是利用内建的 READ 命令来读取。
若某行的开头是#的话,那麽那一行是没有作用的。若开头是*,那麽这一行是表
示用来包含 module 的设定命令。Fvmw95 使得设定命令(configuration commands)和内
建命令(built-in commnads)没有差别,所以刚才所提到的内建命令可以直接加在任一行
上,让 fvwm95 去执行它。或者是加在 menu 上或者是加在某个 mouse buttom 或
keyboard key 上,让使用者在有需要时才呼叫出来。
我们附了一个.fvwm2rc95在後面,并加以说明。请参照附一。
#
# .fvwm2rc95 example configuration file for fvwm95-2.0.41
# .fvwm2rc95 的设定档□例, 适用於fvwm95-2.0.41版
#========================================================================#
#
# Fonts - one for window titles, another for icons, and another for the menus
# 字形 --- 一个用来设定视窗标题, 第二个给图示说明, 第三个给menu用.
WindowFont -adobe-times-bold-i-*-*-14-*-*-*-*-*-*-*
IconFont fixed
MenuFont -adobe-helvetica-medium-r-*-*-*-140-*-*-*-*-*-*
#
# Set the default window colors. The syntax is:
# DefaultColors winforecolor winbackcolor titleforecolor titlebackcolor
# where:
# winbackcolor is the background (border) color of all windows,
# including the menu windows
# winforecolor is used for the menu text
# titlebackcolor is the background color used for title bars of
# non selected windows
# titleforecolor is the color of the title text of non selected windows
#
# 设定内定的视窗频色. 语法如下:
# DefaultColors 视窗前景颜色 视窗背景颜色 视窗标题前景颜色 视窗标题背景颜色
# 视窗前景颜色 : 给menu的文字用的颜色
# 视窗背景颜色 : 给所有视窗用的背景(边界)颜色, 包括menu视窗
# 视窗标题前景颜色 : 非使用中的视窗标题文字颜色
# 视窗标题背景颜色 : 非使用中的视窗标题背景颜色
#
DefaultColors Black #c0c0c0 #c0c0c0 grey51
#
# Text and background color for the title bar of the active (selected) window
# 使用中的视窗之文字和背景颜色
#
HilightColors yellow #101080
#
# Text and background color for the title bar of sticky windows
# 定位视窗之文字和背景颜色
#
StickyColors blue #60c080
# You can also use the Style command to set the colors of individual
# title bars of some non-selected windows
# 你也可以使用 Style 命令来设定其它非使用中视窗的标题颜色
#
#Style ""*"" ForeColor #c0c0c0
#Style ""*"" BackColor grey51
#========================================================================#
#
# Set up the major operating modes
# 设定主要的操作模式
#
Style ""*"" MouseFocus
#Style ""*"" SloppyFocus
#Style ""*"" ClickToFocus
# Comment the above and uncomment one of the following if you prefer
# focus follow mouse.
# 将上述之一解除标示以选择如何选择视窗
# Style ""*"" MouseFocus : 当mouse移到视窗时即可使用该视窗
# Style ""*"" SloppyFocus : 当mouse移到视窗, mmmm...看不出和MouseFocus有何不同?
# Style ""*"" ClickToFocus : 当mouse移到视窗, 且在标题列按一下mouse左键,即可使用该视窗
# If we use the FvwmTaskBar we don''t need the icons :-)
# Style ""..."" Icon are also commented below.
# 如果我们使用FvwmTaskBar, 那我们就不必用 icon了, 不是吗? Ya......
# 至於其它有关Style指令的说明, 请参考man fvwm95-2
# 其格式为 :
# Style ""视窗名称"" 功能 ------ 其视窗名称可使用万用字元
Style ""*"" NoIcon
Style ""*"" MWMFunctions
Style ""*"" HintOverride
Style ""*"" MWMDecor
Style ""*"" DecorateTransient
OpaqueMoveSize 100
# 视窗移动时视窗显示之百分比, 其百分比是移动视窗与整个视窗的比例
# 0 :只显示边界 ---- 100: 完全显示
EdgeScroll 100 100
# 虚拟桌面之卷动方式, 当mouse 游标移到桌面之某百分比时, 桌面便会跳到其它桌面
# EdgeScroll 水平比例 垂直比例
EdgeResistance 10000 0
# 虚拟桌面卷动之困难度与视窗移动之困难度
# 第一个数字是当mouse移到边界多少毫秒之後便移到下个虚拟桌面
# 第二个数字则表示视窗移动多少个pixel之後才会移到下个视窗
#
# RandomPlacement prevents user interaction while placing windows:
# RandomPlacement 可以让使用者在开新视窗时, 新视窗可随机选择位置出现
# SmartPlacement 则可以使新视窗在不占其它视窗的位置的地方出现
Style ""*"" RandomPlacement
Style ""*"" SmartPlacement
#
# NoPPosition instructs fvwm to ignore the PPosition field in window
# geometry hints. Emacs annoyingly sets PPosition to (0,0)!
# mmmm.....好像不是很重要.... 我找不到比较重要的说明.... ^{^
Style ""*"" NoPPosition
#========================================================================#
#
# Set the desk top size in units of physical screen size
# 设定虚拟桌面对於真实桌面的大小
# DeskTopSize 水平x垂直
DeskTopSize 3x2
#========================================================================#
#
# Module path and paths to the icons
# 模组的路径, 图示的路径
ModulePath /usr/X11R6/lib/X11/fvwm95-2/
PixmapPath /usr/include/X11/pixmaps/:/usr/lib/X11/mini-icons/
IconPath /usr/include/X11/bitmaps/:/usr/lib/TheNextLevel/pixmaps/
#========================================================================#
# Set the decoration styles and window options
# If compatible styles are set for a single window in multiple Style
# commands, then the styles are ORed together. If conflicting styles
# are set, the last one specified is used.
# 设定视窗选项和美化功能, 如果对於单一视窗有相容的格式的设定, 那麽格式就会以混合的方式显现, 若有相冲突的格式设定, 那就会以最後设定的为准.
# These commands should command before any menus or functions are defined,
# and before the internal pager is started.
# 这些设定必须在menu或function被定义以前设好, 而且也要在内部的pager开始以前设好
#
# Default border and handle widths
# 内定的边界大小
Style ""*"" BorderWidth 4, HandleWidth 4
Style ""Fvwm*"" NoTitle, Sticky, WindowListSkip
Style ""Fvwm Pager"" StaysOnTop, NoHandles
Style ""FvwmBanner"" StaysOnTop
Style ""FvwmButtons"" NoTitle, NoHandles, Sticky, WindowListSkip,BorderWidth 3
Style ""*lock"" NoTitle, NoHandles, Sticky, WindowListSkip
Style ""xbiff"" NoTitle, Sticky, WindowListSkip
#
# Some mini-icons for the title bar
# 设定一些在标题列左方的小图示
Style ""*"" TitleIcon mini-x2.xpm
Style ""*xterm*"" TitleIcon mini-term.xpm
Style ""rxvt"" TitleIcon mini-term.xpm
Style ""xcalc"" TitleIcon mini-calc.xpm
Style ""xsession"" TitleIcon mini-bx2.xpm
Style ""xv"" TitleIcon mini-xv.xpm
Style ""Netscape"" TitleIcon mini-nscape.xpm
Style ""xmag"" TitleIcon mini-zoom.xpm
Style ""textedit"" TitleIcon mini-edit.xpm
Style ""tkps"" TitleIcon mini-run.xpm
Style ""Ghostview"" TitleIcon mini-gv.xpm
Style ""Xcolorsel"" TitleIcon mini-colors.xpm
Style ""IDL*"" TitleIcon mini-zoom.xpm
Style ""xeyes"" TitleIcon mini-eyes.xpm
Style ""*fm*"" TitleIcon mini-filemgr.xpm
# xman resource names
# xman 用的小图示
Style ""topBox"" TitleIcon mini-book1.xpm
Style ""help"" TitleIcon mini-book2.xpm
Style ""manualBrowser"" TitleIcon mini-book2.xpm
# xpaint resource names
# xpaint 用的小图示
Style ""xpaint"" TitleIcon mini-paint.xpm
Style ""Canvas"" TitleIcon mini-paint.xpm
Style ""fatbits"" TitleIcon mini-paint.xpm
Style ""filebrowser"" TitleIcon mini-ofolder.xpm
Style ""FvwmFile"" TitleIcon mini-ofolder.xpm
Style ""XDbx"" TitleIcon mini-bug2.xpm
#Style ""rxvt"" Icon term.xpm
#Style ""xterm"" Icon xterm.xpm
#Style ""color_xterm"" Icon rterm.xpm
#Style ""Appointment"" Icon datebook.xpm
#Style ""xcalc"" Icon Rcalc.xpm
#Style ""xbiff"" Icon mail1.xpm
#Style ""xmh"" Icon mail1.xpm, StartsOnDesk 2
#Style ""xman"" Icon xman.xpm
#Style ""xvgr"" Icon graphs.xpm
#Style ""matlab"" Icon math4.xpm
#Style ""xmag"" Icon mag_glass.xpm
#Style ""xgraph"" Icon graphs.xpm
#Style ""xv"" Icon xview.xpm
#Style ""FvwmButtons"" Icon toolbox.xpm
#Style ""xconsole"" Icon koala.xpm
#Style ""xsession"" Icon koala.xpm
#Style ""textedit"" Icon textedit.xpm
#Style ""ghostview"" Icon gv.xpm
#========================================================================#
#
# Stuff to do at start-up
# 起动fvwm95时该做的一些事
# AddToFunc 功能名称 动作方式 工作事项
# 动作方式有 ""I"" 当此功能被使用时, 立即动作
# ""M"" 则是mouse有动作时才启动
# ""D"" 双击mouse键才会动作
AddToFunc ""InitFunction"" ""I"" Exec xsetroot -solid cyan4 &
+ ""I"" Module FvwmBanner
+ ""I"" Module FvwmButtons
+ ""I"" Module FvwmTaskBar
+ ""I"" Module FvwmPager 0 3
AddToFunc ""RestartFunction"" ""I"" Module FvwmButtons
+ ""I"" Module FvwmTaskBar
#+ ""I"" Module FvwmPager 0 3
#========================================================================#
# Now define some handy complex functions
# 现在开始定义一些方便的复杂功能
#
# This one moves and then raises the window if you drag the mouse,
# only raises the window if you click, or does a full maximize if
# you double click
# 这个功能是用於当你将mouse移到标题列时按著mouse并移动时, 便可移动并上升视窗用的
# 单击一次mouse键则会使视窗上升, 双击则可放大整个window
AddToFunc ""Move-or-Raise"" ""M"" Move
+ ""M"" Raise
+ ""C"" Raise
+ ""D"" Maximize 100 100
#
# This one moves and then lowers the window if you drag the mouse,
# only lowers the window if you click, or does a RaiseLower if you double
# click
# 这个功能是用於移动并下降视窗用的
# 单击一次mouse键则会使视窗下降, 双击则可转换成上升或下降
AddToFunc ""Move-or-Lower"" ""M"" Move
+ ""M"" Lower
+ ""C"" Lower
+ ""D"" RaiseLower
#
# This one moves or (de)iconifies:
# 这个功能在於移动或做图示化
AddToFunc ""Move-or-Iconify"" ""M"" Move
+ ""D"" Iconify
#
# This one resizes and then raises the window if you drag the mouse,
# only raises the window if you click, or does a RaiseLower if you double
# click
# 这个功能是用於改变大小并上升视窗用的
# 单击一次mouse键则会使视窗上升, 双击则可放大整个window
AddToFunc ""Resize-or-Raise"" ""M"" Resize
+ ""M"" Raise
+ ""C"" Raise
+ ""D"" RaiseLower
#========================================================================#
#
# Now define the menus - defer bindings until later
# 开始定义menus ---- 和binding的方式不同
# This is for the Start menu of the FvwmTaskBar
# 接下来的是用於 FvwmTaskBar的 Start menu
# AddToMenu ""选单名称"" ""显示讯息"" Title
# + ""显示讯息 %图示名称%"" 动作 程式名称及参数
# 动作可分为 : Exec 执行程式, 後面加程式名称及参数
# Popup 蹦现新选单, 後面加选单名称
# Nop 画分隔线
# Refresh 重新显示萤幕
AddToMenu ""StartMenu""
+ ""New shell %mini-sh1.xpm%"" Exec color-xterm -ls -sb -fn 8x13 &
+ ""Manual pages %mini-book1.xpm%"" Exec xman &
+ ""Magnifying glass %mini-zoom.xpm%"" Exec xmag &
+ ""Applications %mini-x2.xpm%"" Popup Applications
+ ""Games %mini-happy.xpm%"" Popup Games
+ """" Nop
+ ""Lock Screen %mini-lock.xpm%"" Exec xlock &
+ ""Refresh Screen %mini-ray.xpm%"" Refresh
+ """" Nop
+ ""Exit Fvwm %mini-stop.xpm%"" Popup Quit-Verify
AddToMenu ""Shells"" ""Shells"" Title
+ ""Xterm (7x14 font)%mini-term.xpm%"" Exec xterm -sb -sl 500 -j -ls -fn 7x14 &
+ ""Chinese Cxvt (8x15 font)%chinese.xpm%"" Exec crxvt -fnb5 et15 -fn vga8x15
-T Chinese-Rxvt -fat &
# 这一行是我用来加上 crxvt 的, 用来呼叫小字形中文terminal
+ ""Color Xterm (7x14 font)%mini-term.xpm%"" Exec color-xterm -sb -sl 500 -j -ls -fn 7x14 -fb 7x14bold -title ""Color xterm"" &
+ ""Color Xterm (8x13 font)%mini-term.xpm%"" Exec color-xterm -sb -sl 500 -j -ls -fn 8x13 -title ""Color xterm"" &
+ """" Nop
+ ""Large Crxvt (12x24 font)%chinese.xpm%"" Exec crxvt &
# 这一行是我用来加上 crxvt 的, 用来呼叫大字形中文terminal
+ ""Large Xterm (10x20 font)%mini-display.xpm%"" Exec nxterm -sb -sl 500 -j -ls -fn 10x20 &
+ ""Large Color Xterm (10x20 font)%mini-display.xpm%"" Exec color-xterm -sb -sl 500 -j -ls -fn 10x20 &
+ """" Nop
+ ""Xcin%chinese.xpm%"" Exec xcin -in1 cj.tab &
# 这一行是用来执行中文输入法爔cin用的.
# 接下来的是萤幕保护
AddToMenu ""Screensaver"" ""Screensaver"" Title
+ ""Bat%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode bat &
+ ""Blank%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode blank &
+ ""Blot%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode blot &
+ ""Bounce%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode bounce &
+ ""Flame%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode flame &
+ ""Galaxy%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode galaxy &
+ ""Grav%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode grav &
+ ""Helix%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode helix &
+ ""Hop%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode hop &
+ ""Hyper%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode hyper &
+ ""Kaleid%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode kaleid &
+ ""Life%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode life &
+ ""Life3d%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode life3d &
+ ""Maze%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode maze &
+ ""Pyro%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode pyro &
+ ""Qix%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode qix &
+ ""Random%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode random &
+ ""Rect%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode rect &
+ ""Rock%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode rock &
+ ""Rotor%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode rotor &
+ ""Sphere%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode sphere &
+ ""Spline%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode spline &
+ ""Swarm%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode swarm &
+ ""Wator%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode wator &
+ ""Worm%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode worm &
+ ""World%mini-bball.xpm%"" Exec xlock -nolock -nice 0 -mode world &
# 接下来的是萤幕锁定
AddToMenu ""Screenlock"" ""Lock Screen"" Title
+ ""Bat%mini-rball.xpm%"" Exec xlock -nice 0 -mode bat &
+ ""Blank%mini-rball.xpm%"" Exec xlock -nice 0 -mode blank &
+ ""Blot%mini-rball.xpm%"" Exec xlock -nice 0 -mode blot &
+ ""Bounce%mini-rball.xpm%"" Exec xlock -nice 0 -mode bounce &
+ ""Flame%mini-rball.xpm%"" Exec xlock -nice 0 -mode flame &
+ ""Galaxy%mini-rball.xpm%"" Exec xlock -nice 0 -mode galaxy &
+ ""Grav%mini-rball.xpm%"" Exec xlock -nice 0 -mode grav &
+ ""Helix%mini-rball.xpm%"" Exec xlock -nice 0 -mode helix &
+ ""Hop%mini-rball.xpm%"" Exec xlock -nice 0 -mode hop &
+ ""Hyper%mini-rball.xpm%"" Exec xlock -nice 0 -mode hyper &
+ ""Kaleid%mini-rball.xpm%"" Exec xlock -nice 0 -mode kaleid &
+ ""Life%mini-rball.xpm%"" Exec xlock -nice 0 -mode life &
+ ""Life3d%mini-rball.xpm%"" Exec xlock -nice 0 -mode life3d &
+ ""Maze%mini-rball.xpm%"" Exec xlock -nice 0 -mode maze &
+ ""Pyro%mini-rball.xpm%"" Exec xlock -nice 0 -mode pyro &
+ ""Qix%mini-rball.xpm%"" Exec xlock -nice 0 -mode qix &
+ ""Random%mini-rball.xpm%"" Exec xlock -nice 0 -mode random &
+ ""Rect%mini-rball.xpm%"" Exec xlock -nice 0 -mode rect &
+ ""Rock%mini-rball.xpm%"" Exec xlock -nice 0 -mode rock &
+ ""Rotor%mini-rball.xpm%"" Exec xlock -nice 0 -mode rotor &
+ ""Sphere%mini-rball.xpm%"" Exec xlock -nice 0 -mode sphere &
+ ""Spline%mini-rball.xpm%"" Exec xlock -nice 0 -mode spline &
+ ""Swarm%mini-rball.xpm%"" Exec xlock -nice 0 -mode swarm &
+ ""Wator%mini-rball.xpm%"" Exec xlock -nice 0 -mode wator &
+ ""Worm%mini-rball.xpm%"" Exec xlock -nice 0 -mode worm &
+ ""World%mini-rball.xpm%"" Exec xlock -nice 0 -mode world &
# 接下来是执行游戏程式
AddToMenu ""Games"" ""Games"" Title
+ ""Abuse%%"" Exec abuse &
+ ""Maze%mini-maze.xpm%"" Exec maze &
+ ""Spide%mini-exp.xpm"" Exec exec spider &
+ ""Xplaycd%mini-cdlabel.xpm%"" Exec exec xplaycd &
+ ""Xboard%mini-slon.xpm%"" Exec xboard &
+ ""Xeyes%mini-eyes.xpm%"" Exec xeyes &
+ ""Xhextris%mini-hextris.xpm%"" Exec exec xhextris &
#+ ""Xlander"" Exec exec xlander &
+ ""Xlogo%mini-bx2.xpm%"" Exec xlogo &
+ ""Xmahjong%mini-xmahjongg.xpm%"" Exec exec xmahjongg &
#+ ""Xroach%mini-roach.xpm%"" Exec exec xroach &
+ ""Xtetris%mini-tetris.xpm%"" Exec xtetris &
#+ ""Xvier"" Exec exec xvier &
+ ""Xbill%mini-cross.xpm%"" Exec xbill &
+ ""Xpcman%mini-question.xpm"" Exec xchomp &
+ ""Bomb%mini-bomb.xpm%"" Exec xdemineur &
+ ""Jewel%mini-question.xpm"" Exec xjewel &
+ ""Xsnow"" Exec xsnow &
+ ""XEarth%mini-x2.xpm"" Exec xearth &
# 接下来是执行应用程式
AddToMenu ""Applications"" ""Applications"" Title
+ ""Netscape%mini-nscape.xpm%"" Exec netscape &
+ ""Ghostview%mini-gv.xpm%"" Exec ghostview &
+ ""Xview%mini-xv.xpm%"" Exec xv &
+ ""Xedit%mini-edit.xpm%"" Exec xedit -geometry 630x490+95+5 &
+ ""Xedit%mini-edit.xpm%"" Exec xedit &
#+ ""Xfilemanager%mini-filemgr.xpm%"" Exec xfilemanager &
+ ""Xfm%mini-filemgr.xpm%"" Exec xfm &
#+ ""Xfractint%mini-fractal.xpm%"" Exec rxvt -font 7x14 -e xfractint map=chroma &
+ ""Xpaint%mini-paint.xpm%"" Exec xpaint &
+ ""Xgrab%mini-camera.xpm%"" Exec xgrab &
+ ""Xcolormap%mini-colors.xpm%"" Exec xcmap &
+ ""Xxgdb%mini-bug2.xpm%"" Exec xxgdb &
+ ""gdb%mini-bug1.xpm%"" Exec gdb &
+ ""Xwpe%mini-x.xpm%"" Exec xwpe &
#
# This menu is invoked as a sub-menu - it allows you to quit,
# restart, or switch to another WM.
# 这个选单是一个子选单, 主要是用来让你离开, 重新开始或更换另一个window manager
AddToMenu ""Quit-Verify"" ""Really Quit Fvwm?"" Title
+ ""Restart%mini-turn.xpm%"" Restart fvwm95-2
+ """" Nop
+ ""Start Fvwm%mini.fvwm.xpm%"" Restart fvwm
+ ""Start olvwm%mini-olwm.xpm%"" Restart /usr/openwin/bin/olvwm
+ ""Start olwm%mini-olwm.xpm%"" Restart /usr/openwin/bin/olwm
+ """" Nop
+ ""Yes, Really Quit%mini-exclam.xpm%"" Quit
+ ""No, Don''t Quit%mini-cross.xpm%"" Nop
#
# Provides a list of modules to fire off
# 提供模组选单..... ^[^
AddToMenu ""Module-Popup"" ""Modules"" Title
+ ""Buttons"" Module FvwmButtons
+ ""Audio%mini-audiovol.xpm%"" Module FvwmAudio
+ ""Clean-Up%mini-pencil.xpm%"" Module FvwmClean
+ ""Task bar"" Module FvwmTaskBar
+ ""Identify%mini-question.xpm%"" Module FvwmIdent
+ ""Save Desktop"" Module FvwmSave
+ ""Debug%mini-bug2.xpm%"" Module FvwmDebug
+ ""Pager"" Module FvwmPager 0 3
+ ""Window List%mini-windows.xpm%"" Module FvwmWinList
+ ""Talk"" Module FvwmTalk
+ ""Configure%mini-hammer.xpm%"" Module FvwmConfig
#
# This menu will fire up some very common utilities
# 这个选单用来结合一些选单及工具
AddToMenu ""Utilities"" ""Utilities"" Title
+ ""Top%mini-run.xpm%"" Exec rxvt -T Top -n Top -e top &
+ ""Calculator%mini-calc.xpm%"" Exec xcalc &
+ ""Manual pages%mini-book1.xpm%"" Exec xman &
+ ""Magnifying glass%mini-zoom.xpm%"" Exec xmag &
+ ""Oclock%mini-clock.xpm%"" Exec oclock &
+ """" Nop
+ ""Applications%mini-x2.xpm%"" Popup Applications
+ ""Shells%mini-term.xpm"" Popup Shells
+ ""Games%mini-happy.xpm%"" Popup Games
+ """" Nop
+ ""Screensaver%mini-display.xpm%"" Popup Screensaver
+ ""Lock Screen%mini-lock.xpm%"" Popup Screenlock
+ """" Nop
+ ""Modules%mini-modules.xpm%"" Popup Module-Popup
+ """" Nop
+ ""Refresh Screen%mini-ray.xpm%"" Refresh
+ """" Nop
+ ""Exit Fvwm%mini-stop.xpm%"" Popup Quit-Verify
#
# This defines the most common window operations
# 在此定义一些常用的视窗操作功能
AddToMenu ""Window"" ""Window Ops"" Title
+ ""&Move"" Function Move-or-Raise
+ ""&Resize"" Function Resize-or-Raise
+ ""R&aise%mini-raise.xpm%"" Raise
+ ""&Lower%mini-lower.xpm%"" Lower
+ ""(De)Iconify"" Iconify
+ ""(Un)Stick"" Stick
+ ""(Un)Maximize"" Maximize 100 100
+ """" Nop
+ ""Kill"" Destroy
+ ""&Close"" Delete
+ """" Nop
+ ""Switch to..."" WindowList
+ ""Refresh Screen%mini-ray.xpm%"" Refresh
#
# A trimmed down version of ""Window Ops"", good for binding to decorations
# 另一种版本的视窗操作功能
AddToMenu ""Window-Ops2"" ""&Restore"" Iconify -1
+ ""&Move"" Move-or-Raise
+ ""&Size"" Resize-or-Raise
+ ""Mi&nimize"" Iconify 1
+ ""Ma&ximize"" Maximize 100 100
+ """" Nop
+ ""&Kill"" Destroy
+ ""&Close Alt+F4"" Delete
#========================================================================#
#
# One more complex function - couldn''t be defined earlier because it used
# pop-up menus
#
# This creates the ""system"" menu for the title-bar window-ops
# pop-up
#
AddToFunc ""window_ops_func"" ""C"" PopUp Window-Ops2
+ ""M"" PopUp Window-Ops2
+ ""D"" Delete
#========================================================================#
#
# Mouse bindings
# Mouse 功能设定
# First, for the mouse in the root window
# Button 1 gives the Utilities menu
# Button 2 gives the Window Ops menu
# Button 3 gives the WindowList (like TwmWindows)
# I use the AnyModifier (A) option for the modifier field, so you can hold down
# any shift-control-whatever combination you want!
# 首先, 当mouse在root window时(左, 中, 右 = 1,2,3 ,0=any)
# 按左键会呈现Utility选单
# 按中键会呈现Window Ops选单
# 按右键会呈现WindowList(视窗目录)
# Context : 描述在何处使用mouse功能.
# R : root window
# W : 任何应用程式的视窗
# T : 标题列
# S : 视窗的边界
# F : 视窗的四个角
# I : 图示
# 0 - 9 : 标题列上的按钮
# A : 除了标题列上的按钮以外的上述各项
# Modifier : 配合键盘的组合
# N : 不配合任何键
# C : Control键
# S : Shift键
# M : Meta键
# A : C,S,M任意一个
# Function : Fvwm95 的内建功能
# Button Context Modifi Function
Mouse 1 R A Menu ""Utilities"" Nop
Mouse 2 R A Menu ""Window Ops"" Nop
Mouse 3 R A WindowList
#Mouse 3 R A Module ""winlist"" FvwmWinList transient
# Now the title bar buttons
# Any button in the left title-bar button gives the window ops menu
# Any button in the first right title-bar button Iconifies the window
# Any button in the second title-bar button full-maximizes
# Any button in the third (rightmost) title-bar button closes
# Note the use of ""Mouse 0"" for AnyButton.
# 现在定义mouse在标题列时的功能
# Button Context Modif Function
Mouse 0 1 A Function ""window_ops_func""
Mouse 1 2 A Delete
Mouse 0 4 A Maximize 100 100
Mouse 0 6 A Iconify
#
# Now the rest of the frame
# Here I invoke my complex functions for Move-or-lower, Move-or-raise,
# and Resize-or-Raise.
# 现在开始定义mouse在边界时的部分
# Button 1 in the corner pieces, with any modifiers, gives resize or raise
Mouse 1 F A Function ""Resize-or-Raise""
# Button 1 in the title, sides, or icon, w/ any modifiers, gives move or raise
Mouse 1 TS A Function ""Move-or-Raise""
# Button 1 in an icons gives move for a drag, de-iconify for a double-click,
# nothing for a single click
# Button 2 in an icon, w/ any modifiers, gives de-iconify
Mouse 1 I A Function ""Move-or-Iconify""
Mouse 2 I A Iconify
# Button 2 in the corners, sides, or title-bar gives the window ops menu
Mouse 2 FST A Function ""window_ops_func""
# Button 3 anywhere in the decoration (except the title-bar buttons)
# does a raise-lower
Mouse 3 TSIF A RaiseLower
# Button 3 in the window, with the Modifier-1 key (usually alt or diamond)
# gives Raise-Lower. Used to use control here, but that interferes with xterm
Mouse 3 W M RaiseLower
#========================================================================#
# Now some keyboard shortcuts.
# 现在做一些键盘设定
# Arrow Keys
# press arrow + control anywhere, and scroll by 1 page
# Ctrl+方向键 = 向方向键的方向移一个虚拟桌面
Key Left A C Scroll -100 0
Key Right A C Scroll +100 +0
Key Up A C Scroll +0 -100
Key Down A C Scroll +0 +100
# press arrow + meta key, and scroll by 1/10 of a page
# Alt+方向键 = 向方向键的方向移1/10个虚拟桌面
Key Left A M Scroll -10 +0
Key Right A M Scroll +10 +0
Key Up A M Scroll +0 -10
Key Down A M Scroll +0 +10
# press shift arrow + control anywhere, and move the pointer by 1% of a page
# Shift+Ctrl+方向键 = mouse游标向方向键的方向移1%个虚拟桌面
Key Left A SC CursorMove -1 0
Key Right A SC CursorMove +1 +0
Key Up A SC CursorMove +0 -1
Key Down A SC CursorMove +0 +1
# press shift arrow + meta key, and move the pointer by 1/10 of a page
# Shift+Alt+方向键 = mouse游标向方向键的方向移10%个虚拟桌面
Key Left A SM CursorMove -10 +0
Key Right A SM CursorMove +10 +0
Key Up A SM CursorMove +0 -10
Key Down A SM CursorMove +0 +10
# Keyboard accelerators
# 设定功能键
Key F1 A M Popup ""Utilities""
Key F1 A M Popup ""Utilities""
Key F2 A M Popup ""Window Ops""
Key F3 A M Module ""WindowList"" FvwmWinList
Key F4 A M Iconify
Key F5 A M Move
Key F6 A M Resize
#Page Up/Dapge Down keys are used to scroll by one desktop page
# in any context, press page up/down + control
# in root context, just pressing page up/down is OK
#
# I prefer the non-wrapping scroll. These are for example purposes only
#Key Next A C Scroll 100000 0
#Key Next R N Scroll 100000 0
#Key Prior A C Scroll -100000 0
#Key Prior R N Scroll -100000 0
Key Tab A M Prev Focus
Key Tab A MS Next Focus
Key Escape A C WindowList
#========================================================================#
# Definitions used by the modules
# 模组使用的一些定义
#------------------ Pager 的部分
*FvwmPagerBack blue
# 背景颜色
*FvwmPagerFore red
# 前景颜色
*FvwmPagerFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
# 字形
*FvwmPagerHilight #c0c0c0
# Hilight区颜色
*FvwmPagerGeometry -1500-1500
# 位置
*FvwmPagerSmallFont 5x8
# 小字形
#*FvwmPagerRows 3
# 列数
#*FvwmPagerColumns 2
# 行数
#*FvwmPagerLabel 0 Desktop
# 第 n 个桌面的名称
#------------------ FvwmButtons 的部分(from 2.0.42)
*FvwmButtonsFore Black
# 前景颜色
*FvwmButtonsBack yellow
# 背景颜色
*FvwmButtonsFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
# 字形
# Geometry - really likes to pick its own size, but giving a position is OK
*FvwmButtonsGeometry -5-34
# 位置
# Layout: specify rows or columns, not both
*FvwmButtonsRows 1
# 列数
# Define the buttons to use.....
# 定义一些在FvwmButton内的东东
*FvwmButtons(Title xclock, Icon clock.xpm,
Swallow(UseOld) ""xclock"" ''Exec xclock -bg yellow
-padding 0 -geometry -1500-1500 &'')
*FvwmButtons(2x1, Title load,
Swallow(UseOld) ""xload"" ''Exec xload
-nolabel -bg yellow -update 5 -geometry -1500-1500 &'')
#*FvwmButtons(Title xterm, Icon xterm.xpm,
Action ''Exec ""XTerm"" color-xterm
-ls -sb -fn 8x13 -title ""Color xterm"" &'')
#*FvwmButtons(Title xfm, Icon FileManager.xpm,
Action ''Exec ""Xfm"" xfm -title ""File Manager"" &'')
#*FvwmButtons(Title textedit, Icon TextEditor.xpm,
Action ''Exec ""Textedit"" xedit &'')
#*FvwmButtons(Title xcalc, Icon Calculator.xpm,
Action ''Exec ""Calculator"" xcalc &'')
#*FvwmButtons(Title xview, Icon xv.color.xpm,
Action ''Exec ""xv"" xv &'')
#*FvwmButtons(Title gview, Icon gv.xpm,
Action ''Exec ""ghostview"" ghostview &'')
#*FvwmButtons(Title xcin , Icon chinese.xpm,
# Action ''Exec ""xcin"" xcin -fnb5 et15 -fn vga8x15 &'')
#*FvwmButtons(Title netscape, Icon netscape_3d.xpm,
Action ''Exec ""Netscape"" netscape -geometry 920x622+90+5 &'')
*FvwmButtons(Title xkill, Icon bomb.xpm, Action Destroy)
*FvwmButtons(2x1, Swallow(UseOld) ""Desktop"" ''FvwmPager 0 0'')
#------------------ Identify 的设定
*FvwmIdentBack #000080
# 背景颜色
*FvwmIdentFore Yellow
# 前景颜色
*FvwmIdentFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
# 字形
#------------------ FvwmWinList 的设定
*FvwmWinListBack #c0c0c0
# 背景颜色
*FvwmWinListFore Black
# 前景颜色
*FvwmWinListFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
# 字形
*FvwmWinListAction Click1 Iconify -1,Focus
# mouse 左键为跳至此window
*FvwmWinListAction Click2 Iconify
# mouse 中键为图示化
*FvwmWinListAction Click3 Module ""FvwmIdent"" FvwmIdent
# mouse 右键为显示其Window Identification
*FvwmWinListUseSkipList
*FvwmWinListGeometry +0-1
*FvwmWinListShowCurrentDesk
# 显示目前桌面上的window
#------------------ FvwmTaskBar
Style ""FvwmTaskBar"" NoTitle,BorderWidth 4,HandleWidth 4,Sticky,StaysOnTop,WindowListSkip,CirculateSkip
*FvwmTaskBarGeometry +0-0
# 位置
*FvwmTaskBarFore Black
# 前景颜色
*FvwmTaskBarBack #c0c0c0
# 背景颜色
*FvwmTaskBarTipsFore black
# 提示的前景颜色
*FvwmTaskBarTipsBack bisque
# 提示的背景颜色
*FvwmTaskBarFont -adobe-helvetica-medium-i-*-*-*-120-*-*-*-*-*-*
# 字形
*FvwmTaskBarSelFont -adobe-helvetica-bold-r-*-*-*-120-*-*-*-*-*-*
# 选择到之window的字形
*FvwmTaskBarAction Click1 Iconify -1,Raise,Focus
# 左键 ---- 跳至此window
*FvwmTaskBarAction Click2 Iconify
# 中键 ---- 图示化
*FvwmTaskBarAction Click3 Module ""FvwmIdent"" FvwmIdent
# 右键 ---- 显示window 资料
*FvwmTaskBarUseSkipList
# ??
*FvwmTaskBarAutoStick
# 自动固定
*FvwmTaskBarStartName Start
# Start 的名称
*FvwmTaskBarStartMenu StartMenu
# Start 使用的选单
*FvwmTaskBarStartIcon mini-start.xpm
# Start 使用的图示
*FvwmTaskBarShowTips
# 是否显示提示
#*FvwmTaskBarShowTransients
#*FvwmTaskBarClockFormat %I:%M%p
#*FvwmTaskBarHighlightFocus
*FvwmTaskBarAutoHide
# 自动隐藏
*FvwmTaskBarMailCommand Exec color-xterm -T Mail -ls -fn 8x13 -e pine -i
# 开启邮件命令