labwc/labwc
GitHub: labwc/labwc
labwc 是一个基于 wlroots 的轻量级 Wayland 堆叠式窗口合成器,灵感源自 Openbox,旨在为 Wayland 提供简洁稳定的独立窗口管理体验。
Stars: 2669 | Forks: 243
# labbc
Screenshot description ## 2. 构建和安装 要构建,只需运行: ``` meson setup build/ meson compile -C build/ ``` 运行时依赖包括: - wlroots, wayland, libinput, xkbcommon - libxml2, cairo, pango, glib-2.0 - libpng - librsvg >=2.46 (可选) - libsfdo (可选) - xwayland, xcb (可选) 构建依赖包括: - meson, ninja, gcc/clang - wayland-protocols 使用 `meson setup -Dxwayland=disabled build/` 禁用 xwayland 有关特定操作系统/发行版的详细信息,请参阅 [wiki]。 如果系统上找不到正确版本的 `wlroots`,构建设置将自动下载 wlroots 仓库。如果不希望使用此回退机制,请使用: ``` meson setup --wrap-mode=nodownload build/ ``` 要强制使用提供的 wlroots.wrap 文件,请运行: ``` meson setup --force-fallback-for=wlroots build/ ``` 如果在使用 wlroots.wrap 文件后进行安装,请使用以下命令以防止安装 wlroots 头文件: ``` meson install --skip-subprojects -C build/ ``` ## 3. 配置 用户配置文件位于 `${XDG_CONFIG_HOME:-$HOME/.config/labwc/}`,其中使用以下六个文件:[rc.xml]、[menu.xml]、[autostart]、[shutdown]、[environment] 和 [themerc-override]。 运行 `labwc --reconfigure` 以重新加载配置和主题。 有关逐步的初始配置指南,请参阅 [getting-started]。 ## 4. 主题 主题位于 `~/.local/share/themes/\/labwc/` 或符合 freedesktop XDG 目录规范的等效 `XDG_DATA_{DIRS,HOME}` 位置。
有关完整的主题选项,请参阅 [labwc-theme(5)] 或 [themerc] 示例文件。
要获取主题,请在互联网上搜索“openbox themes”并将它们放置在 `~/.local/share/themes/` 中。一些不错的起始点包括:
- https://github.com/addy-dclxvi/openbox-theme-collections
- https://github.com/the-zero885/Lubuntu-Arc-Round-Openbox-Theme
- https://github.com/BunsenLabs/bunsen-themes
## 5. 使用
```
./build/labwc [-s ]
```
如果你尚未创建 rc.xml 配置文件,默认绑定将是:
| 组合键 | 操作
| ------------------------- | ------
| `alt`-`tab` | 激活下一个窗口
| `alt`-`shift`-`tab` | 激活上一个窗口
| `super`-`return` | lab-sensible-terminal
| `alt`-`F4` | 关闭窗口
| `super`-`a` | 切换最大化
| `super`-`d` | 切换显示桌面
| `super`-`鼠标左键` | 移动窗口
| `super`-`鼠标右键` | 调整窗口大小
| `super`-`方向键` | 调整窗口大小以填满一半的输出
| `alt`-`空格` | 显示窗口菜单
| `XF86AudioLowerVolume` | pactl set-sink-volume @DEFAULT_SINK@ -5%
| `XF86AudioRaiseVolume` | pactl set-sink-volume @DEFAULT_SINK@ +5%
| `XF86AudioMute` | pactl set-sink-mute @DEFAULT_SINK@ toggle
| `XF86MonBrightnessUp` | brightnessctl set +10%
| `XF86MonBrightnessDown` | brightnessctl set 10%-
通过点击桌面可以打开根菜单。
### 5.1 游戏
从 `0.6.2` 版本开始支持光标限制。如果使用较旧的版本,请使用嵌套的 [gamescope] 实例来进行游戏。它可以通过游戏启动选项添加到 steam 中:`gamescope -f -- %command%`。
## 6. 集成
建议与 Labwc 配合使用的应用程序:
- 截图工具:[grim]
- 录屏工具:[wf-recorder]
- 背景图片:[swaybg]
- 面板:[waybar], [lavalauncher], [sfwbar], [xfce4-panel]
- 启动器:[bemenu], [fuzzel], [wofi]
- 输出管理器:[wlopm], [kanshi], [wlr-randr]
- 屏幕锁定:[swaylock]
- 伽马调整:[gammastep]
- 空闲屏幕阻止器:[sway-audio-idle-inhibit]
有关更多详细信息,请参阅 [integration]。
## 7. 翻译
默认的窗口栏菜单可以在 [weblate 平台](https://translate.lxqt-project.org/projects/labwc/labwc/) 上进行翻译。
[网站] [范围] [IRC 频道] [发布说明]
- [1. 项目描述](#1-project-description) - [1.1 这是什么?](#11-what-is-this) - [1.2 为什么](#12-why) - [1.3 为什么使用 Openbox 主题规范?](#13-why-the-openbox-theme-specification) - [1.4 宏观范围](#14-very-high-level-scope) - [1.5 视频](#15-videos) - [1.6 截图](#16-screenshot) - [2. 构建和安装](#2-build-and-installation) - [3. 配置](#3-configuration) - [4. 主题](#4-theming) - [5. 使用](#5-usage) - [5.1 游戏](#51-gaming) - [6. 集成](#6-integration) - [7. 翻译](#7-translations) ## 1. 项目描述 ### 1.1 这是什么? Labwc 代表 Lab Wayland Compositor,其中 lab 可以指代以下任何一种含义: - 轻量级且受 *box 启发 - 实验精神以及探索新领域 - 受 BunsenLabs 和 ArchLabs 启发 - 你最心爱的宠物 Labwc 是一个基于 [wlroots] 的 [Wayland] 堆叠式窗口合成器,其灵感来源于 [Openbox]。 它轻量且独立,专注于简单且良好的窗口堆叠,以及渲染一些窗口装饰。它采用无多余特效/装饰的方法,并拒绝诸如动画之类的功能。它依赖于客户端来提供面板、截图、壁纸等功能,以构建完整的桌面环境。 在总体方法和编码风格上,Labwc 尽量与 [wlroots] 和 [sway] 保持一致。 Labwc 不依赖任何特定的桌面环境、桌面 Shell 或会话,也不依赖任何 UI 工具包,例如 Qt 或 GTK。 ### 1.2 为什么? 首先,我们认为有必要开发一个简单的 Wayland 堆叠式窗口合成器,在极简主义和臃肿之间取得平衡,其程度大约相当于 X11 领域中诸如 Openbox 之类的窗口管理器。大多数核心开发者已经习惯了 X11 下诸如 Mate/XFCE 等低资源消耗的桌面环境,或者诸如 Openbox 之类的独立窗口管理器。Labwc 旨在通过小型且独立的组件(而不是庞大、集成的软件生态系统),使类似的配置在 Wayland 下成为可能。 其次,Wayland 社区迄今为止已经取得了令人瞩目的成就,我们希望帮助解决那些尚未解决的问题,使 Wayland 适用于更多人。我们认为标准化和减少碎片化是让 Wayland 得到更广泛采用的途径,并且希望能在这方面尽自己的一份力量,Labwc 仅支持 [wayland-protocols] & [wlr-protocols],并且不能通过 dbus、sway/i3/custom-IPC 或其他技术来控制。 第三,对我们来说,严格控制开发范围非常重要,以便合成器能够成熟并达到生产级质量。总的来说,与新功能相比,我们更看重健壮性、可靠性、稳定性和简洁性。提出新想法和新功能很容易,但维护和稳定它们却并非如此。 第四,我们认为合成器应该是“无聊的”,这样才能做好它的工作。在这方面,我们追随了 [metacity] 的脚步,它将自己描述为“适合成年人使用的无聊窗口管理器。许多窗口管理器就像棉花糖水果麦圈;而 Metacity 就像清淡的原味麦圈。” 最后,我们认为,针对所有这一切的优雅解决方案不需要让人感觉像是出自 90 年代的古板和像素化,而应该看起来具有现代感,并能实现尖端性能。 ### 1.3 为什么使用 Openbox 主题规范? 为了避免重新发明配置和主题语法,我们使用了 [Openbox] 3.6 规范。这并不意味着 Labwc 是一个 Openbox 的克隆版,而是说它的配置文件的外观和手感会让人感到熟悉。 此外,解析 GTK3+ 和 Qt 主题来渲染窗口装饰非常复杂,因此对于像 Labwc 这样的合成器来说,无论是在实现方面还是在用户修改方面,使用像 Openbox 和 xfwm 那样更简单的规范是更明智的选择。 考虑到 Openbox 规范保持不变的时间之久,以及它在轻量级发行版(如 LXDE、LXQt、BunsenLabs、ArchLabs、Mabox 和 Raspbian)中被广泛采用的程度,它可以说是一项稳定的标准。一些广泛使用的主题(例如 Numix 和 Arc)具有内置支持。 我们本可以发明一种全新的语法,但我们不想把精力花在这上面。 ### 1.4 宏观范围 在考虑功能时,非常强调代码的简洁性。 有关已实现功能的完整详细信息,请参阅 [scope]。 ### 1.5 视频 | 视频链接 | 日期 | 时长 | ------------------------- | ------------| ------- | [0.9.4-release-video] | 27-Feb-2026 | 3:19 | [0.8.3-release-video] | 03-Mar-2025 | 2:35 | [0.7.2-release-video] | 24-May-2024 | 3:17 | [0.6.0-release-video] | 31-Oct-2022 | 2:48 | [0.3.0-release-video] | 05-Aug-2021 | 1:10 | [pre-0.1.0-release-video] | 25-Feb-2021 | 3:42 ### 1.6 截图 必不可少的截图:
Screenshot description ## 2. 构建和安装 要构建,只需运行: ``` meson setup build/ meson compile -C build/ ``` 运行时依赖包括: - wlroots, wayland, libinput, xkbcommon - libxml2, cairo, pango, glib-2.0 - libpng - librsvg >=2.46 (可选) - libsfdo (可选) - xwayland, xcb (可选) 构建依赖包括: - meson, ninja, gcc/clang - wayland-protocols 使用 `meson setup -Dxwayland=disabled build/` 禁用 xwayland 有关特定操作系统/发行版的详细信息,请参阅 [wiki]。 如果系统上找不到正确版本的 `wlroots`,构建设置将自动下载 wlroots 仓库。如果不希望使用此回退机制,请使用: ``` meson setup --wrap-mode=nodownload build/ ``` 要强制使用提供的 wlroots.wrap 文件,请运行: ``` meson setup --force-fallback-for=wlroots build/ ``` 如果在使用 wlroots.wrap 文件后进行安装,请使用以下命令以防止安装 wlroots 头文件: ``` meson install --skip-subprojects -C build/ ``` ## 3. 配置 用户配置文件位于 `${XDG_CONFIG_HOME:-$HOME/.config/labwc/}`,其中使用以下六个文件:[rc.xml]、[menu.xml]、[autostart]、[shutdown]、[environment] 和 [themerc-override]。 运行 `labwc --reconfigure` 以重新加载配置和主题。 有关逐步的初始配置指南,请参阅 [getting-started]。 ## 4. 主题 主题位于 `~/.local/share/themes/\
标签:Openbox, Wayland, wlroots, 合成器, 客户端加密, 桌面环境, 窗口管理器, 预握手