让我们试试 dwm — 动态窗口管理器

如果您喜欢效率和极简主义,并且正在为您的 Linux 桌面寻找新的窗口管理器,那么您应该尝试 dwm — 动态窗口管理器。 dwm 用不到 2000 行标准代码编写,是一个速度极快但功能强大且高度可定制的窗口管理器。

您可以在平铺、单片和浮动布局之间动态选择,使用标签将窗口组织到多个工作区,并使用键盘快捷键快速导航。 本文帮助您开始使用 dwm。

安装

安装 dwm Fedora, 跑:

$ sudo dnf install dwm dwm-user

dwm 包自己安装窗口管理器,dwm-user 包显着简化了配置,本文稍后会解释。

此外,为了能够在需要时锁定屏幕,我们还将安装 slock — 一个简单的 X 显示储物柜。

$ sudo dnf install slock

但是,您可以根据个人喜好使用不同的。

快速开始

要启动 dwm,请在登录屏幕上选择 dwm-user 选项。

登录后,您会看到一个非常简单的桌面。 事实上,唯一会在顶部有一个栏列出我们代表工作区的九个标签和一个 []= 代表窗口布局的符号。

启动应用程序

在查看布局之前,首先启动一些应用程序,以便您可以随时使用布局。 可以通过按 Alt+p 并键入应用程序名称来启动应用程序,然后 Enter. 还有一个快捷键 Alt+Shift+Enter 用于打开终端。

现在一些应用程序正在运行,看看布局。

布局

默认提供三种布局:平铺布局、单片眼镜布局和浮动布局。

平铺布局,由 []= 在栏上,将窗口组织成两个主要区域:左侧的主区域和右侧的堆栈。 您可以通过按 Alt+t 激活平铺布局。

平铺布局背后的想法是,您将主窗口放在主区域中,同时仍然可以看到堆栈中的其他窗口。 您可以根据需要在它们之间快速切换。

要在两个区域之间交换窗口,请将鼠标悬停在堆栈区域中的一个上,然后按 Alt+Enter 将其与主区域中的交换。

单片眼镜布局,由 [N] 在顶栏上,使您的主窗口占据整个屏幕。 您可以通过按 Alt+m 切换到它。

最后,浮动布局让您可以自由移动和调整窗口大小。 它的快捷键是 Alt+f,顶栏上的符号是 ><>。

工作区和标签

每个窗口都分配给顶部栏中列出的标签 (1-9)。 要查看特定标签,请使用鼠标单击其编号或按 Alt+1..9。 您甚至可以通过使用鼠标辅助按钮单击它们的编号来一次查看多个标签。

通过使用鼠标突出显示它们并按 Alt+Shift+1..9,可以在不同标记之间移动窗口。

配置

为了使 dwm 尽可能简约,它不使用典型的配置文件。 相反,您修改代表配置的 C 头文件,然后重新编译它。 不过不用担心,在 Fedora 由于维护者在 Fedora.

首先,您需要使用类似于以下的命令将文件复制到您的主目录:

$ mkdir ~/.dwm
$ cp /usr/src/dwm-VERSION-RELEASE/config.def.h ~/.dwm/config.h

您可以通过运行 man dwm-start 获得确切的路径。

其次,只需编辑 ~/.dwm/config.h 文件。 作为一个 example,让我们配置一个新的快捷键来通过按 Alt+Shift+L 锁定屏幕。

考虑到我们已经安装了本文前面提到的 slock 包,我们需要在文件中添加以下两行以使其工作:

在 /* commands */ 注释下,添加:

static const char *slockcmd[] = { "slock", NULL };

并将以下行转换为静态 Key 键[]:

{ MODKEY|ShiftMask, XK_l, spawn, {.v = slockcmd } },

最后,它应该如下所示:(添加的行突出显示)

...
/* commands */
static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
static const char *termcmd[]  = { "st", NULL };
static const char *slockcmd[] = { "slock", NULL };

static Key keys[] = {
/* modifier                     key        function        argument */
{ MODKEY|ShiftMask,             XK_l,      spawn,          {.v = slockcmd } },
{ MODKEY,                       XK_p,      spawn,          {.v = dmenucmd } },
{ MODKEY|ShiftMask,             XK_Return, spawn,          {.v = termcmd } },
...

Save 文件。

最后,只需按 Alt+Shift+q 注销并再次登录。 dwm-user 包提供的脚本将识别您已更改主目录中的 config.h 文件并在登录时重新编译 dwm。 而且因为 dwm 非常小,它足够快,你甚至不会注意到它。

您现在可以尝试通过按 Alt+Shift+L 锁定屏幕,然后通过输入密码并按 Enter 重新登录。

结论

如果您喜欢极简主义并想要一个非常快速但功能强大的窗口管理器,那么 dwm 可能正是您一直在寻找的。 但是,它可能不适合初学者。 你可能需要做很多额外的配置才能让它像你喜欢的那样。

要了解有关 dwm 的更多信息,请参阅该项目的主页: https://dwm.suckless.org/.