「FVWM」- FvwmBacker(控制 FVWM 的桌面背景)

模块调用语法

Module FvwmBacker

注意事项

  1. 该模块不支持模块别名。
  2. FvwmBacker模块只能由fvwm产生。从命令行调用FvwmBacker是无效的。

模块的初始化

初始化期间,FvwmBacker会读取FVWM的模块配置数据库(即配置文件中与FvwmBacker有关的配置)。下面的部分会介绍相关选项。

如何加载该模块?

FvwmBacker可以在初始化期间由fvwm加载,通过在配置文件中加入如下行:

AddToFunc StartFunction I Module FvwmBacker

在fvwm运行期间,可以使用Module FvwmBacker命令来启用FvwmBacker。使用KillModule FvwmBacker命令停止FvwmBacker模块。

为了使FvwmBacker模块能够被fvwm执行,FvwmBacker必须在fvwm的ModulePath选项列出的目录中,有关ModulePath命令的介绍其他文章。

配置选项

以下的选项可以放在FVWM的配置文件中:

*FvwmBacker: Command (Desk <d>, Page <x> <y>) <command>

当视口在桌面<d>上且页面坐标为<x> <y>时,执行命令<command>

<d><x><y>这三个参数中的任何一个或全部都可以用星号(*)替换,以表示匹配任何值。在这种情况下,可以省略DeskPage部分,但省略Desk和Page时FvwmBacker的行为与使用星号又有所不同。具体的情形如下:

  • 如果Page被省略,只使用了Desk *,则仅在切换桌面时执行<command>
  • 如果Desk被省略,只使用了Page *,则仅在切换页面时执行<command>
  • 如果Desk与Page都被省略,那么<command>只在模块启动时执行一次,切换时不会再执行<command>
  • 如果使用Desk *, Page *,则在桌面或页面更改时,总是执行<command>

如果<command>-solid,则FvwmBacker将-solid后的参数视为X数据库中的颜色,并将背景设置为该颜色,而不生成对xsetroot的系统调用(只有单个字的颜色名称可能使用)。

如果<command>Colorset,FvwmBacker为给定的桌面使用Colorset n中指定的背景。有关Colorset的详细信息,请参阅fvwm手册页。

剩下的<command>情况,<command>会被发送给fvwm执行。比如,如果<command>是Exec xterm,则会在页面切换时,启动一个xterm。

*FvwmBacker: RetainPixmap

使FvwmBacker保留并发布Pixmap,使用的图是已经设置的背景图。这仅适用于-solid或Colorset命令。这对于想要使用在背景中的根Pixmap来模拟透明的应用程序非常有用(例如,Eterm和Aterm使用此方法)。这个选项应该也用于RootTransparent colorset选项(参考FvwmTheme的手册页面)。

注意:在Coloret背景下,这个命令可能会为X Server添加大量的内存。 例如,这增加了TiledPixmap图像的宽度乘以高度字节、Pixmap图像的screen_width乘以screen_height字节、或者渐变中的screen_width乘以screen_height字节。

*FvwmBacker: DoNotRetainPixmap

取消RetainPixmap选项。这是默认行为。

运行时配置

尽管现在还不能在运行时移除某个配置行,但可以在FvwmBacker运行时替换原有的配置。可以通过简单地从fvwm中删除所有原有配置,然后读取新配置来实现这种行为。可以通过许多方式完成,例如使用fvwm函数、FvwmCommand、FvwmConsole。

如下示例:

DestroyModuleConfig FvwmBacker*

*FvwmBacker: Command (Desk 0) -solid black

*FvwmBacker: Command (Desk 1) -solid blue

上面的命令中,第一行配置删除了所有的原有FvwmBacker配置,后两行配置为FvwmBacker的新配置。执行这三条配置后,桌面背景就会被替换,而不需要重新加载FVWM。这可以在运行时动态修改桌面背景。

旧风格的配置选项

目前已经废弃的选项依旧是支持的:

*FvwmBacker: Desk d command

这等价于忽略了Page选项的FvwmBacker命令:

*FvwmBacker: Command (Desk d) command

简单的配置示例

下面使一个配置示例,描述了FvwmBacker的初始化配置命令:

####
# 为不同的桌面和页设置背景色。
####
*FvwmBacker: Command (Page 2 *) -solid steelblue
*FvwmBacker: Command (Desk 0, Page 0 0) Exec fvwm-root $[HOME]/bg2.xpm
*FvwmBacker: Command (Desk 0, Page 0 1) -solid midnightblue
*FvwmBacker: Command (Desk 0, Page 1 *) -solid yellow
*FvwmBacker: Command (Desk 1, Page * 0) -solid navy
*FvwmBacker: Command (Desk 1, Page * 1) Colorset 5

注意事项

FvwmBacker不支持为桌面设置背景图片,但是可以使用别的方法。比如,指定<command>Exec feh –bg-scale /path/to/bg.jpg(当然其他SHELL命令也可以)。

参考文献

FVWM/FvwmBacker

更新日志

04/07/2018 文章内容翻新。