为什么我喜欢用 bspwm 来做我的 Linux 窗口管理器
在 Fedora Linux 上安装、配置并开始使用 bspwm 窗口管理器。有些人喜欢重新布置家具。还有的人喜欢尝试新鞋或定期重新装修他们的卧室。我呢，则是尝试 Linux 桌面。在对网上看到的一些不可思议的桌面环境流口水之后，我对一个窗口管理器特别好奇：bspwm。我喜欢 i3 窗口管理器已经有一段时间了，我很喜欢它的布局方式和上手的便捷性。但 bspwm 的某些特性吸引了我。有几个原因让我决定尝试一下：它\_只是\_一个窗口管理器（WM）。它由几个易于配置的脚本管理。它默认支持窗口之间的间隙。可能是最需要指出的第一个原因是它只是一个窗口管理器。和 i3 一样，默认情况下没有任何图形化的那些花哨东西。你当然可以随心所欲地定制它，但\_你\_需要付出努力来使它看起来像你想要的。这也是它吸引我的部分原因。虽然它可以在许多发行版上使用，但在我这个例子中使用的是 Fedora Linux。安装 bspwmbspwm 在大多数常见的发行版中都有打包，所以你可以用系统的包管理器安装它。下面这个命令还会安装 sxkhd，这是一个 X 窗口系统的守护程序，它“通过执行命令对输入事件做出反应”；还有 dmenu，这是一个通用的 X 窗口菜单：dnf install bspwm sxkhd dmenu 因为 bspwm 只是一个窗口管理器，所以没有任何内置的快捷键或键盘命令。这也是它与 i3 等软件的不同之处。所以，在你第一次启动窗口管理器之前，请先配置一下 sxkhd：systemctl start sxkhd systemctl enable sxkhd 这样就可以在登录时启用 sxkhd，但你还需要一些基本功能的配置：curl https://raw.githubusercontent.com/baskerville/bspwm/master/examples/sxhkdrc --output ~/.config/sxkhd/sxkhdrc 在你深入了解之前，不妨先看看这个文件，因为有些脚本调用的命令可能在你的系统中并不存在。一个很好的例子是调用 urxvt 的 super + Return 快捷键。把它改成你喜欢的终端，尤其是当你没有安装 urxvt 的时候：# # wm independent hotkeys # # terminal emulator super + Return urxvt # program launcher super + @space dmenu_run 如果你使用的是 GDM、LightDM 或其他显示管理器（DM），只要在登录前选择 bspwm 即可。配置 bspwm当你登录后，你会看到屏幕上什么都没有。这不是你感觉到的空虚感。而是无限可能性！你现在可以开始摆弄桌面环境的所有部分了。你现在可以开始摆弄这些年你认为理所当然的桌面环境的所有部分了。从头开始构建并不容易，但一旦你掌握了诀窍，就会非常有收获。任何窗口管理器最困难的是掌握快捷键。你开始会很慢，但在很短的时间内，你就可以只使用键盘在系统中到处操作，在你的朋友和家人面前看起来像一个终极黑客。你可以通过编辑 ~/.config/bspwm/bspwmrc，在启动时添加应用，设置桌面和显示器，并为你的窗口应该如何表现设置规则，随心所欲地定制系统。有一些默认设置的例子可以让你开始使用。键盘快捷键都是由 sxkhdrc 文件管理的。还有更多的开源项目可以安装，让你的电脑看起来更漂亮，比如用于桌面背景的 Feh、状态栏的 Polybar、应用启动器的 Rofi，还有 Compton 可以给你提供阴影和透明度，可以让你的电脑看起来焕然一新。玩得愉快！via: https://opensource.com/article/21/4/bspwm-linux作者：Stephen Adams 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
当我开始在个人计算机上使用 Linux 时，首先令我兴奋的就是轻巧的窗口管理器，这主要是因为当时我的笔记本电脑只有有 32MB 的内存，其它的都运行不了了。接着我开始接触 xmonad 之类的平铺窗口管理器！我可以用键盘管理窗口了！它们是如此之快！我可以通过编写 Haskell 程序来配置 xmonad！我可以用各种有趣的方式自定义所有内容（例如使用 dmenu 作为启动器）！这些年来，我用过 3、4 个不同的平铺窗口管理器，它们都很有趣。大约 6 年前，我觉得配置平铺窗口管理器对我来说不再是一件有趣的事情，因此转而使用 Ubuntu 桌面环境 Gnome。（现在，我的笔记本电脑中的内存增加了 500 倍，这要快得多 :) ）我使用 Gnome 已有很长时间了，但是我仍然有点想念平铺窗口管理器。六个月前，一个朋友告诉我有关 PaperWM 的消息，它使你可以在 Gnome 中平铺窗口！我立即安装了它，并从那时起我一直在使用它。PaperWM：Gnome 下的平铺窗口管理PaperWM 的基本思想是：你想继续使用 Gnome（因为在 Gnome 中各种任务都能完成），但是你也希望使用平铺窗口管理器。它是一个 Gnome 扩展程序（而不是一个独立的窗口管理器），并且使用 Javascript。“Paper” 表示你的所有窗户都在一行中PaperWM 的主要想法是将所有窗口排成一行，这实际上与传统的平铺窗口管理器大不相同，在传统的平铺窗口管理器中，你可以按任意方式平铺窗口。这是我写这篇博客时在几个窗口之间切换/调整大小的 gif 图像（有一个浏览器和两个终端窗口）：PaperWM 的 Github README 链接了此视频：http://10gui.com/video/，它描述为一个类似的”线性窗口管理器“。我以前从未听说过这种组织窗口的方式，但是我喜欢它的简单性。如果要查找特定的窗口，只需向左/向右移动，直到找到它。我在 PaperWM 中所做的一切还有很多其他功能，但这是我使用的功能：在窗口之间左右移动（Super + ,、Super + .）按顺序向左/向右移动窗口（Super+Shift+,、Super+Shift+.）全屏显示窗口（Super + f）缩小窗口（Super + r）我喜欢不需要配置的工具我在笔记本上使用 PaperWM 已经 6 个月了，我真的很喜欢它！即使它是可配置（通过编写 Javascript 配置文件），我也非常欣赏它，它自带我想要的功能，我无需研究如何去配置。fish shell 是另一个类似的令人愉悦的工具，我基本上没有配置 fish（除了设置环境变量等），我真的很喜欢它的默认功能。via: https://jvns.ca/blog/2020/01/05/paperwm/作者：Julia Evans 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
通过键盘操作的 i3 平铺窗口管理器使用 Linux 桌面。Linux（和一般的开源软件）最美好的一点是自由 —— 可以在不同的替代方案中进行选择以满足我们的需求。我使用 Linux 已经很长时间了，但我从来没有对可选用的桌面环境完全满意过。直到去年，Xfce 还是我认为在功能和性能之间的平和最接近满意的一个桌面环境。然后我发现了 i3，这是一个改变了我的生活的惊人的软件。i3 是一个平铺窗口管理器。窗口管理器的目标是控制窗口系统中窗口的外观和位置。窗口管理器通常用作功能齐全的桌面环境 (如 GONME 或 Xfce ) 的一部分，但也有一些可以用作独立的应用程序。平铺式窗口管理器会自动排列窗口，以不重叠的方式占据整个屏幕。其他流行的平铺式窗口管理器还有 wmii 和 xmonad 。带有三个的 i3 屏幕截图为了获得更好的 Linux 桌面体验，以下是我使用和推荐 i3 窗口管理器的五个首要原因。1、极简艺术i3 速度很快。它既不冗杂、也不花哨。它的设计简单而高效。作为开发人员，我重视这些功能，因为我可以使用更多的功能以丰富我最喜欢的开发工具，或者使用容器或虚拟机在本地测试内容。此外， i3 是一个窗口管理器，与功能齐全的桌面环境不同，它并不规定您应该使用的应用程序。您是否想使用 Xfce 的 Thunar 作为文件管理器？GNOME 的 gedit 去编辑文本? i3 并不在乎。选择对您的工作流最有意义的工具，i3 将以相同的方式管理它们。2、屏幕实际使用面积作为平铺式窗口管理器，i3 将自动 “平铺”，以不重叠的方式定位窗口，类似于在墙上放置瓷砖。因为您不需要担心窗口定位，i3 一般会更好地利用您的屏幕空间。它还可以让您更快地找到您需要的东西。对于这种情况有很多有用的例子。例如，系统管理员可以打开多个终端来同时监视或在不同的远程系统上工作；开发人员可以使用他们最喜欢的 IDE 或编辑器和几个终端来测试他们的程序。此外，i3 具有灵活性。如果您需要为特定窗口提供更多空间，请启用全屏模式或切换到其他布局，如堆叠或选项卡式（标签式）。3、键盘式工作流程i3 广泛使用键盘快捷键来控制环境的不同方面。其中包括打开终端和其他程序、调整大小和定位窗口、更改布局，甚至退出 i3。当您开始使用 i3 时，您需要记住其中的一些快捷方式才能使用，随着时间的推移，您会使用更多的快捷方式。主要好处是，您不需要经常在键盘和鼠标之间切换。通过练习，您将提高工作流程的速度和效率。例如， 要打开新的终端，请按 <SUPER>+<ENTER>。由于窗口是自动定位的，您可以立即开始键入命令。结合一个很好的终端文本编辑器（如 Vim）和一个以面向键盘的浏览器，形成一个完全由键盘驱动的工作流程。在 i3 中，您可以为所有内容定义快捷方式。下面是一些示例：打开终端打开浏览器更改布局调整窗口大小控制音乐播放器切换工作区现在我已经习惯了这个工作形式，我已无法回到了常规的桌面环境。4、灵活i3 力求极简，使用很少的系统资源，但这并不意味着它不能变漂亮。i3 是灵活且可通过多种方式进行自定义以改善视觉体验。因为 i3 是一个窗口管理器，所以它没有提供启用自定义的工具，你需要外部工具来实现这一点。一些例子：用 feh 定义桌面的背景图片。使用合成器管理器，如 compton 以启用窗口淡入淡出和透明度等效果。用 dmenu 或 rofi 以启用可从键盘快捷方式启动的可自定义菜单。用 dunst 用于桌面通知。i3 是可完全配置的，您可以通过更新默认配置文件来控制它的各个方面。从更改所有键盘快捷键，到重新定义工作区的名称，再到修改状态栏，您都可以使 i3 以任何最适合您需要的方式运行。i3 与 rofi 菜单和 dunst 桌面通知。最后，对于更高级的用户，i3 提供了完整的进程间通信（IPC）接口，允许您使用偏好的语言来开发脚本或程序，以实现更多的自定义选项。5、工作空间在 i3 中，工作区是对窗口进行分组的一种简单方法。您可以根据您的工作流以不同的方式对它们进行分组。例如，您可以将浏览器放在一个工作区上，终端放在另一个工作区上，将电子邮件客户端放在第三个工作区上等等。您甚至可以更改 i3 的配置，以便始终将特定应用程序分配给它们自己的工作区。切换工作区既快速又简单。像 i3 中的惯例，使用键盘快捷方式执行此操作。按 <SUPER>+num 切换到工作区 num 。如果您养成了始终将应用程序组的窗口分配到同一个工作区的习惯，则可以在它们之间快速切换，这使得工作区成为非常有用的功能。此外，还可以使用工作区来控制多监视器环境，其中每个监视器都有个初始工作区。如果切换到该工作区，则切换到该监视器，而无需让手离开键盘。最后，i3 中还有另一种特殊类型的工作空间：the scratchpad（便笺簿）。它是一个不可见的工作区，通过按快捷方式显示在其他工作区的中间。这是一种访问您经常使用的窗口或程序的方便方式，如电子邮件客户端或音乐播放器。尝试一下吧如果您重视简洁和效率，并且不惮于使用键盘，i3 就是您的窗口管理器。有人说是为高级用户准备的，但情况不一定如此。你需要学习一些基本的快捷方式来度过开始的阶段，不久就会越来越自然并且不假思索地使用它们。这篇文章只是浅浅谈及了 i3 能做的事情。欲了解更多详情，请参阅 i3 的文档。via: https://opensource.com/article/18/8/i3-tiling-window-manager作者：Ricardo Gerardi 选题：lujun9972 译者：lixinyuxx 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
Linux 桌面生态中有多种窗口管理器（WM）。有些是作为桌面环境的一部分开发的。有的则被用作独立程序。平铺窗口管理器就是这种情况，它提供了一个更轻量级的自定义环境。本文介绍了五种这样的平铺窗口管理器供你试用。i3i3 是最受欢迎的平铺窗口管理器之一。与大多数其他此类 WM 一样，i3 专注于低资源消耗和用户可定制性。您可以参考 Magazine 上的这篇文章了解 i3 安装细节以及如何配置它。swaysway 是一个平铺 Wayland 合成器。它有与现有 i3 配置兼容的优点，因此你可以使用它来替换 i3 并使用 Wayland 作为显示协议。您可以使用 dnf 从 Fedora 仓库安装 sway：$ sudo dnf install sway如果你想从 i3 迁移到 sway，这里有一个迁移指南。QtileQtile 是另一个平铺管理器，也恰好是用 Python 编写的。默认情况下，你在位于 ~/.config/qtile/config.py 下的 Python 脚本中配置 Qtile。当此脚本不存在时，Qtile 会使用默认配置。Qtile 使用 Python 的一个好处是你可以编写脚本来控制 WM。例如，以下脚本打印屏幕详细信息：> from libqtile.command import Client > c = Client() > print(c.screen.info) {'index': 0, 'width': 1920, 'height': 1006, 'x': 0, 'y': 0}要在 Fedora 上安装 Qlite，请使用以下命令：$ sudo dnf install qtiledwmdwm 窗口管理器更侧重于轻量级。该项目的一个目标是保持 dwm 最小。例如，整个代码库从未超过 2000 行代码。另一方面，dwm 不容易定制和配置。实际上，改变 dwm 默认配置的唯一方法是编辑源代码并重新编译程序。如果你想尝试默认配置，你可以使用 dnf 在 Fedora 中安装 dwm：$ sudo dnf install dwm对于那些想要改变 dwm 配置的人，Fedora 中有一个 dwm-user 包。该软件包使用用户主目录中 ~/.dwm/config.h 的配置自动重新编译 dwm。awesomeawesome 最初是作为 dwm 的一个分支开发，使用外部配置文件提供 WM 的配置。配置通过 Lua 脚本完成，这些脚本允许你编写脚本以自动执行任务或创建 widget。你可以使用这个命令在 Fedora 上安装 awesome：$ sudo dnf install awesomevia: https://fedoramagazine.org/5-cool-tiling-window-managers/作者：Clément Verna 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
本篇文章会介绍如何在 Fedora 系统中，安装、配置、使用 i3 瓦片式桌面管理器。在我的文章 i3 桌面让 Linux 更好的 5 个理由，我分享了选择 i3 桌面管理器 作为一种 Linux 桌面替代方案的最主要五个理由。在本篇文章中，我将向大家展示，如何在 Fedora 28 上安装与简单配置 i3。1、 安装首先进入 Fedora 系统中，打开一个终端。使用 dnf 来安装需要的软件包，如下：[ricardo@f28i3 ~]$ sudo dnf install -y i3 i3-ipc i3status i3lock dmenu terminator --exclude=rxvt-unicode Last metadata expiration check: 1:36:15 ago on Wed 08 Aug 2018 12:04:31 PM EDT. Dependencies resolved. ================================================================================================ Package Arch Version Repository Size ================================================================================================ Installing: dmenu x86_64 4.8-1.fc28 fedora 33 k i3 x86_64 4.15-1.fc28 fedora 323 k i3-ipc noarch 0.1.4-12.fc28 fedora 14 k i3lock x86_64 2.9.1-2.fc28 fedora 33 k i3status x86_64 2.12-1.fc28 updates 62 k terminator noarch 1.91-4.fc28 fedora 570 k Installing dependencies: dzen2 x86_64 0.8.5-21.20100104svn.fc28 fedora 60 k ... Skipping dependencies/install messages Complete! [ricardo@f28i3 ~]$注意：在这个命令中，我排除了 rxvt-unicode 这个包，因为我更喜欢 terminator 作为我的终端模拟器。据用户目前的系统状态，在命令执行过程中可能会安装很多依赖。等待所有的依赖安装完成，之后重启你的电脑。2、 首次登录与初始化在你的机器重启之后，你便可以第一次体验 i3 了。在 GNOME 显示管理器（GDM）屏幕，选择你的用户名，之后先别着急输密码，点击下方的密码输入框下方的小齿轮，之后选择 i3 而不是 GNOME，像下方这样：输入你的密码，并点击 “Sign In”。在你第一次登入之后，会先看到 i3 的配置界面：点击回车键就会在 $HOME/.config/i3 生成一个配置文件，之后你可以通过这个配置文件来定制化 i3 的一些行为。在下一屏，你需要选择你的 Mod 键。这一步很关键，因为 Mod 键通常都会作为 i3 命令快捷键的发起键。按回车会选择 Win 键作为默认的 Mod 键。如果你的键盘没有 Win 键，用 Alt 键做替代，用方向键键选择后按回车键确认。现在你就登录到了 i3 的系统中。由于 i3 是一个极简的窗口管理器，你会看到一个黑屏窗口，以及屏幕底端显示的状态栏：接下来，让我们看看 i3 的如何实际使用。3、 基本的快捷键现在你已经登录到了 i3 会话中，你需要几个基本的快捷键来应对基本的操作。大多数的 i3 快捷键都会用到之前配置的 Mod 键。在下面的例子中，当我提到 Mod 键，请根据情况使用你定义的做替换。通常使用 Win 键或者 Alt 键。首先，要打开一个终端，可以使用 Mod+ENTER。重复打开几个终端，观察 i3 是如何自动将它们在桌面中排列。默认情况下， i3 会在水平的方向分割屏幕；使用 Mod + v 来垂直分割，再按 Mod + h 会恢复水平分割模式。当需要启动其他的应用，按 Mod + d 来打开 dmenu，一个简单的文字应用菜单。默认情况下，dmenu 会呈现出所有在你 $PATH 中设置的应用。使用方向键来选择你想启动的应用，同时你可以键入应用的名称，来缩小选择的范围，之后按回车键来启动选择的应用。如果你的应用没有提供退出的方法，你可以使用 i3 来关闭对应的窗口，通过按 Mod + Shift +q。注意，你可能会丢失未保存的工作内容。最后，当你想关闭会话并退出 i3，按 Mod + Shift +e。之后会在窗口的上方提示你是否退出。点击 “Yes, exit i3” 退出，或选择 “X” 来取消。这些就是 i3 中最基本的快捷键，如果想了解更多，请查阅官方文档。4、 替换 GDM使用 i3 窗口管理器会降低你操作系统的内存占用；然而，Fedora 依然会使用 GDM 作为登录屏。GDM 会载入几个与 GNOME 相关的库从而占用内存。如果你想进一步的降低你的内存占用，你可以使用一些更轻量级的显示管理器来替换 GDM，比如 lightdm ：[ricardo@f28i3 ~]$ sudo dnf install -y lightdm [ricardo@f28i3 ~]$ sudo systemctl disable gdm Removed /etc/systemd/system/display-manager.service. [ricardo@f28i3 ~]$ sudo systemctl enable lightdm Created symlink /etc/systemd/system/display-manager.service -> /usr/lib/systemd/system/lightdm.service. [ricardo@f28i3 ~]$之后重启你的机器来使用 Lightdm 的登录界面。现在你可以继续登录并使用 i3了。via: https://opensource.com/article/18/8/getting-started-i3-window-manager作者：Ricardo Gerardi 选题：lujun9972 译者：sd886393 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
“它能做什么 Windows 不能做的吗？”这是许多人在考虑使用 Linux 桌面时的第一个问题。虽然支撑 Linux 的开源哲学对于某些人来说就是一个很好的理由，但是有些人想知道它在外观、感受和功能上有多么不同。在某种程度上，这取决于你是否选择桌面环境或窗口管理器。如果你想要的是闪电般快速的桌面体验且向高效妥协, 那么经典桌面中的窗口管理器可能适合你。事实之真相“ 桌面环境 Desktop Environment （DE）”是一个技术术语，指典型的、全功能桌面，即你的操作系统的完整图形化布局。除了显示你的程序，桌面环境还包括应用程序启动器，菜单面板和小部件等组成部分。在 Microsoft Windows 中，桌面环境包括开始菜单、显示打开的程序的任务栏和通知中心，还有与操作系统捆绑在一起的所有 Windows 程序，以及围绕这打开的程序的框架（包括右上角的最小按钮、最大按钮和关闭按钮）。Linux 中有很多相似之处。例如，Linux Gnome 桌面环境的设计略有不同，但它共享了所有的 Microsoft Windows 的基本元素 - 从应用程序菜单到显示打开的应用程序的面板、通知栏、窗框式程序。窗口程序框架依赖于一个组件来绘制它们，并允许你移动并调整大小：它被称为“ 窗口管理器 Window Manager （WM）”。因为它们都有窗口，所以每个桌面环境都包含一个窗口管理器。然而，并不是每个窗口管理器都是桌面环境的一部分。你可以只运行窗口管理器，并且完全有这么做的需要。离开你的环境对本专栏而言，所谓的“窗口管理器”指的是可以那种独立进行的。如果在现有的 Linux 系统上安装了一个窗口管理器，你可以在不关闭系统的情况下注销，在登录屏幕上选择新的窗口管理器，然后重新登录。不过, 在研究你的窗口管理器之前，你可能不想这么做，因为你将会看到一个空白屏幕和稀疏的状态栏，而且它或许能、或许不能点击。通常情况下，可以直接在窗口管理器中直接启动终端，因为这是你编辑其配置文件的方式。在那里你会发现用来启动程序的按键和鼠标组合，你实际上也可以使用你的新设置。例如，在流行的 i3 窗口管理器中，你可以通过按下 Super 键（即 Windows 键）加 Enter 键来启动终端，或者按 Super + D 启动 应用程序启动器 app launcher 。你可以在其中输入应用程序名称，然后按 Enter 键将其打开。所有已有的应用程序都可以通过这种方式找到，一旦选择后，它们将会全屏打开。i3 还是一个平铺式窗口管理器，这意味着它可以确保所有的窗口均匀地扩展到屏幕，既不重叠也不浪费空间。当弹出新窗口时，它会减少现有的窗口，将它们推到一边腾出空间。用户可以以垂直或水平相邻的方式打开下一个窗口。功能亦敌亦友当然，桌面环境有其优点。首先，它们提供功能丰富、可识别的界面。每个都有其特征鲜明的风格，但总体而言，它们提供了普适的默认设置，这使得桌面环境从一开始就可以使用。另一个优点是桌面环境带有一组程序和媒体编解码器，允许用户立即完成简单的任务。此外，它们还包括一些方便的功能，如电池监视器、无线小部件和系统通知。与桌面环境的完善相应的，是这种大型软件库和用户体验理念独一无二，这就意味着它们所能做的都是有限度的。这也意味着它们并不总是非常可配置。桌面环境强调的是漂亮的外表，很多时候是金玉其外的。许多桌面环境对系统资源的渴求是众所周知的，所以它们不太喜欢低端硬件。因为在其上运行的视觉效果，还有更多的东西可能会出错。我曾经尝试调整与我正在运行的桌面环境无关的网络设置，然后整个崩溃了。而当我打开一个窗口管理器，我就可以改变设置。那些优先考虑安全性的人可能希望不要桌面环境，因为更多的程序意味着更大的攻击面 —— 也就是坏人可以突破的入口点。然而，如果你想尝试一下桌面环境，XFCE 是一个很好的起点，因为它的较小的软件库消除了一些臃肿，如果你不往里面塞东西，垃圾就会更少。乍一看，它不是最漂亮的，但在下载了一些 GTK 主题包（每个桌面环境都可以提供这些主题或 Qt 主题，而 XFCE 在 GTK 阵营之中），并且在“外观”部分的设置中，你可以轻松地修改。你甚至可以在这个集中式画廊中找到你最喜欢的主题。时间就是生命如果你想了解桌面环境之外可以做什么，你会发现窗口管理器给了你足够的回旋余地。无论如何，窗口管理器都是与定制有关的。事实上，它们的可定制性已经催生了无数的画廊，承载着一个充满活力的社区用户，他们手中的调色板就是窗口管理器。窗口管理器的少量资源需求使它们成为较低规格硬件的理想选择，并且由于大多数窗口管理器不附带任何程序，因此允许喜欢模块化的用户只添加所需的程序。可能与桌面环境最为显著的区别是，窗口管理器通常通过鼠标移动和键盘热键来打开程序或启动器来聚焦效率。键盘驱动的窗口管理器特别流畅，你可以启动新的窗口、输入文本或更多的键盘命令、移动它们，并再次关闭它们，这一切无需将手从 键盘中间 home row 移开。一旦你适应了其设计逻辑，你会惊讶于你能够如此快速地完成任务。尽管它们提供了自由，窗口管理器也有其缺点。最显著的是，它们是赤裸裸的开箱即用。在你可以使用其中一个之前，你必须花时间阅读窗口管理器的文档以获取配置语法，可能还需要更多的时间来找到该语法的窍门。如果你从桌面环境（这是最可能的情况）切换过来，尽管你会有一些用户程序，你也会缺少一些熟悉的东西，如电池指示器和网络小部件，并且需要一些时间来设置新的。如果你想深入窗口管理器，i3 有完整的文档和简明直白的配置语法。配置文件不使用任何编程语言 - 它只是每行定义一个变量值对。创建热键只要输入 bindsym、键盘绑定以及该组合启动的动作即可。虽然窗口管理器不适合每个人，但它们提供了独特的计算体验，而 Linux 是少数允许使用它们的操作系统之一。无论你最终采用哪种模式，我希望这个概观能够给你足够的信息，以便对你所做的选择感到自信 —— 或者有足够的信心跨出您熟悉的区域来看看还有什么可用的。作者简介：Jonathan Terrasi - 自 2017 年以来一直是 ECT 新闻网专栏作家。他的主要兴趣是计算机安全（特别是 Linux 桌面）、加密和分析政治和时事。他是全职自由作家和音乐家。他的背景包括在芝加哥委员会发表的关于维护人权法案的文章中提供技术评论和分析。via: http://www.linuxinsider.com/story/84473.html作者：Jonathan Terrasi 译者：geekpi 校对：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中国 荣誉推出