PekWM

出自 ArchWiki

pekwm 是由 Claes Nästen 编写的 X 窗口管理器。代码基于 aewm++ 窗口管理器,但它已经发展到完全不像 aewm++ 了。它还具有扩展的功能集,包括窗口分组(类似于 pwm,甚至 fluxbox),自动属性,xinerama 和支持密钥链的 keygrabber,等等。

安装

Install the pekwm 软件包。

启动

使用 xinit 运行 pekwm

配置 PekWM

主配置文件存储在文件 ~/.pekwm/config 中。它控制工作区和视口设置、菜单和停靠栏行为、窗口边缘阻力等等。在 pekwm 文档中有一个包含完整文档的示例文件。

菜单

PekWM 默认带有预先创建的菜单,存储在 ~/.pekwm/menu 中。这些菜单不反映现有系统,因此可能不准确。这些应该仅被视为示例。

MenuMaker

自动为已安装的应用程序设置菜单的一种方法是 menumaker。要为所有已安装的应用程序设置菜单,请使用以下命令运行它

mmaker --no-desktop pekwm
注意: 这不会覆盖现有的菜单文件。如果您想覆盖,请在上面的命令中添加 -f 标志。

要查看完整的选项列表,请运行 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

参见