简述

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
# 开启邮件命令
本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------