认识
官网:http://fvwm.org/
文档:http://fvwm.org/documentation/manpages/
仓库:https://github.com/fvwmorg/fvwm
FVWM,是 X Window 系统的一个非常强大的、符合 ICCCM 兼容的多虚拟桌面窗口管理器。FVWM 什么样子呢?这个很难说,它可以是任何样子,因为它的高度可定制性,决定它的千变万化,相关的展示可以参考官网中的列表。http://fvwm.org/screenshots/
Fvwm 是 X11 的窗口管理器,旨在最大限度地减少内存消耗,并为窗口边框提供 3D 外观和虚拟桌面等功能。
Fvwm 提供了一个大型的虚拟桌面(Vitrual Desktop)和多个分离的桌面(Disjoint Desktops),可以单独使用或者一起使用。虚拟桌面允许你假装你的屏幕很大,你可以在桌面上滚动。多个分离的桌面允许你假装有几个工作屏幕,但每个屏幕是完全无关的,等同于 Linux 下的 Desktop Pager。
Fvwm 提供的键盘快捷键允许您使用键盘快捷键进行窗口管理(移动、调整窗口大小、操作菜单等)。
Fvwm 还克服了大多数窗口管理器中的配置命令和动作命令之间的区别。通常情况下,配置命令通常用于设置字体、颜色、菜单内容、键和鼠标功能绑定,而操作命令则用于升高、降低窗口。Fvwm 没有这样的区别,并允许任何时候改变任何东西。
fvwm 和其他 X11 窗口管理器之间的另一个差异是引入了 SloppyFocus 和 NeverFocus 方法来处理焦点。焦点策略可以为不同的窗口组分别进行指定。使用 SloppyFocus 的 Windows 获取焦点时,当指针进入它们并保持焦点,直到其他窗口获得它。当指针移动到根窗口时,这样的窗口不会失去焦点。NeverFocus 策略通常针对无输入类型的窗口(例如 xclock,oclock,xbiff,xeyes,tuxeyes),如果 SloppyFocus 窗口具有焦点,将指针移到有 NeverFocus 的窗口上时,NeverFocus 的窗口不会剥夺焦点。
请注意,有几个窗口管理器名称中有“fvwm”。过去,fvwm 的 2.x 版本通常被称为 fvwm2,与之前的 1.x 版本(fvwm 甚至 fvwm1)区分开来。由于很久以前 1.x 版本已经被版本 2.x 所取代,所以我们在本文档中简单地调用 2.x 版本和所有版本 fvwm,而可执行程序被命名为 fvwm。有一个叫做 fvwm95 的 fvwm 后代,它大多是 fvwm-2.0.43 的补丁版本。fvwm95 的主要目标是提供 Windows 95 的外观和感觉。从那以后,fvwm 得到了很大的提升,fvwm 几乎可以实现所有 fvwm95 的功能。
桌面截图
#1 在面板中嵌入一个终端……
http://www.fvwm.org/screenshots/2005-02-17_Thomas_Adam-desk-1280×960/screenshot.png
#2 以某些日志或者软件为桌面背景
http://www.fvwm.org/screenshots/2004-11-09_Chris_Debenham-1400×1050/screenshot.jpg
#3 对于按钮,左侧图标,右侧文字
http://www.fvwm.org/screenshots/2004-01-24_Tavis_Ormandy-desk-1152×864/screenshot.jpg
#4 在 IconBox 中显示当前窗口的截图
http://www.fvwm.org/screenshots/2004-01-24_Tavis_Ormandy-desk-1152×864/screenshot.jpg
#5 资源管理器的问题,查看当前系统的资源
http://www.fvwm.org/screenshots/2004-01-24_Tavis_Ormandy-desk-1152×864/screenshot.jpg
#6 高仿 Windows 主题
http://www.fvwm.org/screenshots/2003-08-28_Windows95-desk-1280×1024/screenshot.png
为什么要使用 FVWM?
忘了第一次用 FVWM 是因为什么了,后来换成 LXDE 了,但是有使用 XRDP 进行远程的需要,这就有一个问题,LXPanel 没有办法使用$DISPLAY 环境变量来指定 X Server 进行启动,这就导致远程桌面无法启动 LXPanel。
当然,这肯定不是使用 FVWM 的真正理由。。。。。。:)
组成
在配置和使用 FVWM 的过程中,会设计到一些其他的术语和概念,这里简单的说明一下。
Xinerama
详细参考「Wikipedia/Xinerama」的介绍。
Xinerama 是对 X Window System 的扩展,使应用程序和窗口管理器能够将两个或更多的物理显示器当作一个大型的虚拟显示器(将多个物理显示器视为一个逻辑显示器)。
MWN – Motif Window Manager
详细参考「Wikipedia/Motif Window Manager」的介绍。
窗口管理器。FVWM 提供的一些用于模拟 MWM 行为的选项。
EWMH – Extended Window Manager Hints
详细参考「Wikipedia/EWMH」的详细介绍。
扩展窗口管理器提示(又名 NetWM 或 Net WM),是 X Window System 中的窗口管理器(Window Manager)的标准。它定义了窗口管理器、工具程序、应用程序之间的各种交互,是整个桌面环境的所有部分。它建立在 ICCCM 功能的基础之上。
ICCCM – Inter-Client Communication Conventions Manual
详细参考「Wikipedia/ICCCM」的介绍。
客户端间通信约定手册?(又名 ICCCM,I39L)是 X Window System 中标准协议,指定了同一个 X Server 的 Client 间的通信。主要用于 X Server 的其他客户端与窗口管理器之间的通信。
命令程序 and 配置文件
fvwm2,FVWM,窗口管理器,主程序文件;
FvwmCommand
fvwm-bug
fvwm-config
fvwm-convert-2.6
fvwm-menu-desktop
fvwm-menu-directory
fvwm-menu-headlines
fvwm-menu-xlock
fvwm-perllib
fvwm-root
xpmroot
性质
使用多屏幕显示 USE ON MULTI-SCREEN DISPLAYS
如果未给出-s 命令行参数,则 FVWM 会自动在指定 DISPLAY 的每个屏幕上启动。
在 FVWM 启动后,每个屏幕都会被独立处理。
如果要重新启动 FVWM,则需要在每个屏幕上单独执行。
多屏幕显示时,强烈推荐使用 EdgeScroll 0 0 指令。
您可能需要在每个屏幕上执行退出,以完全退出 X 会话。
这不能与 Xinerama 的支持相混淆。
构建
安装FVWM窗口管理器
从发行版的源中直接安装
# Debian-based apt-get install fvwm
改进
最近在玩 FVWM,突然喜欢上了那些很历史、很经典的 ICON,比如 Windows 2000;
博客中加入对 FVWM 各个模块的介绍;
FVWM 系统监控区域数据,定时任务
FvwmScript
在 FVWM 中,自启动桌面应用
目前,我使用的办法是使用 dex 来启动 XDG 规范中特定目录中的桌面条目。通过在 FVWM 的配置文件中加入如下配置:
AddToFunc InitFunction + I Exec exec dex -a
在初始化的时候启动应用;
参考
FVWM 简明使用指南
FVWM/Screenshots
dpkg -L fvwm | grep bin/ | awk -F’/’ ‘{print $4}’