PekWM
pekwm 是由 Claes Nästen 编写的一个 X 窗口管理器。其代码基于 aewm++ 窗口管理器,但经过充分演进,已不再像 aewm++。它还拥有扩展的功能集,包括窗口分组(类似于 pwm 甚至 fluxbox)、自动属性、xinerama 以及支持快捷键链的 keygrabber 等等。
安装
启动
使用 xinit 运行 pekwm。
配置 PekWM
主配置文件存储在 ~/.pekwm/config 中。它控制工作区和视口设置、菜单和 harbour 行为、窗口边缘阻力等。在 pekwm 文档中有一个包含完整说明的示例文件。
菜单
PekWM 默认自带预创建的菜单,存储在 ~/.pekwm/menu 中。这些菜单并不反映现有的系统,因此可能不准确。它们仅应被视为示例。
MenuMaker
自动为已安装应用程序设置菜单的一种方法是使用 menumaker。要设置所有已安装应用程序的菜单,请运行以下命令:
mmaker --no-desktop pekwm
要查看完整的选项列表,请运行 mmaker --help
现在你可以手动修改菜单文件,或者在安装新软件后简单地重新生成列表。
手动设置
菜单文件路径为 ~/.pekwm/menu。语法相当简单;一个简单的条目具有以下结构:
Entry = "NAME" { Actions = "Exec COMMAND" }
子菜单的语法如下:
Submenu = "NAME" {
Entry = "NAME" { Actions = "Exec COMMAND" }
Entry = "NAME" { Actions = "Exec COMMAND" }
}
要在菜单中添加分隔线,请使用以下内容:
Separator {}
PekWM 还支持动态菜单。这些是每次访问条目或子菜单时都会显示运行脚本输出结果的菜单项或子菜单。请检查每个菜单要求的具体语法,因为它们可能有所不同。
你可以找到用于 Gmail 和网络连接 的动态菜单,以及一个用于显示 日期和时间 的菜单。
过去曾有一个名为 pekwm_menu_tools 的项目,旨在为 pekwm 提供一套用于生成动态菜单的实用应用程序。
快捷键
热键设置存储在 ~/.pekwm/keys 中。该文件控制 PekWM 中使用的所有键盘绑定和快捷键链。你可以添加键盘绑定来启动程序或执行 PekWM 中的操作,例如显示菜单、移动窗口、切换桌面等。有关 pekwm 操作的完整列表,请参阅 相关文档。
你可以将多个操作分配给一个按键组合。为此,只需用分号分隔操作即可。这里有一个示例:
KeyPress = "Ctrl Mod1 R" { Actions = "Exec osdctl -s 'Reconfiguring'; Reload" }
当你按下 Ctrl+Alt+R 时,Pekwm 将在屏幕上显示文本 'Reconfiguring' (osdctl -s 'Reconfiguring') 并重新配置 (Reload)。(注意这需要安装 osdsh)
下一个示例将多媒体键绑定为降低音量:
KeyPress = "XF86AudioLowerVolume" { Actions = "exec amixer set Master 5%- unmute" }
你还可以创建按键“链”,例如以下代码:
Chain = "Ctrl Mod1 C" {
KeyPress = "Q" { Actions = "MoveToEdge TopLeft" }
KeyPress = "W" { Actions = "MoveToEdge TopCenterEdge" }
}
这将实现:如果你先按下 Ctrl+Alt+c 然后按下 q,则将活动窗口移至屏幕左上角;如果你按下 Ctrl+Alt+c 然后按下 w,则将窗口移至顶部中央边缘。
鼠标
鼠标设置存储在 ~/.pekwm/mouse 中。该文件的布局也相当直观。例如:
FrameTitle {
ButtonRelease = "1" { Actions = "Raise; Focus" }
}
意味着如果你在窗口的标题栏上释放按钮 1(通常是鼠标左键),该窗口将“提升”到其他窗口之上并成为焦点窗口。
PekWM 默认设置的一项功能是当鼠标移到窗口上时自动聚焦(与“点击聚焦”风格相反)。很多用户希望将其更改为更“传统”的方式。要更改此设置,请在文件中查找以下行并按照其说明操作(第一种情况有很多行,但第二种情况仅出现一次):
# Remove the following line if you want to use click to focus. # Uncomment the following line if windows should raise when clicked.
自启动
自动启动文件为 ~/.pekwm/start。如果你希望在每次启动 Pekwm 时显示壁纸或启动面板,可以在该文件中添加相应条目。但请注意,这些应用程序在每次启动 Pekwm 时都会运行 —— 包括你在根菜单中运行 Restart 时。命令仅在 Pekwm 启动后执行。
要添加应用程序,请使用以下结构:
nameofapplication &
末尾的 & 至关重要,否则其后的任何内容都将不会运行。这里有一个示例:
xfce4-panel & conky & hsetroot -fill ~/images/darkwood.jpg &
在使用此文件之前,你必须将其设置为 可执行。
变量
变量文件包含 PekWM 中使用的通用变量,默认条目应该解释得非常清楚:
$TERM="xterm -fn fixed +sb -bg white -fg black"
每当在 PekWM 的任何配置文件中使用变量 $TERM 时,将运行命令 xterm -fn fixed +sb -bg white -fg black。例如,将其更改为:
$TERM="urxvt"
这意味着终端命令将加载 urxvt。
自动属性 (Autoproperties)
如果你希望某些应用程序在特定的工作区打开、具有特定的标题、跳过(窗口)菜单或自动分标签组,可以在这里指定。这可能是 PekWM 中最令人困惑的配置文件,但也是最强大的文件。该文件中可以设置的内容太多,无法在此全部列出,但在 文档的 autoproperties 页面中有详细解释。默认的 ~/.pekwm/autoproperties 文件中也包含一个关于自动属性的快速入门指南。
Themes
在官方主页 [1] 上提供了一组 pekwm 主题,在 Box-Look.org 上可以找到更全面的主题列表,但它们并不总是针对当前版本的 pekwm 经过验证。
要安装主题,请将主题压缩包解压到以下主题路径之一:
- 全局:
/usr/share/pekwm/themes - 仅限用户:
~/.pekwm/themes
设置壁纸
在 pekwm 0.2.0 版本中,包含了一个名为 pekwm_bg 的背景设置应用程序。
设置缩放背景图像:
$ pekwm_bg Image image.png#scaled
设置 3 条水平线:
$ pekwm_bg LinezHors 33% #afadbf #9f9daf #afadbf
pekwm 0.1.X 版本不带背景设置应用程序,需要你使用单独的程序来设置桌面壁纸。请参阅 应用程序列表/其他#壁纸设置程序。
故障排除
使用 Nvidia TwinView 时,窗口最大化会跨越两个屏幕
编辑 ~/.pekwm/config 并查找该行:
HonourRandr = "True"
将其更改为:
HonourRandr = "False"
GTK 3 应用程序中滚动失效
尝试设置 环境变量 GDK_CORE_DEVICE_EVENTS。请参阅 pekwm issue #4。