跳转至内容

Labwc

来自 ArchWiki

Labwc 代表 Lab Wayland Compositor (Lab Wayland 合成器)[1]。根据官方网站

Labwc 是一个基于 wlroots 的窗口堆叠式合成器,受 Openbox 启发。
它轻量级且独立,专注于良好地堆叠窗口和渲染一些窗口装饰。它依赖客户端来提供面板、截图、壁纸等功能,以创建完整的桌面环境
Labwc 在总体方法和编码风格上努力与 wlroots 和 sway 保持一致。
Labwc 只理解 wayland-protocols 和 wlr-protocols,无法通过 dbus、sway/i3-IPC 或其他技术进行控制。这样做的原因是,我们认为自定义 IPC 和协议会造成碎片化,阻碍 Wayland 的普遍采用。

安装

Labwc 可以通过包labwclabwc-gitAUR安装

默认的终端模拟器alacritty。在启动 labwc 之前,建议安装它或在配置文件中设置新的终端。

启动

与所有基于 wlroots 的合成器一样,为了访问您的 seat,labwc 在使用 systemd-logind(8) 时需要安装 Polkit,或者启用 seatd 服务并将您的用户添加到 seat 用户组

您可以在 Linux 控制台中启动 labwc,或者使用兼容 Wayland 的显示管理器

默认情况下,您可以按下 Super 键(通常是带有窗口图标的键)并加上 Enter 键来启动 alacritty。有关默认快捷键,请参阅 6. 使用

配置

本文或本节需要在语言、wiki 语法或风格方面进行改进。请参阅 Help:Style 获取参考。

原因:多个部分重复了上游文档。(请在Talk:Labwc讨论)

可以使用以下文件进行配置

  • ~/.config/labwc/rc.xml - 用于常规配置
  • ~/.config/labwc/menu.xml - 用于菜单布局
  • ~/.config/labwc/autostart - 启动 labwc 时执行的脚本
  • ~/.config/labwc/shutdown - 退出 labwc 时执行的脚本
  • ~/.config/labwc/environment - 用于会话中的环境变量
  • ~/.config/labwc/themerc-override - 用于附加主题设置

示例文件位于 /usr/share/doc/labwc/。特别是,/usr/share/doc/labwc/rc.xml.all 包含了所有默认配置。

有关更多详细信息,请参阅 labwc-config(5)

自启动

~/.config/labwc/autostart 包含一个在启动 labwc 时执行的 shell 脚本。例如

~/.config/labwc/autostart
kanshi >/dev/null 2>&1 &
fcitx5 -r -d #& is not needed for daemon
waybar --log-level off &
swaybg -i ~/Pictures/background.png >/dev/null 2>&1 &
lxqt-policykit-agent >/dev/null 2>&1 &
mako >/dev/null 2>&1 &
gammastep -O 3500 -b 0.8 >/dev/null 2>&1 &

键盘映射

可以通过在 ~/.config/labwc/environment 中设置环境变量来配置键盘布局。例如

~/.config/labwc/environment
XKB_DEFAULT_LAYOUT=us
XKB_DEFAULT_LAYOUT=us,de
XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle
XKB_DEFAULT_OPTIONS=grp:shift_caps_toggle

有关详细信息,请参阅 xkeyboard-config(7)

状态栏

可以使用像 waybarsfwbarAUR 这样的外部工具来显示状态栏。例如

~/.config/labwc/autostart
waybar --log-level off &

输出

可以使用像 wlr-randrkanshi 这样的外部工具来管理输出。例如

~/.config/labwc/autostart
wlr-randr --output HDMI-A-2 --preferred --pos 0,0 --output HDMI-A-1 --preferred --pos -1920,0

壁纸

可以使用像 swaybgwpaperdwbgAUR 这样的外部工具来显示背景。例如

~/.config/labwc/autostart
swaybg -c '#113344' >/dev/null 2>&1 &

自定义快捷键

通过添加带有 <action><keyboard><keybind> 部分来配置快捷键。例如

~/.config/labwc/rc.xml
<labwc_config>
  <keyboard>
    <keybind key="W-q"><action name="Close" /></keybind>
    <keybind key="A-Tab"><action name="NextWindow" /></keybind>
    <keybind key="W-Tab"><action name="ToggleMaximize" /></keybind>
    <keybind key="W-s"><action name="Execute" command="foot" /></keybind>
    <keybind key="W-a"><action name="Execute" command="fuzzel" /></keybind>
  </keyboard>
</labwc_config>

工作区

工作区在 <desktops> 部分配置,并通过快捷键切换。例如

~/.config/labwc/rc.xml
<labwc_config>
  <desktops number="4" />
  <keyboard>
    <keybind key="W-1"><action name="GoToDesktop" to="1" /></keybind>
    <keybind key="W-2"><action name="GoToDesktop" to="2" /></keybind>
    <keybind key="W-3"><action name="GoToDesktop" to="3" /></keybind>
    <keybind key="W-4"><action name="GoToDesktop" to="4" /></keybind>
  </keyboard>
</labwc_config>

Labwc 在 ~/.config/labwc/menu.xml 中遵循 Openbox 的菜单配置语法。例如

~/.config/labwc/menu.xml
<?xml version="1.0" ?>
<openbox_menu>
  <menu id="root-menu" label="">
    <item label="󰈹   Firefox">
      <action name="Execute" command="firefox" />
    </item>
    <item label="  Terminal">
      <action name="Execute" command="foot" />
    </item>
  </menu>
</openbox_menu>

此外,您还可以使用 Openbox 的菜单生成器,例如 archlinux-xdg-menuobmenu-generatorAUR

有关详细信息,请参阅 labwc-menu(5)

Themes

Labwc 大致遵循 Openbox 3 主题规范。您可以将主题安装到以下目录

  • ~/.local/share/themes/<theme-name>/openbox-3/
  • ~/.themes/<theme-name>/openbox-3/
  • /usr/share/themes/<theme-name>/openbox-3/
  • /usr/local/share/themes/<theme-name>/openbox-3/
  • /opt/share/themes/<theme-name>/openbox-3/

这些目录包含定义主题颜色和几何图形的 themerc 文件,以及按钮图标文件,如 close-active.svgclose-inactive.svg。图标文件支持 XBM、SVG 和 PNG 格式。

此外,您还可以使用 ~/.config/themerc-override 来覆盖主题条目。

labwc-artwork 提供了 labwc 的一些主题。

有关详细信息,请参阅 labwc-theme(5)

Xwayland

xorg-xwayland 在构建时启用 Xwayland 支持后会自动启动。要强制禁用它,请设置

~/.config/labwc/environment
WLR_XWAYLAND=

wlroots 渲染器

要使用其他渲染器(如 vulkan),请参阅 Wayland#使用其他渲染器为基于 wlroots 的合成器

参见