herbstluftwm 是什么?

herbstluftwm 是一个面向 X 窗口系统的手动平铺窗口管理器(manual tiling window manager)。它适合愿意用键盘管理窗口、希望配置能即时生效而不用重启的用户。它的核心特点是:配置在运行时通过 herbstclient 完成,配置文件本身只是一个启动时执行的脚本;所有配置项、窗口规则、虚拟桌面和快捷键都可以在不重启窗口管理器的情况下实时更新。

它的工作方式

手动平铺

与自动平铺不同,herbstluftwm 不会自动决定窗口怎么摆放。平铺算法基于“把 frame 分割成子 frame”的思路:一个 frame 可以继续分割,也可以放入窗口。屏幕空间因此可以被自由划分,布局由你主动控制。

tag:平铺层 + 浮动层

每个虚拟桌面称为一个 tag,它同时包含一个平铺层和一个浮动层:

  • 平铺层中的窗口填满屏幕空间
  • 浮动窗口可以自由放置在平铺层之上

平铺窗口和浮动窗口都能仅用键盘完成移动、缩放和聚焦。

虚拟显示器

屏幕空间可以自由划分为若干“monitor”,这些虚拟显示器不一定对应真实的(多)显示器硬件。例如一台高分辨率显示器可以拆成两个或多个虚拟显示器,从而同时查看两个虚拟桌面。所有显示器共享同一个 tag 池,并且可以用一次按键交换两个显示器的内容。

如何获取与上手

获取方式有三种:

  • 通过包管理器安装
  • 下载 tarball
  • 克隆 git 仓库:
git clone https://github.com/herbstluftwm/herbstluftwm

如果你是新手,官方建议从教程开始。doc/ 目录下有 herbstluftwm 和 herbstclient 的 manpage,也可以在线查看。

遇到问题去哪里

  • IRC:#herbstluftwm on irc.libera.chat,可以提问,也可以和其他用户、开发者交流
  • Reddit:r/herbstluftwm
  • GitHub issue tracker:提问或报告 bug
  • 邮件列表:[email protected];发送主题为 subscribe 的邮件到 [email protected] 订阅,或使用 Mailman 网页界面

官网还提供截图页面,可以在决定使用前先看看实际效果。

herbstluftwm.org