PekWM
pekwm 是由 Claes Nästen 编写的 X 窗口管理器。代码基于 aewm++ 窗口管理器,但它已经发展到完全不像 aewm++ 了。它还具有扩展的功能集,包括窗口分组(类似于 pwm,甚至 fluxbox),自动属性,xinerama 和支持密钥链的 keygrabber,等等。
安装
启动
使用 xinit 运行 pekwm
。
配置 PekWM
主配置文件存储在文件 ~/.pekwm/config
中。它控制工作区和视口设置、菜单和停靠栏行为、窗口边缘阻力等等。在 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 将在屏幕上显示文本“正在重新配置”(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 启动时都会运行 - 包括在您在根菜单中运行“重启”时。命令仅在 Pekwm 启动后执行。
要添加应用程序,请使用以下结构
nameofapplication &
末尾的 &
至关重要,否则其后的任何内容都不会运行。这是一个例子
xfce4-panel & conky & hsetroot -fill ~/images/darkwood.jpg &
在使用此文件之前,您必须使其可执行。
变量
变量文件包含 PekWM 中使用的通用变量,默认条目应该清楚地解释了这一点
$TERM="xterm -fn fixed +sb -bg white -fg black"
每当变量 $TERM
在任何 PekWM 的配置文件中使用时,都会运行命令 xterm -fn fixed +sb -bg white -fg black
。例如将其更改为
$TERM="urxvt"
意味着 urxvt 将被加载用于终端命令。
自动属性
如果您希望某些应用程序在特定的工作区中打开,具有特定的标题,跳过(窗口)菜单,或自动制成选项卡,您可以在此处指定所有这些。它可能是 PekWM 中最令人困惑的配置文件,但它也是最强大的文件。可以在此文件中设置的内容太多,无法在此处全部列出,但在文档的自动属性页面中对其进行了详细说明。默认的 ~/.pekwm/autoproperties
文件还包含自动属性的速成课程。
主题
pekwm 的主题集合可在官方主页 [1] 上找到,更全面的主题列表可在 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 问题 #4。