标签 dwm 下的文章

如果你崇尚效率和极简主义,并且正在为你的 Linux 桌面寻找新的窗口管理器,那么你应该尝试一下 动态窗口管理器 dynamic window manager dwm。以不到 2000 标准行的代码写就的 dwm,是一个速度极快而功能强大,且可高度定制的窗口管理器。

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

安装

要在 Fedora 上安装 dwm,运行:

$ sudo dnf install dwm dwm-user

dwm 包会安装窗口管理器本身,dwm-user 包显著简化了配置,本文稍后将对此进行说明。

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

$ sudo dnf install slock

当然,你可以根据你的个人喜好使用其它的锁屏。

快速入门

要启动 dwm,在登录屏选择 “dwm-user” 选项。

登录后,你将看到一个非常简单的桌面。事实上,顶部唯一的一个面板列出了代表工作空间的 9 个标签和一个代表窗户布局的 []= 符号。

启动应用

在查看布局之前,首先启动一些应用程序,以便你可以随时使用布局。可以通过按 Alt+p 并键入应用程序的名称,然后回车来启动应用程序。还有一个快捷键 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 的维护者提供的 dwm-user 包。

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

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

你可以通过运行 man dwm-start 来获取确切的路径。

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

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

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

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

添加下列行到 static Key keys[] 中:

{ 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 } },
 ...

保存文件。

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

你现在可以尝试按 Alt+Shift+L 锁定屏幕,然后输入密码并按回车键再次登录。

总结

如果你崇尚极简主义并想要一个非常快速而功能强大的窗口管理器,dwm 可能正是你一直在寻找的。但是,它可能不适合初学者,你可能需要做许多其他配置才能按照你的喜好进行配置。

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


via: https://fedoramagazine.org/lets-try-dwm-dynamic-window-manger/

作者:Adam Šamalík 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

窗口管理器 window manager 负责管理打开窗口的大小、布置以及其它相关的方面。

我喜欢极简。如果可能,我会尽量在一个终端下运行所有需要的程序。这避免了一些浮夸的特效占用我的资源或者分散我的注意力。而且,无论怎么调整窗口大小和位置却依旧无法使它们完美地对齐,这也让我感到厌烦。

出于对极简化的追求,我喜欢上了 Xfce 并且把它作为我主要的 Linux 桌面环境好几年了。直到后来我看了 Bryan Lunduke 关于他所使用的名为 Awesome窗口管理器的视频。Awesome 为用户整齐地布置好他们的窗口,看起来就是我想要的效果。但在我尝试之后却发现我难以把它配置成我喜欢的样子。于是我继续搜寻,发现了 xmonad,然而我遇到了同样的问题。xmonad 可以良好运作但为了把它配置成我理想中的样子我却不得不先通过 Haskell 语言这关。(LCTT 译注: AwesomeWM 使用 lua 语言作为配置语言,而 xmonad 使用 Haskell 语言)

几年后,我无意间发现了 suckless.org 和他们的窗口管理器 dwm

简而言之,一个窗口管理器,例如 KDE,Gnome 或者 Xfce,包括了许多部件,其中除了窗口管理器还有其它应用程序。窗口管理器负责管理打开窗口的大小、布置(以及其它窗口相关的方面)。不同的桌面环境使用不同的窗口管理器,KDE 使用 KWin,Gnome 2 使用 Metacity, Gnome 3 使用 Mutter, 以及 Xfce 使用 Xfwm。当然,你可以方便地替换这些桌面环境的默认窗口管理器。我已经把我的窗口管理器替换成 dwm,下面我说说我喜欢 dwm 的理因。

动态窗口管理

与 Awesome 及 xmonad 一样,dwm 的杀手锏是它能利用屏幕的所有空间为你自动排布好窗口。当然,在现在的大多数桌面环境中,你也可以设置相应的快捷键把你的窗口放置在屏幕的上下左右或者是全屏,但是有了 dwm 我们就不需要考虑这么多了。

dwm 把屏幕分为主区域和栈区域。它包含三种布局:平铺,单片镜(monocle)和浮动。平铺模式是我最常使用的,它把一个主要的窗口放置在主区域来获取最大关注力,而将其余窗口平铺在栈区域中。在单片镜模式中,所有窗口都会被最大化,你可以在它们之间相互切换。浮动模式允许你自由调整窗口大小(就像在大多数窗口管理器下那样),这在你使用像 Gimp 这类需要自定义窗口大小的应用时更为方便。

一般情况下,在你的桌面环境下你可以使用不同的工作空间(workspace)来分类你的窗口,把相近的应用程序放置在计划好的工作空间中。在工作时,我会使用一个工作空间来进行工作,同时使用另一个工作空间来浏览网页。dwm 有一个相似的功能叫标签。你可以使用标签给窗口分组,当你选中一个标签时,就能显示具有相应标签的窗口。

高效

dwm 能让你的计算机尽量地节省电量。Xfce 和其它轻量桌面环境在较旧或者较低性能的机器上很受欢迎,但是相比于 Xfce,dwm 在登录后只使用了它们 1/3 的资源(在我的例子中)。当我在使用一台 1 GB 内存的 Eee PC (LCTT 译注:华硕生产的一款上网本,已停产)时,占用 660 MB 和 230MB 的差别就很大了。这让我有足够的内存空间运行我的编辑器和浏览器。

极简

通常,我让我的应用程序彼此相邻:作为主窗口的终端(通常运行着 Vim)、用来查阅邮件的浏览器,和另外一个用来查阅资料或者打开 Trello 的浏览器窗口。对于临时的网页浏览,我会在另一个工作空间或者说是另一个 标签 中开启一个 Chromium 窗口。

来自作者的屏幕截图。

在标准的桌面环境下,通常会有一或两个面板占据着屏幕上下或者两侧的空间。我尝试过使用自动隐藏功能,但当光标太靠近边缘导致面板弹出造成的不便实在让我很厌烦。你也可以把它们设置得更小,但我还是更喜欢 dwm 的极简状态栏。

速度

评判速度时,我比较看重 dwm 在登录后的加载速度和启动程序的速度。如果使用更快、更新的计算机,你可能不会在意这些细节,但是对我来说,不同的桌面环境和窗口管理器会有明显的差距。我实在不想连这种简单的操作也要等待,它们应该一下子就完成。另外,使用键盘快捷键来启动程序比起用鼠标或者触控板要快一些,而且我不想让双手离开键盘。

小结

即便如此,我也不会向新手用户推荐 dwm。研究如何配置它需要耗费一些时间(除非你对你的发行版提供的默认配置感到满意)。我发现要让一些你想要的补丁正常工作可能会有点棘手,而且相应的社区也比较小(其 IRC 频道明确表示不提供补丁的手把手帮助)。所以,为了得到你想要的效果,你得有些付出才行。不过,这也是值得的。

而且你看,它就像 Awesome 一样 awesome。

(题图:cinderwick.ca)


作者简介:

Jimmy Sjölund - 他是 Telia Company 的高级 IT 服务经理,关注团队开发、探索敏捷工作流和精益工作流的创新导师,以及可视化方向爱好者。他同时也是一名开源布道者,先前从事于 Ubuntu Studio 和 Plume Creator。


via: https://opensource.com/article/17/7/top-4-reasons-i-use-dwm-linux-window-manager

作者:Jimmy Sjölund 译者:haoqixu 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出