FVWM FAQ中文版[转]
转自
FAQ问题索引:
0.最常见问题-The most frequently asked questions
0.1 fvwm启动几分钟以后,我的键盘和鼠标的绑定设置(bindings)失效了。我需要怎么做?
0.2 在使用XMMS的时候,总有一些窗口样式被忽略。
0.3 我喜欢透明效果。我需要怎么做?
1.关于Fvwm-About Fvwm
1.1 Fvwm意味着什么?
1.2 我在哪里能找到最近版本的fvwm?
1.3 和fvwm有关的WWW网站?
1.4 我要去哪里问fvwm的问题呢?
1.5 FVWM 1.xx 和 2.xx有什么区别和不同?
1.6 相比之下,不同的窗口管理器使用内存的情况如何?
1.7 为什么把这些文件重新命名了(fvwm2,fvwm2rc,fvwm2.man)?
1.8 什么时候fvwm放出X.Y.Z版本?
2.安装-Installation
2.1 我想使用FVWM,但是我没有机器的root权限。那我还能安装和使用么?
2.2 我尝试在CDE/COSE下面使用fvwm,但是遇到了困难。有什么建议?
2.3 我尝试在SunOS下用cc编译FVWM,但是编译过程出现很多问题。出什么事啦?
2.4 我需要彩色图标,但是无效。为什么呢?当我运行configure的时候,提示 "no" to "Have XPM support?"那么请问怎样使自己得到XPM支持?
2.5 我是系统管理员,我希望让fvwm先尝试使用一个系统rc文件然后是用户自己的rc文件,要怎么做呢?
2.6 我是系统管理员,我希望fvwm在一个叫做~/.fvwm的隐藏目录下面像CDE那样查找rc文件,要怎么做呢?
2.7 如何使FVWM和GNOME(version<=1)一起工作?
2.8 如何使FVWM和GNOME(version>=2)或者KDE(version>=2)一起工作?
3.特点、配置、函数以及命令-Features, Configuration, Functions & Commands
3.1 我在RedHat Linux上使用FVWM,但不知如何改变我的FVWM的配置。我阅读了FVWM的man page,但是当我编辑 .fvwm2rc的时候却发现好像没有什么改变。怎么回事呢?
3.2 我能够通过点击窗口本身而不是点击边框就能使窗口升起来么?
3.3 我如何能够像其他的GUI那样使用Alt-Tab习惯?
3.4 Focus与FlipFocus命令有什么区别?
3.5 我能够把鼠标的移动帮定到keystrokes,但是如何绑定鼠标的点击事件呢?
3.6 我想把一个键绑定为粘贴当前选择(usr the current selection),怎么办呢?
3.7 FVWM会为每一个桌面提供colormap的支持么?
3.8 我很喜欢在sticky window标题栏里面的水平条。我能在其他的窗口也使用它么?
3.9 我如何设置Sun的键盘,才能让XXXX绑定到一个FVWM命令?总之,我在键盘绑定方面有问题。我要怎么作呢?
3.10 我的1.xx的 .fvwmrc文件不能工作了。我要怎么作呢?
3.11 FVWM 1.xx系列的‘include’命令都做了什么?
3.12 我要如何才能够让窗口的标题应用于子窗口?
3.13 我升级到了version>=2.3.2,然后发现原来的配置失效了。怎么才能找回来呢?
3.14 一些程序(比如:Eterm)为何不使用我定义的图标呢?
3.15 我不喜欢为程序自定义图标时,icons box的那个空隙。是否有自动排列图标的函数呢?
3.16 如何在菜单里设置一个关机的选项?
3.17 尽管Recapture命令已经废除了,那我还需要特别的去适应这个改变么?
3.18 当我指定的窗口(或者说所有的窗口)弹出时,如何使它聚焦、移动、改变大小、关闭、暗化...
3.19 当我指定的窗口(或者说所有的窗口)关闭的时候,我如何能切换桌面、隐藏X程序、打开菜单、启动X程序...
3.20 我使用了多显示设置(X下使用多个显示屏幕)。如何告诉fvwm为每个Screen应用不同的配置文件呢?
3.21 如何在不覆盖FwmTaskBar的情况下最大化窗口?
3.22 为何按钮在一些窗口的titlebar上显示不出来?
3.23 如何定义透明的菜单?
3.24 如何定义透明的模块?
3.25 如何定义透明的窗口装饰?
3.26 如何定义应用程序的透明?
3.27 如何在fvwm里定义Emacs方式的键盘绑定?
4.模块-Modules
4.1 我在使用FvwmButtons模块(或1.xx版的GoodDtuff模块)。为什么有时这些按钮会一直保持按下的状态,有时却不是?
4.2当点击FvwmButtons来取消一个程序的时候,是否能够通过定义按键(鼠标的某个键) 来同时启动其他的程序?比如,我希望在用我定义的鼠标按键关闭xload的时候, 按下时能启动xterm;又或是关闭xbiff的时候,同时启动消息列表。
4.3 当我用FvwM4/Cpp模块预处理文件时,发生了奇怪的事情...
4.4 我听说过一个FvwmFileMgr模块。哪里可以找到它?
4.5 我习惯于使用FVWM 1.xx版的GoodStuff模块,但在2.xx的发布包中没有这个模块了。 现在我该用什么?
4.6 我可以把FvwmButtons的字幕托盘放在屏幕的其它地方而不是默认的按钮周围的地方吗?
4.7 怎样用键盘快捷键来在FvwmButtons中按按钮和开启字幕盘?
5.开发,已知问题与Bug报告
5.1 我非常期望看到FVWM拥有简洁的XYZ功能,我甚至有一个patch补丁,什么时候可以加进去呢?
5.2 我怎样才能创建/提交/应用patches补丁呢?
5.3 我如何能够提交bug报告呢?
5.4 我发现一个窗口在FVWM下表现异常,而在其他窗口管理器中却没有问题,或是这只是一个随机的Bug.那我需要作什么呢?
5.5 为何NumLock,CapsLock和ScrollLock键会与ClickToFocus或是我的鼠标绑定冲突呢?
5.6 使用渐变色彩背景的菜单闪耀或者特别慢的情况。
5.7 为何StartIcconic Style不能和Netscape等一同工作?
5.8 我如何能够捕捉到fvwm的输出(比如错误输出)?
5.9 我在试图在FVWM运行一些程序的时候,会因为像BadAccess这样的X11错误而“死掉”。同样的程序在MWM或者OLWM下却运行正常。这是怎么回事呢?
5.10 每次我更新我的install文件时,我正在运行中的fvwm会话会“死掉”。这是为什么?
5.11 我重启特定窗口或者图标时,它们会提高到所有窗口之上,并且无法用任何办法使之下降。例如:KFM(KDE的文件管理器)的快捷方式。这种情况下我需要怎么作呢?
5.12 StartsOnPage Style不能为我工作。为什么?
5.13 我重启fvwm的时候一些modules模块无法启动。
5.14 我运行Rational Rose程序的时候fvwm却忽略了它的窗口。
5.15 尽管我为自己的模块使用了WindowListSkip style,但是他们仍然在FvwmIconMan或者FvwmWinList等模式中显示。
6.各种各样的问题
6.1 DESK,PAGE和SCREEN之间的确切差别是什么?
6.2 我喜欢{OpenWindows,NeXT,WIn95,Mac等等}的外观和感觉,你们准备支持这些吗?
6.3 我可以从哪找到更多的用作图标的XPM图片?
6.4 Linux X86 虚拟屏幕大小和fvwm交互....
6.5 我知道这个问题与fvwm不相关,但是Rob Nation曾经支持的rxvt和rclock现在怎么样了,去哪里可以找到它们?
6.6 我如何使用fvwm设置桌面背景?
6.7 使用fvwm时,我的颜色设置"XYZ"得不到正确的颜色,哪里的问题?
6.8 我刚弄到一个57键的鼠标,如何在fvwm中使用?
6.9 为什么fvwm更改了我的X鼠标指针主题?
7 - 开发者的一些提示和示例
7.1 测试新配置的简单方法。
7.2 在配置里使用shell命令
7.3 如何在非当前desk或page启动程序。
7.4 如何在非当前desk或page打开一个应用程序,且不切换观察口(viewport)到打开程序的page或desk。
7.5 更高效的MWM菜单
7.6 关于在屏幕上放置菜单
7.7 当鼠标接近屏幕边缘,有时候会发生flipping pages,你遇到过吗?
7.8 给你的窗口和图标排队
7.9 使用键盘移动鼠标/聚焦/page.
7.10 防猫安全桌面^_^
7.11 下降并移动窗口。
7.12 Toggling windows on and off.
7.13 通过点击打开程序(称为docking程序)
7.14 精确定位窗口
7.15 隐藏鼠标指针
7.16 寻找鼠标指针
7.17 自动隐藏FvwmButtons或其它窗口
7.18 使用应用程序的快照作为图标或者小图标缩略图
0-最常见问题
0.1 fvwm启动几分钟以后,我的键盘和鼠标的绑定设置(bindings)失效了。我需要怎么做?
A:可能是你的NumLock,CapsLock或者ScrollLock键被不小心按下了。更详细的见问题5.5
在作为一名fvwm开发者这些年里,这是到现在被问及最多的问题了。(官方注)(牢骚:略)
-----------------------------------------
0.2 在使用XMMS的时候,总有一些窗口样式被忽略。
A:XMMS喜欢自己搞定所有东西而且无视很多窗口管理器的偏好设定。试试看能否通过XMMS
的设置菜单解决,如果不行就去问问这里(的XMMS的家伙们吧。
请不要在fvwm的mailing lists里面问XMMS的问题,也不要在这里发Bug的报告...(ft,又是牢骚,略)
-----------------------------------------
0.3 我喜欢透明效果。我需要怎么做?
A:请参阅关于透明效果的问题3.23,3.24,3.25,3.26。
也可以看看fvwm-themes包里面提供的配置文件,有些themes使用了透明效果的菜单、模块以及
窗口装饰(decorations).F.e.(下面是效果图):
1.关于Fvwm
1.1 Fvwm意味着什么?
A:“Fill_in_the_blank_with_whatever_f_word_you_like_at_the_time Virtual Window Manager”(全称)。
Rob Nation (FVWM创始人)不记得F最开始到底表示什么了,所以我们有些可能的解释:
Feeble,
Fabulous, Famous, Fast, Foobar, Fantastic, Flexible, F!@#$%, Flashy,
FVWM (the GNU recursive approach), Free, Final, Funky, Fred's (who the
heck is Fred?), Freakin', Flawed, Father-of-all, Feivel (the mouse from
"An American Tail"), Frungy (hey, where does that come from?), Floppy,
Foxy, Frenzied, Funny, Fumbling 等等。
选择你感兴趣的那个就是了。(后面又是罗嗦的,略了)不过现在'Feline'比较流行。这很可能宇六个核心开发者之中的四个养猫有关{ft}平均每人1.17只?喵~
看看这个吧:
-----------------------------------------
1.2 我在哪里能找到最近版本的fvwm?
A: 更新的发行版主站在这里(官方+测试代码):
镜像站点:
美国:
欧洲:
另外,1.24使1.xx系列的最后一个版本,2.2则是正式的2.xx里的第一个版本。第二个数字如果奇数,则代表是开发版本;相反,偶数则是代表稳定的版本(多数软件发行都是这样约定)。
---------------------------------------------
1.3 和fvwm有关的WWW网站?
A:当然有。官方站点是:
那里有许多和fvwm有关站点的链接。
---------------------------------------------
1.4 我要去哪里问fvwm的问题呢?
A:如果你周围的FVWM使用者(maintainer)无能为力的时候,那么新闻组comp.windows.x.apps是个好去处。不过通常,fvwm的邮件组是更好的选择。新的FVWM邮件讨论组地址是:
[url]fvwm@fvwm.org[/url]
还有这是发布邮件组地址:
[url]fvwm-announce@fvwm.org[/url]
他们是由Jason Tibbitts维护的大官家型的邮件组。如需要订阅,发送“subscribe fvwm”到-[url]request@fvwm.org[/url]。比如订阅fvwm mailing list,发送一个请求到:
[url]fvwm-request@fvwm.org[/url]
退订的话,则在消息内发送“unsubscribe fvwm”到-[url]request@fvwm.org[/url]。报告问题,发送邮件到[url]fvwm-owner@fvwm.org[/url]
下面jason对是邮件列表的介绍和说明:
Description
-----------
This list is for discussion relating to the FVWM window manager,
which is intended to have a small memory footprint and a rich
feature set, be extremely customizable and extendable and have a
high degree of Motif MWM compatibility. All relevant discussion
is encouraged. Posting of binaries or irrelevant discussion is
strongly frowned upon. Posting of short patches (less than 200
lines) is acceptable, but all patches should also be sent to the
fvwm-workers list (see Q5.2, below) for inspection and possible
inclusion in the distribution.
Instructions
------------
To send a message to the list, mail to . For help on
dealing with the mailing list software (for getting the archives or
other files which may be made available) send the message "help" to
. If you have problems with the mailing list
itself and need to talk to a human, send mail to .
This address is for mailing list issues only; reports on the FVWM
software will be sent to /dev/null.
Archives of previous messages are available; to get them send the
above mentioned help message and investigate the "index" and "get"
commands or ftp them from
(fvwm-announce)
This list is for announcements relating to the FVWM window manager,
which is intended to have a small memory footprint and a rich
feature set, be extremely customizable and extendable and have a
high degree of Motif MWM compatibility.
Replies to messages from this list are set by default to go the
FVWM discussion list, .
The current FVWM distribution is available for ftp at
---------------------------------------------
1.5 FVWM 1.xx 和 2.xx有什么区别和不同?
A:有很多方面。这里只提一些主要的:
-修正Bug。1.xx 已经停止维护。
-更好的rc文件格式。无需指出dependent。
-更加的强大和灵活。比如,过去的一些只能用Global设置的选项,现在可以单个窗口组(window group)的级别来代替了。
-更多、更好的模块更能。
-M4预处理机制部分已经从fvwm exec组取消,并被转移到了一个模块中。而且还保有一个使用cpp的模块。请参看FvwmM4和FvwmCpp 的man page手册。
---------------------------------------------
1.6 相比之下,不同的窗口管理器使用内存的情况如何?
A:下面是一个比较他们的表格。同样IBM RS6000 model 355的AIX上开启3个窗口和用XSession在他们之间切换。
SIZES RES
545K 652K fvwm2 (fvwm 2.0.35)
457K 528K fvwm (fvwm 1.24rb)
856K 960K ctwm (ctwm 3.2p1)
1004K 1156K mwm (mwm 1.2)
543K 632K twm (???)
263K 328K aixwm (a simple ugly window manager included w/ aix)
Note: This information is terribly outdated.(ft!信息已经过时)
---------------------------------------------
1.7 为什么把这些文件重新命名了(fvwm2,fvwm2rc,fvwm2.man)?
(略!因为2.5.1版本开始,又开始使用fvwm2了。)
---------------------------------------------
1.8 什么时候fvwm放出X.Y.Z版本?
A:这个问题很难回答。因为是志愿工作,所以我们在有时间的时候才会有成果。
鼓励加入fvwm工作邮件组!
2.安装
2.1 我想使用FVWM,但是我没有机器的root权限。那我还能安装和使用么?
A:很容易,在configure的时候使用"--prefix"参数。
假设你的home目录为/home/sam。解压fvwm源码包后,键入"./configure --prefix=/home/sam[其他参数]","make"和"make install"。
现在你能在/home/sam/bin下看到可编译好的文件(The binaries),在/home/sam/man下看到man pages,在/home/sam/libexec下看到modules等等。
--------------------------------------------
2.2 我尝试在CDE/COSE下面使用fvwm,但是遇到了困难。有什么建议?
A:这是一个来自Graeme McCaffery的建议:
---
我现在终于知道如何从CDE启动fvwm了。
首先把你的home session设置成Dtwm。尽管你可能用CDE session管理器代替FvwmSaveDesk等来储存desktop设置,但默认情况这通常是一个空session。
而后你需要在 .Xdefaults文件中设置下面两条:
Dtsession*wmStartupCommand: /home/orion/spxgm/bin/Fvwm
Dtsession*waitWmTimeout: 1
这样的话,我用shell脚本程序来启动fvwm,以便使lib等变量适合每一个使用者。waltWm Timeout告诉session 管理器启动window manager前等待多少时间。我设成了1秒钟,而默认情况下是60秒。
最后你需要这样退出:
/usr/dt/bin/dtaction ExitSession (用你的dtaction目录代替)
至此,你可以开心的使用CDE和fvwm了。
---
另一方面,这里有一个web连接描述如何添加多种window管理器到CDE登陆菜单中:
--------------------------------------------
2.3 我尝试在SunOS下用cc编译FVWM,但是编译过程出现很多问题。出什么事啦?
A:SunOS下的cc不是ANSI C编译器。试试使用acc或者gcc来代替。
--------------------------------------------
2.4 我需要彩色图标,但是无效。为什么呢?当我运行configure的时候,提示 "no" to "Have XPM support?"那么请问怎样使自己得到XPM支持?
A:FVWM用XPM(X PixMap)库来提供彩色的和可变形的图标的支持。由Open Group of XFree86提供的基本的X发行版没有包括XPM部分,但是很多零售商都将它作为一个发行版的标准部分(像Redhat等)。
实在没有的话,可以到这里下载源码包,并且自己编译。
如果你的系统现在已经安装了XPM,那么有些configure方法可以选择是否使用它(XPM)。
首
先,如果把XPM安装到了非标准的地方(既没有安装到/opt/xpm
或者/usr/local这样的地方)那么需要告诉configure到哪里去找。用参数“--with-xpm-library and
with-xpm-includes”(参看INSTALL.fvwm)。否则会碰到“Xpm library or header not
found”的错误提示。
其次,你的XPM的版本过低会得到如此的提示“Xpm library version is too old!”。如此,你需要安装新的版本。
第
三,如果XPM可能安装有误,那么会提示“Xpm library version and header file version don't
match!”。使用参数“--with-xpm-library”和“with-xpm-includes”来确定,或者重现安装XPM。
最后,可能会有连接错误。尤其是那些把XPM编译为shared library和非标准目录。在INSTALL.fvwm里面有关于这些的描述。
如果还是不能搞定,那么和FVWM的邮件组联系。请提供你使用的系统和硬件信息,包括config.log文件里的XPM部分。
--------------------------------------------
2.5 我是系统管理员,我希望让fvwm先尝试使用一个系统rc文件然后是用户自己的rc文件,要怎么做呢?
A:来跟我这么做:
-包每个用户的.fvwm2rc文件的第一行加上'Read global.fvwm2rc'并把系统的global.fvwm2rc文件放到"datadir"/fvwm里面。
--------------------------------------------
2.7 如何使FVWM和GNOME(version<=1)一起工作?
A:最近的fvwm和GNOME配合的很好,你可以直接在FVWM里单独运行诸如:gnome panel, gmc, gnome-terminal这样的程序。
脚本文件fvwm-menu-desktop能够帮你在菜单里添加gnome程序。
确认你运行了FVWM并且没有余兴gnome-session,在你的用户目录下创建 .Xclients文件并加入启动fvwm条目。如果你希望避开管理员设置的系统级别的设置,那么~/.xinitrc能起到同样的效果。
另一个折中的解决/usr/bin/gnome-session里运行FVWM方法是这样:启动gnome-session以后,在pannel的主菜单里面选择
系统菜单/设置/桌面/窗口管理器
并创建一个FVWM的快捷项。FVWM支持session 管理器。
如果你运行gnome-session,则调用SessionInitFunction和SessionRestartFunction用来代替InitFunction和RestartFunction,可以查看fvwm的man pages。
用来运行modules的StartFunction,像通常一样被调用。
这是FVWM提供的对GNOME窗口管理器的支持情况的例子:
-
如果没有对GNOME的支持,那么在fvwm里运行panel,那么就无法得到完全的GNOME page
applets(窗口页面切换工具);当然如果有了GNOME的支持,你就可以在pages/desks正确的看到和移动窗口。你也可以在窗口里使用
GNOME Tasklist applet和manage。
-如果你运行gmc和bind GnomeButton(参阅man page),你能用root权限执行一个gnome程序。(就像gmc)
--------------------------------------------
2.8 如何使FVWM和GNOME(version>=2)或者KDE(version>=2)一起工作?
A:
绝大多数应用程序可以在FVWM里面运行。但是,有些程序的特点和特殊的程序比如:panels、pagers、taskbars和desktops需要
特别的支持。窗口管理器之间的关联、桌面环境和应用程序在扩展窗口管理器的特例Hints里进行了标准处理。从2.5.x系列开始,FVWM支持这种特例
(GNOME,GTK,KDE和QT的大于2的版本里面)。更多细节请参阅fvwm的manual pages里面关于 "Extended
Window Manager Hints"的章节和以“EWMH”开头的commands和styles。
你可以用fvwm作为
GNOME的窗口管理器。首先启动GNOME(gnome session)。这样做是用fvwm替换默认运行的窗口管理器(sawfish 或者
metacity)。在终端中键入 "fvwm --replace&"。如果这样失败的话,那么杀死fvwm进程并打开session
properties对话窗口(终端里运行"gnome-session-properties&"),在第二个标签页里,把
metacity(或者sawfish) Style
的值从“Restart”改为"Normal"(记得“应用”一下),这样gnome-session就不会在你杀死它的时候重新启动它了。现在在终端键
入"killall metacity; sleep 1; fvwm
&"。当你成功以后,你需要保存session(在注销的时候指定)。下一次启动FVWM的时候,fvwm就被默认使用为窗口管理器了。注意,如
果你使用gnome-smproxy登陆,并且在一些使用旧session协议的程序里应用了FvwmButtons被gnome-session重启,
那么这些程序会和FwmButtons引起冲突!
同样,你也可以在KDE里fvwm窗口管理器。KDE是用一个叫
做"startkde"的脚本程序启动的。这个脚本启动了ksmserver及其默认窗口管理器(kwin)。要启动fvwm需要在ksmserver命
令行里加上“-w
fvwm”的参数。你可以拷贝一份startkde作为startkde_fvwm在你的目录下,编辑这个脚本程序,然后用它替代startkde作为X
启动脚本的选项(例如:~/.xinitrc,~/.Xclients或者~/.xsession)。注意ksmserver不支持fvwm的
Restart命令。你可以使用“Restart fvwm”来重启fvwm。但是如果你这么作了那么建议不要在后面储存设置。
3 .特点、配置、函数以及命令(Features, Configuration, Functions & Commands)
============================================
3.1 我在RedHat Linux上使用FVWM,但不知如何改变我的FVWM的配置。我阅读了FVWM的man page,但是当我编辑 .fvwm2rc以后却发现好像没有什么改变。怎么回事呢?
A:RedHat Linux在默认情况下用一个配置管理器来安装X server。它的早期版本是TheNextLever,而现在的版本叫做AnotherLever。更多的TheNextLever的信息可以查询/usr/doc/TheNextLevel/下的文档,后者可以用命令查看“man AnotherLever”。
--------------------------------------------
3.2 我能够通过点击窗口本身而不是点击边框就能使窗口升起来么?
A:在2.0.46版以后已经具有了这种功能。在2.2.x系列,使用下面方法:
GlobalOpts MouseFocusClickRaises
在2.3.x betas以后使用这个方法:
Style * MouseFocusClickRaises
--------------------------------------------
3.3 我如何能够像其他的GUI那样使用Alt-Tab习惯?
A:内建命令WindowList提供了一个和其它GUI非常近似的机制来实现Alt-Tab功能。虽然看起来有些不同,但是下面的.fvwm2rc的例子提供了类似的接口:
Key Tab A M WindowList Root c c NoDeskSort
2.3.2版,上述的绑定是作为内建方式来实现的。
2.3.15版,可以先按下Alt然后敲击Tab键来实现窗口轮换。单独按下Alt+Tab键则表示选择前一个窗口。本FAQ条目主要来描述2.3.2的情况。
敲击Alt-Tab将激活WindowList菜单。和其它的GUI不同,你无需一直按着Alt键,在按下Return/Enter/Space或者Escape这些键之前,此菜单都不会消失。你可以用上、下方向键在WindowList菜单里选择并用Return或Enter键来确认你的选择。按下Escape键则直接关闭这个菜单。WindowList为前26个窗口提供了热键,你可以直接用热键直接选择窗口。
除非你使用Focus命令,被激活菜单的靠上部分将显示最近聚焦过的窗口(参见Q3.4)。它包括了每个窗口的名称和坐标还有一些与Sticky、OnTop以及图符化窗口特性相关的参数。
下面是一个更简单的使用方法:
Key Tab A M WindowList Root c c CurrentDesk NoGeometry
这样将会仅仅显示当前桌面的窗口(只显示标题)。
在其他GUI里,如果按下Alt-Tab并快速松开,那么会切换到前一个窗口去。在此我们无法照搬这种操作,但是可以通过短时间内双击Alt-Tab来实现(就像鼠标双击一样):
DestroyFunc my_dbltab2
AddToFunc my_dbltab2
+ I WindowListFunc
DestroyFunc my_dbltab
AddToFunc my_dbltab
+ I Prev (CurrentDesk) my_dbltab2
Key Tab A M WindowList Root c c CurrentDesk NoGeometry my_dbltab
WindowList命令有很多选项可以来控制窗口的排列方式,但却无法在双击按键的时候为Prev命令提供可靠的选择能力。WindowList命令没有在CurrentPage,Transient,Visible,Maximized以及pattern matching里面的对应物,同样Prev命令也不支持OnTop,Alphabetic和desk sorting。WindowList菜单支持WindowListSkip样式的属性,同时Prev支持CirculateSkip和CirculateSkipIcon样式的属性。
--------------------------------------------
3.4 Focus与FlipFocus命令有什么区别?
A: 这两个命令都是用来把键盘的焦点转移到目标窗口的。它们只是在内部窗口列表保存方式上表现出了不同的处理机制。这个窗口列表被Next,Prev和WindowList这些命令所使用。这个列表是把最近聚焦的窗口按照一定顺序排列的(最新的加在最下面)。FlipFocus命令把目标窗口从上面提到的那个窗口列表里面抽出来放到了最开始的位置(默认是最下面),而Focus命令只是使列表循环而已,知道目标窗口到了最开始的位置。在用鼠标聚焦和用ClickToFocus style自动聚焦的时候也采用FlipFocus命令的方式。
如果你永远不使用Focus命令,那么列表一直保持着最近聚焦窗口的顺序。而当你用了Focus命令以后那么列表(Window List)就会回到你最后一次使用FlipFcus那时候的状态。
Focus命令在和Next、Prev命令配合使用的时候非常有效:
Key KP_Add A M Next (AcceptsFocus CurrentDesk !Iconic) Focus
Key KP_Subtract A M Prev (AcceptsFocus CurrentDesk !Iconic) Focus
在FVWM 2.4.1以前,这样:
Key KP_Add A M Next [CurrentDesk !Iconic] Focus
Key KP_Subtract A M Prev [CurrentDesk !Iconic] Focus
这种绑定方法使你能够循环双向切换目前桌面(Desk)前后的窗口。例如:使用Prev FlipFocus,焦点就会在列表(Window List)里的前后两个窗口之间切换。
如果你在一个桌面上有多个窗口,你想要为Next和Prev命令设置循环次序,你可以用鼠标或者FlipFocus命令设置你希望的次序。Fvwm会记住这个次序,并在使用Next和Prev命令的时候使用它。如果你随后再次使用鼠标或者FlipFocus命令,那么先前制定次序就会丢失。
--------------------------------------------
3.5 我能够把鼠标的移动帮定到keystrokes,但是如何绑定鼠标的点击事件呢?
A: 尽管FVWM有用来把移动动作帮定到键盘的命令,但是用键盘控制鼠标指针的移动需要X server的支持。下面是来自X FAQ在这个方面的经验总结:
如果你拥有XKB(X Keyboard Externsion),那么你可以把鼠标的各种事件绑定到键盘上(移动或者按下)。只要拥有XKB,不论应用程序本身是否使用XKB机制,那么各种鼠标事件对我们都是透明的-使应用程序直接和sever打交道。
在X11R6.1 上,XKB是默认使用的。
首先,按起Num Lock键,使用Shift+Num_Lock绑定鼠标按键:
xmodmap -e "keysym Num_Lock = Num_Lock Pointer_EnableKeys"
你可能需要关闭Num Lock键来使之在工作的时候生效。现在按下"Shift+Num_Lock"来模拟鼠标按键。当鼠标按键开启后:
o) The keypad arrow keys move the pointer(方向键移动鼠标指针)
o) The keypad '5' key behaves like the 'default' pointer button(默认的鼠标按键-我用左键)
o) The keypad '0' key locks the default pointer button (for easy
dragging)(拖动)
o) The keypad '.' key unlock the default pointer button (to release
a drag)(表示拖动结束)
o) The keypad '+' key double-clicks(双击左键) the default pointer button.
o) The keypad '/' key sets the 'default' button to Button1
o) The keypad '*' key sets the default button to Button2
o) The keypad '-' key sets the default button to Button3
这是默认的配置,但是配置机制可以说是毫无限制的(足够满足你的需要)。
[多谢 Erik Fortune (erik@westworld.engr.sgi.com), 6/96]
--------------------------------------------
3.6 我想把一个键绑定为粘贴当前选择(use the current selection),怎么办呢?
A: 直接依靠fvwm还不行,但是有一个解决方案:从这里[url]ftp://ftp.x.org/contrib/utilities/ [/url]或者镜像网站下载'XBC'程序,它或许可以出色的完成这个任务。这个对把选择传递给运行的程序是非常有用的(例如-把当前选择传递给你喜欢的浏览器作为URL链接)。如果你需要'semi-generic'这样的粘贴机制,你需要使用‘XSE’(参考Q3.5)。如果你有什么这方面的好例子,请给我们的邮件列表发信。
--------------------------------------------
3.7 FVWM会为每一个桌面提供colormap的支持么?
A: 虽然我也很想这样,但是恐怕还有些问题。我认为可以用切换桌面这个事件来启动适当的程序以改变默认的colormap,但是当移动窗口到新的桌面时就无法实现这个功能了。
而且,FVWM自己也需要一定的colormap通道用来显示drwing(边框,菜单等等)。所以,这些颜色必须事先在所有的colormaps里面定位。
虽然这些在技术上都是可能的,但是我想现在还是无法实现这个功能(需要添加很多的代码,而且变得异常复杂),特别是当那些消耗色彩量庞大的程序(像Netscape)还需要单独的colormaps。
尽管如此,我以后还是会在这一点上作一些探索的。
--------------------------------------------
[]3.8 我很喜欢在sticky window标题栏里面的水平条。我能在其他的窗口也使用它么?
A: 当然。在 2.3.14 及其以后的版本,把下面这行:
Style * StippledTitle
加入你的 .fvwm2rc文件. 对于更早的版本:
GlobalOpts StipledTitles
--------------------------------------------
3.9 我如何设置Sun的键盘,才能让XXXX绑定到一个FVWM命令?总之,我在键盘绑定方面有问题。我要怎么作呢?
A: 来自 Jon Mountjoy, 一个FVWM的用户:
- Sun 键盘的功能键是在键盘顶端的: F1 - F8
- Sun的键盘 F11 == Stop, F12 == Again, ..., F20 == Cut
他的设置是这样的:
# Function keys on Sun Keyboard on Top Row
Key F1 A N Exec me(netscape) &
Key F2 A N Exec me(netscape -install) &
Key F5 A N Exec makex(Adder)
Key F6 A N Exec makex(Lambda)
Key F7 A N Exec makex(Castor)
Key F8 A N Exec xterm -T Local &
# Keys on the function keypad on the Left of the Sun Keyboard:
# F11 = Stop, F12 = Again, ..., F20 = Cut
Key F11 AWF N Next (!iconic CurrentPage) Focus
Key F12 AWF N Prev (!iconic CurrentPage) Focus
Key F13 WF N Maximize 100 100
Key F15 WF N RaiseLower ""
Key F17 WIF N Iconify ""
Key F18 WF N Stick ""
Key F20 WIF N Delete ""
Key Help AWF N Iconify ""
更加通用的做法是使用'XEV'(和w/X11一起发布) 或者'xkeycaps'(一个Jamie Zawinski写的X11 xmodmap的接口程序,在)来查找你用keysym来代表的按键(REALLY),并用它来绑定FVWM的命令。
--------------------------------------------
3.10 我的1.xx的 .fvwmrc文件不能工作了。我要怎么作呢?
A: 你要么需要使用一个新的,要么就得转换你旧的 .fvwmrc文件。你可以自己手动完成,当然也可以让utiles目录里面的“fvwm-convert-2.2”程序帮忙。
这里有一个 Makoto 'MAR_kun' MATSUSHITA编译的rc文件实例,里面显示了命令改变情况的列表。或许不是100%的准确和完整-特别是今后有FVWM再次升级的时候,但这的确是一个很好的开始。
注意,2.1.x以后的情况还没有反应到下面的脚本之中。
** Fvwm-1.xx commands ** ** Fvwm-2.0.x equivalent **
AppsBackingStore (obsoleted)
AutoRaise delay (obsoleted, use FvwmAuto)
BackingStore (obsoleted)
BoundaryWidth Width Style (BorderWidth width)
ButtonStyle button# WidthxHeight <-
CenterOnCirculate (obsoleted)
CirculateSkip windowname Style (CirculateSkip)
CirculateSkipIcons Style (CirculateSkipIcon)
ClickTime delay <-
ClickToFocus Style (ClickToFocus)
Cursor cursor_num cursor_type CursorStyle context cursornum
DecorateTransients Style (DecorateTransient)
DeskTopScale Scale (obsoleted, use FvwmPager)
DeskTopSize HorizontalxVertical <-
DontMoveOff (obsoleted)
EdgeResistance scrolling moving <-
EdgeScroll horizontal vertical <-
Font fontname MenuStyle (arg4)
Function FunctionName AddToFunc (not compatible)
HiBackColor colorname Style (HilightFore color)
HiForeColor colorname Style (HilightFore color)
Icon windowname bitmap-file Style (Icon iconname-file)
IconBox left top right bottom Style (IconBox l t r b)
IconFont fontname Style (IconFont fontname)
IconPath path ImagePath path
Key keyname Context Modifiers Function <-
Lenience Style (Lenience)
MenuBackColor colorname MenuStyle (arg2)
MenuForeColor colorname MenuStyle (arg1)
MenuStippleColor colorname MenuStyle (arg3)
Module ModuleName <-
ModulePath path <-
Mouse Button Context Modifiers Function <-
MWMBorders Style (MWMBorder)
MWMButtons Style (MWMButtons)
MWMDecorHints Style (MWMDecor)
MWMFunctionHints Style (MWMFunctions)
MWMHintOverride Style (HintOverride)
MWMMenus MenuStyle (arg5)
NoBorder windowname Style (NoBorder)
NoBoundaryWidth Width Style (HandleWidth width)
NoPPosition Style (NoPPosition)
NoTitle windowname Style (NoTitle)
OpaqueMove percentage OpaqueMoveSize percentage
OpaqueResize (obsoleted)
Pager X_Location Y_Location (obsoleted, use FvwmPager)
PagerForeColor colorname (obsoleted, use FvwmPager)
PagerBackColor colorname (obsoleted, use FvwmPager)
PagerFont fontname (obsoleted, use FvwmPager) %
4.1 我在使用FvwmButtons模块(或1.xx版的GoodDtuff模块)。为什么有时这些按钮会一直保持按下的状态,有时却不是?
A:引自FvwmButtons的帮助页:
假如命令是FVWM的内部命令,那么按钮按下后就会保持按下的
状态直到一个名字或类别与该命令引用部分相符的窗口出现。这么做是
为了给使用者一个看得见的回馈以表示他要求的动作正在被执行。如果
命令引用部分为空,那么按钮按下后会立即弹起。需要注意的是,使用者
可以不断的按此按钮以不断的执行这个命令,甚至在该按钮是按下的状态
时亦可。
--------------------------------------------
4.2当点击FvwmButtons来取消一个程序的时候,是否能够通过定义按键(鼠标的某个键) 来同时启动其他的程序?比如,我希望在用我定义的鼠标按键关闭xload的时候, 按下时能启动xterm;又或是关闭xbiff的时候,同时启动消息列表。
A:对于alpha 2.5.0发行版及其以后的版本是这样的。要是使用更老的版本,请继续往下看。
The button presses normally get passed through to the swallowed
application, but if you put a title on the button, you can
assign actions to that. Here's an example that someone sent to
the mailing list once:
一般情况下,按键的按下信息会传递给被关闭的程序,但是如果你给按钮(程序按钮) 添加一个标签,你便能够对它指定一定的行为。下面是一个某人发送一次邮件列表的例子:
*FvwmButtons(1x4, \
Title 'System Info', \
Swallow "xload" 'Exec xload', \
Action(Mouse 1) 'Exec xosview -cua0 -net 200 -ul -l -geometry 325x325',
\
Action(Mouse 2) 'Exec xcpustate -interval 1 -bg "#a4978e" -fg black', \
Action(Mouse 3) 'Exec rxvt -fg "khaki" -bg "dark olive green" \
-fat -n top -T Top -7 -e top' )
And you could come up with something similar for xbiff (untested)
对xbiff所作的工作应该和上面的非常类似,对吗?(未经测试的):
*FvwmButtons(1x2, \
Title 'Check Mail' Swallow "xbiff" 'Exec xbiff', \
Action(Mouse 1) 'Exec from | xmessage -file -' )
plus you could bind another button (say Mouse 3) to run your
mail program.
这样一来(对于3键鼠标来说)你就可以把邮件程序绑定到另外的按键上了。
Sometime in the future I'll probably try and fix it so that you can
actually assign a button press over the application itself...
未来的某个时候,我可能会尝试修改一下以便你能真正的在应用程式里指定一个按下后可以关闭自己按钮...
--------------------------------------------
4.3 当我用FvwM4/Cpp模块预处理文件时,发生了奇怪的事情...
A: 对,我可以想象到。比如InitFunction没有被调用或者在FVWM之前运行的窗口没有被设定边界和风格等等...
所有这些是因为FvwmM4是一个模块。Fvwm只会在它触发主循环代码的时候,才会 针测到从模块传回的命令,并且首先要保证启动startup过 程已经全部完成已 经准备好执行InitFunction函数了。
强制同步执行FvwmM4/Cpp请用:
ModuleSunchronous FvwmM4/Cpp -lock filename
更多细节请见帮助页。
--------------------------------------------
4.4 我听说过一个FvwmFileMgr模块。哪里可以找到它?
A:FvwmFileMgr模块已经没有了。因为文件管理器不需要和窗口管理器整合到一起。在这方面像xfm类的程序做得更好。我推荐用它来替代这个模块(从ftp.x.org
或其镜像)。
--------------------------------------------
4.5 我习惯于使用FVWM 1.xx版的GoodStuff模块,但在2.xx的发布包中没有这个模块了。 现在我该用什么?
A:GoodStuff现在叫FvwmButtons了。同样的模块,不同的名字而已(为了配合其它模块的更名)。
--------------------------------------------
4.6 我可以把FvwmButtons的字幕托盘放在屏幕的其它地方而不是默认的按钮周围的地方吗?
A:答:可以。但不是本专题讨论的内容。请参阅7.12。
--------------------------------------------
4.7 怎样用键盘快捷键来在FvwmButtons中按按钮和开启字幕盘?
A:FvwmButtons本身并不支持键盘快捷键。从2.3.24版FVWM开始,可以用FakeClick命令
来
在FvwmButtons窗口中模拟鼠标的点击。
2.3.24版及其后
DestroyFunc press_fvwmbuttons
AddToFunc press_fvwmbuttons
+ I Next (FvwmButtons, CirculateHit) WarpToWindow $1 $2
+ I FakeClick depth 2 press $0 release $0
2.5.1版及其后(移动指针回初始位置)
AddToFunc press_fvwmbuttons
+ I SetEnv pointer_x $[pointer.x]
+ I SetEnv pointer_y $[pointer.y]
+ I Next (FvwmButtons, CirculateHit) WarpToWindow $1 $2
+ I FakeClick depth 2 press $0 release $0
+ I WindowId root WarpToWindow $[pointer_x]p $[pointer_y]p
使用下面这个函数可以将指针移动到想要的按钮并模拟一次单击。如下
调用
press_fvwmbuttons btn xoff yoff
^ ^ ^
| | |___ 按钮的y位移
| |________ 按钮的x位移
|_____________ 要模拟的鼠标键
比如:设托盘按钮在FwvmButtons宽度的30%,高度的10%处,你想模拟鼠标1键:
press_fvwmbuttons 1 30 10
You can bind this to a key. For example:
你可以把它绑定到一个键。比如:
Key f1 a n press_fvwmbuttons 1 30 10
注意:当鼠标同时移动的时候,这个方法不起作用。
阅读(4041) | 评论(0) | 转发(1) |