1 个不稳定版本
0.5.0 | 2023 年 11 月 15 日 |
---|
#20 在 #wm
在 leftwm 中使用
32KB
58 行
重要提示:LeftWM 从 0.4.0 版本开始将配置语言从 TOML
更改为 RON
。请使用 leftwm-check --migrate-toml-to-ron
来迁移您的配置,并访问 wiki 了解更多信息。
目录
为什么选择 Left
LeftWM 是一个用 Rust 编写的平铺窗口管理器,旨在稳定且高效。LeftWM 被设计为 只做一件事,做好这件事: 成为窗口管理器。LeftWM 遵循以下座右铭
LeftWM 不是一个合成器。
LeftWM 不是一个锁屏。
LeftWM 不是一个栏。但,有很多好的栏。通过主题,选择一个就像设置一个符号链接一样简单。
因为您可能想要的不仅仅是黑色屏幕,LeftWM 围绕主题的概念构建。通过主题,您可以选择不同的栏、合成器、背景、颜色、 dock 和任何让您快乐的东西。
LeftWM 从一开始就是为了支持多个屏幕和超宽显示器而构建的。默认键绑定支持超宽显示器和多个屏幕。
LeftWM 的核心概念/功能之一是主题化
LeftWM 有两种配置文件
-
LeftWM 配置文件: LeftWM 的配置针对您个人,不会因不同的主题而改变。这些设置包括键绑定、工作区位置和桌面/标签的名称。这些设置可以在
~/.config/leftwm/config.toml
中找到。 -
主题配置文件: 您桌面的外观是不同的。尝试新的外观和感觉很有趣。调整和自定义外观(也就是所谓的 ricing)很有趣。与他人分享,让他们也能体验您出色的桌面!LeftWM 就是围绕这个概念构建的。通过将这些设置抽离到主题中,您现在可以轻松地调整、切换和分享您的体验。此配置分散在
theme.toml
和主题文件夹内相关的文件中。
注意: 一些示例配置和主题可以在共享目录中找到,例如 /usr/share/leftwm
,适用于基于 Arch 的 disros。
依赖项
虽然 LeftWM 的依赖项很少,但主题的情况并不总是如此。主题通常需要以下内容来安装。然而,这取决于主题的作者,可能有所不同。
LeftWM 依赖项列表
- xorg(运行时,构建):特别是 libx11、xrandr、xorg-server、libxinerama
- sh(运行时):任何 POSIX 兼容的 shell,用于启动和关闭文件
- rust(构建):>= 1.70.0
- bash(可选):大多数可用的主题都使用 bash,尽管脚本可能转换为任何 POSIX 兼容的 shell
主题常见依赖项列表
依赖项 (git) |
Ubuntu 20.4.1 sudo apt install {} |
Arch sudo pacman -S {} |
Fedora 33 sudo dnf install {} |
PKGS |
---|---|---|---|---|
feh | feh | feh | feh | feh |
compton | compton | picom | compton | compton |
picom | 手动 ** | picom | picom | picom |
polybar | 手动 ** | polybar | polybar | polybar |
xmobar | xmobar | xmobar | xmobar | xmobar |
lemonbar | lemonbar | paru -S lemonbar* | 手动 ** | lemonbar |
conky | conky | conky | conky | conky |
dmenu | dmenu | dmenu | dmenu | dmenu |
* 您可以使用您喜欢的任何 AUR 包装器。请参阅 paru 和 yay。
** 请参阅 git 页面(第一列中的链接)了解如何手动安装这些内容
使用包管理器安装
Gentoo(《GURU》)
sudo layman -a guru && sudo emerge --sync
sudo emerge --ask --verbose x11-wm/leftwm
Archlinux(《AUR》)
paru -S leftwm
paru 是一个类似于 yay 的 AUR 辅助工具,但用 Rust 编写。
Fedora(《copr》)
sudo dnf copr enable th3-s4lm0n/leftwm -y && sudo dnf install leftwm
NetBSD(《官方仓库》)
pkgin install leftwm
或者,如果您更喜欢从源代码构建
cd /usr/pkgsrc/wm/leftwm
make install
Void(《XBPS》)
sudo xbps-install -S leftwm
Cargo(《crates.io”)
cargo install leftwm
如果您使用 crates.io 安装 LeftWM,则需要在想要通过显示管理器(GDM、SSDM、LightDM 等)登录 LeftWM 时将链接到 xsession 桌面文件。
sudo cp PATH_TO_LEFTWM/leftwm.desktop /usr/share/xsessions
另请参阅 构建选项 了解更多功能选项,特别是如果您不使用 systemd
或想使用自己的热键守护程序(如 sxhkd
)。
OpenBSD(《OpenBSD”)
目前 LeftWM 仍未通过 OpenBSD 软件包管理器打包,但可以通过 Cargo 安装。
cargo install leftwm --no-default-features --features lefthk
leftwm-config
尚未移植到OpenBSD,因为它需要每晚的Rust编译器来构建。默认配置是在LeftWM首次启动时生成的。
要使用xenodm
启动LeftWM,请在您的~/.xsession
中添加以下内容。确保删除或注释掉之前的窗口管理器的exec
。
exec dbus-launch ~/.cargo/bin/leftwm >> ~/.cache/leftwm.log 2>&1
手动安装(无包管理器)
使用 LightDM、GDM、LXDM 等图形登录
-
依赖项:Rust、Cargo
-
克隆存储库并进入目录
git clone https://github.com/leftwm/leftwm.git cd leftwm
-
构建leftwm
cargo build --profile optimized
更多选项请参阅构建选项部分。
-
将leftwm可执行文件复制到/usr/bin文件夹
sudo install -s -Dm755 ./target/optimized/leftwm ./target/optimized/leftwm-worker ./target/optimized/lefthk-worker ./target/optimized/leftwm-state ./target/optimized/leftwm-check ./target/optimized/leftwm-command -t /usr/bin
-
将leftwm.desktop复制到xsessions文件夹
sudo cp leftwm.desktop /usr/share/xsessions/
现在您应该能在可用的窗口管理器列表中看到LeftWM。在此阶段,登录时可能只会看到一个简单的黑色屏幕。为了获得更个性化的外观,请安装一个主题。
可选的开发安装
如果您目标是持续构建leftwm并保持与最新版本同步,您可能更喜欢将leftwm可执行文件创建为符号链接而不是复制。如果您选择以这种方式安装,请确保不要移动构建目录,因为这会破坏您的安装。
请注意,如果您想以另一个构建配置文件构建leftwm,您必须更改--profile <配置文件名>
选项以及目标文件夹为target/<配置文件名-name>
。当前可用的有dev
、release
和optimized
。
-
依赖项:Rust、Cargo
-
克隆存储库并进入目录
git clone https://github.com/leftwm/leftwm.git cd leftwm
-
构建leftwm
# With systemd logging (view with 'journalctl -f -t leftwm-worker') cargo build --profile optimized
更多选项请参阅下面的构建选项。
-
创建符号链接
sudo ln -s "$(pwd)"/target/optimized/leftwm /usr/bin/leftwm sudo ln -s "$(pwd)"/target/optimized/leftwm-worker /usr/bin/leftwm-worker sudo ln -s "$(pwd)"/target/optimized/lefthk-worker /usr/bin/lefthk-worker sudo ln -s "$(pwd)"/target/optimized/leftwm-state /usr/bin/leftwm-state sudo ln -s "$(pwd)"/target/optimized/leftwm-check /usr/bin/leftwm-check sudo ln -s "$(pwd)"/target/optimized/leftwm-command /usr/bin/leftwm-command
-
将leftwm.desktop复制到xsessions文件夹
sudo cp leftwm.desktop /usr/share/xsessions/
现在您应该能在可用的窗口管理器列表中看到LeftWM。在此阶段,登录时可能只会看到一个简单的黑色屏幕。为了获得更个性化的外观,请安装一个主题。
重新构建开发安装
-
现在,如果您想获取leftwm的最新版本,请在您的构建目录中运行以下命令
git pull origin main
-
构建leftwm
# With systemd logging (view with 'journalctl -f -t leftwm-worker') cargo build --profile optimized
-
然后按以下快捷键重新加载leftwm
Mod + Shift + R
可选的构建功能
由于LeftWM
的目标是越来越模块化,因此在编译时可以选择一些功能
使用带有附加标志的cargo
--no-default-features --features=
,然后从以下功能中选择逗号分隔的选择
功能 | 信息 | 默认 |
---|---|---|
lefthk | 内置的热键守护进程,如果您构建时没有选择此项,请确保您有自己的(例如sxhkd )来管理任何快捷键,如果您选择此选项构建,请确保安装了lefthk-worker 二进制文件 |
✔ |
journald-log | 记录到journald ,依赖于systemd |
✔ |
sys-log | 使用标准系统日志 | ✘ |
file-log | 记录到/tmp/leftwm/<启动日志文件的日期和时间> |
✘ |
示例
# With `lefthk` and logging to `sys-log`
cargo build --profile optimized --no-default-features --features=lefthk,sys-log
# Without `lefthk` and logging to file
cargo build --profile optimized --no-default-features --features=file-log
还有多个优化级别。这些由cargo配置文件指定,当前可用的有dev
、release
和optimized
。dev和release配置文件是cargo使用的默认配置文件,而optimized配置文件建议用于生产构建。
示例
# With the dev profile
cargo build --profile dev
# With the release profile
cargo build --profile release
使用 Makefile
为了方便,我们还提供了一个Makefile,其中包含以下规则
make ... | 信息 |
---|---|
all | 意味着build 和test |
test | 运行与GitHub上CI相同的测试 |
test-full | 与test 相同,但还包含严格的clippy lint |
test-full-nix | 与test-full 相同,但还编译nix包,从而实现CI检查的完整表示 |
build | 默认使用optimized cargo配置文件构建;请阅读构建输出以了解如何更改配置文件。 |
clean | 清除所有构建文件 |
install | 通过将二进制文件复制到/usr/bin 进行安装,同时将leftwm.desktop 文件放置在/usr/share/xsession 中,并清除构建文件 |
install-linked | 通过符号链接安装,复制 leftwm.desktop ,不进行清理 |
卸载 | 从 /usr/bin 中移除 leftwm-* 文件和 leftwm.desktop 文件 |
注意:对于 build
、install
和 install-linked
,您可以通过添加 profile=<profile-name>
参数来指定要使用的构建配置。当前可用的配置有 dev
、release
和 release-optimized
。
使用 startx 或 slim 等登录方式启动
确保这是您的 .xinitrc
文件的末尾
# .xinitrc
exec dbus-launch leftwm
在某些发行版(如Archlinux)中,环境变量是通过 /etc/X11/xinit/xinitrc.d
的来源设置的,如 Arch 文档 中所述,请确保您按以下方式复制默认的 xinitrc
cp /etc/X11/xinit/xinitrc ~/.xinitrc
注意:在这种情况下,没有必要通过 dbus-launch
启动 leftwm,有时甚至可能导致像 gnome-keyring
这样的服务失败。在这种情况下,只需使用
# .xinitrc
exec leftwm
主题化
如果您希望在登录时看到除了黑色屏幕之外的内容,请选择一个主题
使用 LeftWM-Theme
leftwm-theme update
leftwm-theme install NAME_OF_THEME_YOU_LIKE
leftwm-theme apply NAME_OF_THEME_YOU_LIKE
不使用 LeftWM-Theme
mkdir -p ~/.config/leftwm/themes
cd ~/.config/leftwm/themes
ln -s PATH_TO_THE_THEME_YOU_LIKE current
LeftWM 随包附带了一些默认主题。还有一个 社区仓库 用于共享主题。
注意:leftwm 现在使用 RON 作为其默认的配置语言。请考虑将您的 toml 配置迁移。
配置
您可以配置键绑定、默认修饰键和许多其他选项
使用 LeftWM-Config
leftwm-config -n # Generate new config
leftwm-config # Open configuration file in $EDITOR
leftwm-config -t # Edit configuration via TUI (Beta)
不通过编辑文件
~/.config/leftwm/config.ron
注意:当 leftwm 或 leftwm-check 首次运行时,将自动生成配置文件。
注意:leftwm 现在使用 RON 作为其默认的配置语言。请考虑将您的 toml 配置迁移。
默认键绑定
键绑定 | 描述 |
---|---|
Mod + (1-9) | 切换到桌面/标签 |
Mod + Shift + (1-9) | 将焦点窗口移动到桌面/标签 |
Mod + W | 切换每个屏幕的桌面。桌面 [1][2] 切换到 [2][1] |
Mod + Shift + W | 将窗口移动到另一个桌面 |
Mod + (⬆️⬇️) | 在当前工作区中聚焦不同的窗口 |
Mod + Shift + (⬆️⬇️) | 在当前工作区中移动不同的窗口 |
Mod + Enter | 将选定的窗口移动到当前工作区堆栈的顶部 |
Mod + Ctrl + (⬆️⬇️) | 在不同的布局之间切换 |
Mod + Shift + (⬅➡) | 在不同的工作区之间切换 |
Mod + Shift + Enter | 打开终端 |
Mod + Ctrl + L | 锁定屏幕 |
Mod + Shift + X | 退出 LeftWM |
Mod + Shift + Q | 关闭当前窗口 |
Mod + Shift + R | 重新加载 LeftWM 和其配置 |
Mod + p | 使用 dmenu 启动应用程序 |
注意:虽然我们鼓励您使用 Alacritty,但 LeftWM 将将您的默认终端设置为列表中找到的第一个终端(按顺序排列)
- Alacritty
- Termite
- Kitty
- URXVT
- RXVT
- ST
- ROXTerm
- Eterm
- XTerm
- Terminator
- Terminology
- Gnome Terminal
- XFCE4 Terminal
- Konsole
- UXTerm
- Guake
浮动窗口
您可以选择在任何窗口之间切换平铺或浮动模式。
键绑定 | 描述 |
---|---|
Mod + 鼠标拖动 | 将平铺窗口切换到浮动模式 |
Mod + 右键鼠标拖动 | 调整窗口大小 |
将窗口拖动到平铺上 | 将浮动窗口切换到平铺模式 |
Mod + Shift + (1-9) | 将浮动窗口切换到平铺模式 |
工作空间
默认情况下,工作空间与屏幕之间是一对一的关系,但这是可配置的。您可能有多种原因想要更改此设置,但主要原因是为了超宽显示器。您可能希望在一个屏幕上拥有两个甚至三个工作空间。
以下是一个示例配置,更改工作空间的定义方式 (~/.config/leftwm/config.toml)
workspaces: [
( y: 0, x: 0, height: 1440, width: 1720 ),
( y: 0, x: 1720, height: 1440, width: 1720 ),
],
您可以可选地为定义的工作空间指定一个ID。如果您想在主题中为每个工作空间分配不同的边距设置,这非常有用。
workspaces: [
( y: 0, x: 0, height: 1440, width: 1720, id: 0 ),
( y: 0, x: 1720, height: 1440, width: 1720, id: 1 ),
],
注意 您不必为每个工作空间定义一个ID,但如果您为某个工作空间分配了ID,则所有随后定义且未指定ID的工作空间将分配一个从当前分配给任何工作空间的最大ID开始递增的ID。在上面的示例中,如果第二个工作空间未定义为ID = 0,则它将被分配ID = 2。在创建或自定义主题时请注意这一点。
标签/桌面
默认标签为1-9。您可以在配置文件中设置标签列表来重命名它们。
以下是一个示例配置,更改可用标签列表。注意:标签导航(Mod + #)不会根据标签名称更改。
tags: ["Web", "Code", "Shell", "Music", "Connect"],
布局
默认情况下,所有布局都是启用的。布局种类繁多,您可能只想启用您使用的布局。为此,请在config.toml文件中添加布局部分。这将只启用您指定的布局。
示例
layouts: ["MainAndHorizontalStack", "GridHorizontal", "Fibonacci", "EvenVertical", "EvenHorizontal", "CenterMain", "CenterMainFluid"],
您还可以在单独的工作空间上指定布局,这对于具有不同宽高比或方向的显示器非常有用。
示例
workspaces: [
( id: 0, y: 480, x: 0, height: 1600, width: 3840,
layouts = ["CenterMain", "CenterMainBalanced", "EvenHorizontal"]),
( id: 1, y: 0, x: 3840, height: 2560, width: 1440,
layouts = ["MainAndHorizontalStack", "EvenVertical"]),
],
注意 在定义每个工作空间的布局时,您需要明确定义工作空间ID。
LeftWM符合EWMH
默认布局是Layout枚举中描述的所有类型。
故障排除
问题 | 描述 | 解决方案 |
---|---|---|
LeftWM未在登录管理器中列出 | 您可能需要将xsessions文件添加到正确的文件夹中。 | 见安装 |
不存在config.toml文件 | LeftWM不一定附带config.toml 。您至少需要运行一次LeftWM来生成它。 |
尝试以下操作:leftwm-worker |
Config.toml无法解析 | LeftWM附带一个名为leftwm-check的二进制文件。它可能没有被AUR安装。 | 尝试以下操作:leftwm-check |
键绑定不起作用 | 您可能需要指定一个值或存在拼写错误。 | 见Wiki |
支持
LeftWM现在有一个Discord频道,以获得更快的帮助。
依赖项
~265–710KB
~17K SLoC