Fvwm Manual http://www.fvwm.org/documentation/manpages/
命令说明按照如下的章节进行了分组:
- 菜单命令(Menu commands)
- 杂项命令(Miscellaneous commands)
- 窗口的移动和放置(Commands affecting window movement and placement)
- 焦点和鼠标移动(Commands for focus and mouse movement)
- 控制窗口状态(Commands controlling window state)
- 鼠标,键盘,手势绑定(Commands for mouse, key and stroke bindings)
- 控制窗口样式(The Style command (controlling window styles))
- 窗口样式(Other commands controlling window styles)
- 控制虚拟桌面(Commands controlling the virtual desktop)
- 用户函数及 SHELL 命令(Commands for user functions and shell commands)
- 条件命令(Conditional commands)
- 模块命令(Module commands)
- 会话管理命令(Quit, restart and session management commands)
- 颜色集(Colorsets)
按照对新人有帮助的顺序进行了分组。
鼠标、键盘、手势的绑定 Mouse, Key & Stroke Bindings
Fvwm Manual/Mouse, Key & Stroke Bindings
Key [(window)] Keyname Context Modifiers Function
将键盘键绑定到指定的 FVWM 命令。语法与 Mouse 绑定的语法相同,只是用 Keyname 替换了鼠标按钮编号。通常,按下键时激活键绑定。
Keyname,是 /usr/include/X11/keysymdef.h 中定义的标准 X11 键名(没有 XK_前缀),或 keysym 数据库 /usr/X11R6/lib/X11/XKeysymDB。只保证在”没有修饰键“或”仅保持 Shift 键“的情况下生成的键名可以正常工作。
Context,该字段如同在 Mouse 绑定中的定义,指的是上下文窗口。但是,按下某个键时,上下文窗口是具有键盘焦点的窗口。这不一定与指针所在的窗口相同(使用 SloppyFocus 或 ClickToFocus)。请注意,使用“R”(根窗口)上下文的键绑定无法与 SloppyFocus 和 ClickToFocus 一起正常工作。如果遇到问题,请改用 PointerKey 命令。如果要将键绑定到具有 SloppyFocus 或 ClickToFocus 的窗口,当指针不在窗口上时,该窗口应该起作用,fvwm 假定指针位于客户端窗口上(即,您必须使用’W’上下文)。菜单的特殊上下文“M”可用于(重新)定义菜单控件。它可以单独使用,也可以与’T’,’S’,’I’,'[‘,’]’,’-‘和’_’一起使用。有关详细信息,请参阅“Menu 绑定”部分。
Modifiers,该字段如同在 Mouse 绑定中的定义,修饰键,前缀键。
Function,要执行的 FVWM 命令。如果 Function 为’-‘,则删除绑定。
以下示例在按下 Alt-Ctrl-Shift-F11 时弹出内置窗口列表,无论鼠标指针位于何处:
Key F11 A SCM WindowList
将键绑定到标题栏按钮会导致该按钮的显示。有关详细信息,请参阅 Mouse 命令。
Mouse [(window)] Button Context Modifiers Function
定义鼠标绑定。
Button
Context
- R:根窗口
- W:应用程序窗口
- D:桌面应用程序(如 kdesktop 或 Nautilus 桌面)、
- T:窗口标题栏
- S:窗口四周(侧面、顶部、底部栏)
- [、]、-、_:仅适用于左侧、右侧、顶部、底部
- <、^、>、v:左上角、右上角、右下角、左下角
- F:适用于窗框(角落)
- I:表示图标窗口
- 0~9:表示标题栏按钮
- A:所有的以上情境。
PlaceWindow,
PlaceWindowDrag,
PlaceWindowInteractive,
CancelPlacement,
CancelPlacementDrag,
CancelPlacementInteractive,
–这七个中的一个。
CancelPlacement反过来。这使得 Button 取消移动,以进行交互和拖动移动。但是,它可能无法覆盖放置后重新调整新窗口的大小。这由 Emulate 命令控制。此外,无论是否将其设置为 PlaceWindow,都可以通过在拖动时释放被按住的按钮来放置被拖动的窗口。
Mouse 3 P N CancelPlacement
Mouse 1 P N CancelPlacementDrag
(window)
Key (*term) V A C Echo ctrl-V-in-Term
Key (*vim) V A C —
Key V A C Echo ctrl-V-elsewhere
Modifiers
IgnoreModifiers命令。
Function
与模块相关命令 Module commands
Documentation/Module Commands
关于模块
一个模块是一个独立的程序,作为一个单独的Unix进程运行,但是命令要传输给fvwm来执行。用户可以编写他们自己的模块来做任何操作,而不会影响fvwm本身的完整性。
模块必须由fvwm产生,以便它可以为fvwm和模块进行通信设置两个管道。管道在启动时为已经打开,管道的文件描述符作为命令行参数提供。
在X会话期间,使用Module命令可以随时通过fvwm生成模块。模块可以在X会话期间一直存在,也可以执行单个任务并退出。如果在fvwm被告知退出时,有模块仍处于活动状态,那么fvwm关闭通信管道并等待从模块传来的一个SIGCHLD信号,指示它已经检测到管道关闭并退出。如果模块无法检测到管道关闭,fvwm在大约30秒后退出。同时执行的模块数量受操作系统的最大同时打开文件数限制,通常在60到256之间。
模块只是传输命令给fvwm命令引擎。命令的格式与配置设置文件中的相同。某些辅助信息也被传送,如在示例模块FvwmButtons中。
模块的配置行
Fvwm维护着一个模块配置行的数据库,该数据库里包含了模块的配置信息。模块配置行格式如下:
<ModuleName>: <Config-Resource>
其中,<ModuleName>是实模块名称或别名,比如:*TopPanel: Colorset 10或者*FvwmButtons: Colorset 10,其中TopPanel为FvwmButtons的别名,在加载模块的时候会用到这个别名。
这个数据库最初是从配置文件(或从-cmd config命令的输出)中加载的,并且可以之后可以由用户(通过FvwmCommand)或模块进行修改。
当模块运行时,它们读取数据库的适当部分。(这个数据库的概念类似于X resource数据库)。
以下的命令也是用于操作模块配置数据库的。
*module_config_line
用于定义模块配置。module_config_line由模块名称(或模块别名)和模块资源行组成。新的语法允许在模块名称和行的其余部分之间使用分隔符(冒号和可选空格),建议避免冲突。
FvwmPager: WindowBorderWidth 1
*
FvwmButtons-TopRight: Geometry 100×100-0+0
*
FvwmButtons-Bottom: Geometry +0-0
DestroyModuleConfig module_config
删除模块的配置条目,以便可以输入新的配置行,有时这也是回退到之前的模块设置的唯一方法。使用该命令这将改变模块在fvwm会话期间运行的方式,而无需重新启动。部分名称中也可以使用通配符。
新的非冲突语法允许在模块名称和行的其余部分之间使用分隔符(冒号、可选空格),在这种情况下,模块名称(或别名)不能有通配符:
DestroyModuleConfig FvwmForm: Fore
DestroyModuleConfig FvwmIconMan: Tips*
比如:DestroyModuleConfig FvwmIconMan: Tips*的FvwmIconMan不能带有通配符。
KillModule modulename [modulealias]
wildcards. If modulealias is given, only modules started with the given alias are killed.
KillModule FvwmPager
KillModule FvwmEvent SoundEvent
Module modulename [moduleparams]
指定一个应该生成的有可选参数的模块。目前有几个模块,包括FvwmButtons,FvwmEvent,FvwmForm,FvwmGtk,FvwmPager,FvwmScript,他们支持别名。如果应该生成模块的多个实例,则别名很有用。别名可以使用*语法单独配置。要使用别名为MyForm来启动模块FvwmForm,可以使用以下语法:
当前可用的模块(包含在fvwm中的)有:
- FvwmAnimate(当窗口被图标化或f反图标化时,产生动画效果);
- FvwmAuto(一个自动提升模块);
- FvwmBacker(当你改变桌面时改变背景);
- FvwmBanner (显示一个漂亮的XBM,XPM,PNG,SVG);
- FvwmButtons(可定制的工具栏);
- FvwmCommandS(与shell的FvwmCommand客户端一起使用的命令服务器);
- FvwmConsole(直接执行fvwm命令);
- FvwmCpp(使用cpp预处理配置文件);
- FvwmEvent(触发各种事件);
- FvwmForm(调出对话框)
- FvwmIconMan(一个灵活的图标管理器);
- FvwmIdent(获取窗口信息);
- FvwmM4(用m4预处理你的配置);
- FvwmPager(一个迷你版本的桌面);
- FvwmPerl(Perl的操纵器和预处理器);
- FvwmProxy(通过使用小代理窗口来定位和控制隐藏的窗口);
- FvwmScript(另一个强大的对话框工具包);
这些模块有自己的手册页。当然还有一些其他的模块:FvwmDebug(帮助调试fvwm),FvwmDragWell(拖放到的地方),FvwmGtk(调出GTK菜单和对话框),FvwmIconBox(如mwm IconBox),FvwmRearrange (to rearrange windows),FvwmSave(将桌面状态保存为.xinitrc风格),FvwmSaveDesk(将桌面状态保存在fvwm命令中)
模块可以是短暂的临时程序,或者像FvwmButton一样可以在X会话期间一直存在。如果可能,在重新启动和退出之前,模块将由窗口管理器终止。请参阅每个模块的介绍部分。如果modulename与所有fvwm命令不同,则可以省略Module关键字。