跳转至内容

平铺式窗口管理器比较

来自 ArchWiki

本文提供了对最受欢迎的平铺 窗口管理器(相对于浮动窗口管理器)的公正对比。

比较表

下表列出了最受欢迎的平铺窗口管理器及其显著特性,为读者提供快速概览。

窗口管理器 编写语言 配置方式 管理风格 系统托盘支持 即时重载 信息栏 合成器 默认布局 像素使用/边框 外部控制 多(n)显示器行为 兼容 ICCCM/EWMH 维护
Awesome C Lua 动态式 内置 内置,支持图像和文本 外部 max, nh-stack (及反向), nv-stack (及反向), free 可变边框,可选 h-tab 标题 dbus (如果启用) XCB n-tags (工作区)。默认启用 9 个。示例 活跃
bspwm C 任意 混合 可将内部状态写入 FIFO 外部 v-split, h-split 可变边框 通过 bspc XCB 显示器持有桌面 活跃
dwm C C (重新编译) 动态式 可选补丁 可选 内置,读取根窗口名称 外部 v-stack, max 通过 dwmfifo Xlib n 个区域,每个区域固定 9 个工作区 活跃
FrankenWM C C (重新编译) 动态式 否,将信息输出到 stdout,可由外部监控器或面板(dzen2, conky 等)轻松解析和显示 外部 v-stack (及反向), h-stack (及反向), dual-v/h-stack, grid, fibonacci (vh-stack), rows, columns, max, free 可变边框 XCB 活跃
herbstluftwm C++ 任意 手动 外部 vertical, horizontal, grid, max, tabbed 1 像素边框 通过 herbstclient 执行命令 Xlib n 个区域,任何区域可见 9 个工作区 活跃
i3 C 文本 手动 i3bar 是 (布局得以保留) 文本管道传输至 i3bar (可使用 i3status/conky 等) 外部 tree, v-split, h-split, stacked, tabbed, max, 可无限嵌套 无, 1 像素或 2 像素, 可选标题栏, 可隐藏边缘边框 通过 ipc 执行命令 (或使用 ipc 的 i3-msg) XCB n 个区域 活跃
LeftWM Rust RON (用户设置) / 任意 (主题) 动态式 是,通过主题系统提供多种选项 外部 v-stack, columns, rows 根据主题可变 支持 _NET_ACTIVE_WINDOW 并向命名管道发送命令 Xlib 工作区和显示器不绑定。一个显示器对应多个工作区,或一个工作区对应多个显示器 活跃
Notion C, Lua Lua, 兼容 Ion3 配置 手动 trayion, stalonetray 可配置 ? h-tab, max 可配置边框和标题栏/标签页 EWMH, 任意可访问丰富内部 API 的 Lua 脚本 Xlib 每个显示器 n 个工作区。支持拓扑结构的即时更改 活跃
qtile Python Python 动态式 外部 tree, v-split, h-split, stacked, tabbed, max 无边框,但可自定义 钩子 (Hooks), 服务器模式 XCB 活跃
Ratpoison C 文本 手动 外部 max Xlib 活跃
Snapwm C 可重载文本 动态式 内置,读取根窗口名称 外部 nVertical, Fullscreen, nHorizontal, Grid, Center Stacking 可变边框, 无标题 Xlib 桌面数量在显示器之间均匀分布 活跃
Spectrwm C 文本 动态式 内置,读取用户脚本 nv-stack, nh-stack, max 1 像素边框, 无标题 XCB n 个区域, 任何区域可见 10 个工作区 活跃
Stumpwm Common Lisp Common Lisp 手动 StumpTray 外部 max SLIME 服务器 ("Swank") CLX (Xlib 等效) 活跃
xmonad Haskell Haskell 动态式 是,配合 xmonad-contrib 和外部管理器 nv-stack, nh-stack, max 可变边框, 无标题 通过 XMonad-Hooks-ServerMode Xlib n 个区域,任何区域可见 9 个工作区 是 / 通过 XMonad-Hooks-EwmhDesktops 活跃
提示 外部控制也可以通过像 xdotool 这样模拟击键的程序来实现。

管理风格

动态管理强调窗口布局的自动化管理,以追求速度和简单。手动管理则强调对手动调整布局和尺寸的掌控,虽然可以实现更精确的控制,但代价是需要花更多时间在移动和调整窗口大小上。

布局

许多平铺 WM 中出现了几种常见的布局类型,尽管术语略有不同。

  • max: 一个窗口全屏显示(带或不带状态栏、标题和边框)。又称:monocle (dwm, monsterwm)。
  • h-stack: 主区域在上半部分,其他窗口在下半部分水平堆叠。主区域可调整大小。可能会上下颠倒 (wmfs)。又称:bottom stack (dwm), bstack(monsterwm)。
  • v-stack: 主区域在左半部分,其他窗口在右半部分垂直堆叠。主区域可调整大小。可能会左右颠倒 (wmfs)。又称:tile (dwm, monsterwm)。
  • nh-stack: 允许主区域有 >=1 个窗口的 h-stack。又称:nbstack (dwm)
  • nv-stack: 允许主区域有 >=1 个窗口的 v-stack。又称:ntile (dwm)
  • mirror-h: 带有主区域上下两端堆叠的 nh-stack
  • mirror-v: 带有主区域左右两端堆叠的 nv-stack
  • h-tab: 一个窗口全屏显示,所有窗口标题水平显示(类似浏览器标签页)
  • v-tab: 一个窗口全屏显示,所有窗口标题垂直显示。又称:stack (wmii)。
  • h-split: 通过快捷键将当前窗口水平分割,为另一个窗口创建空间
  • v-split: 通过快捷键将当前窗口垂直分割,为另一个窗口创建空间
  • columns: 手动布局风格,将窗口视为属于垂直列
  • rows: 手动布局风格,将窗口视为属于水平行
  • grid: 基于规则的 NxM 网格的窗口位置和大小。可以是自动的(如 wmfs, monsterwm)或手动的(如 Subtle)。

按键绑定

平铺窗口管理器通常设计为完全使用键盘或键盘与鼠标结合使用。这是为了提高速度(伸手移动鼠标较慢)和易用性。合理的快捷键绑定对于实现快速高效的工作流至关重要。某些默认集比其他集更好,但通常用户可以根据需要重新绑定按键。

参见

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.