kanshi
kanshi 允许您定义输出配置文件,这些配置文件在热插拔时自动启用和禁用。例如,这可以用于在笔记本电脑停靠时关闭其内置屏幕。
这是 Wayland 上与 autorandr 等工具对等的功能。kanshi 可以用于支持 wlr-output-management 协议的 Wayland 合成器。
安装
安装 kanshi 或 kanshi-gitAUR。
配置
创建 kanshi 配置文件
~/.config/kanshi/config
profile { output LVDS-1 disable output "Some Company ASDF 4242" mode 1600x900 position 0,0 } profile { output LVDS-1 enable scale 2 }
每个输出配置文件都用方括号分隔。它包含多个输出指令(其语法类似于 sway-output(5))。如果列出的所有输出都已连接,则将启用配置文件。
提示: 您可以使用命令
swaymsg -t get_outputs
获取输出名称和其他信息的列表。用法
运行命令
$ kanshi
请参阅 #使用 systemd 管理 kanshi 以了解自动化用法。
技巧和窍门
使用 systemd 管理 kanshi
按照 Sway#使用 systemd 管理 Sway 特定的守护进程 创建并启动 ~/.config/systemd/user/sway-session.target
(如果您尚未创建)。
创建 kanshi.service
文件
~/.config/systemd/user/kanshi.service
[Unit] Description=Dynamic output configuration for Wayland compositors Documentation=https://sr.ht/~emersion/kanshi BindsTo=sway-session.target [Service] Type=simple ExecStart=/usr/bin/kanshi [Install] WantedBy=sway-session.target
启用 此 用户单元。它仅在 Sway 运行时激活,并在 Sway 停止时停用。
故障排除
唤醒后外部显示器上的工作区编号从 2 开始
如果您有类似上面的配置,当您将第二个显示器连接到计算机时,第二个显示器中的工作区应从 1 开始,因为第一个显示器已禁用。当您第一次插入显示器或启动系统后,应该是这种情况。但是睡眠后,此数字可能为 2。在这种情况下,只需通过向 kanshi 配置文件添加指令将第一个工作区移动到此显示器即可
~/.config/kanshi/config
profile { output LVDS-1 disable output "Some Company ASDF 4242" mode 1600x900 position 0,0 # We've added this directive here (do not forget to update the output name): exec swaymsg workspace 1, move workspace to HDMI-A-1 } profile { output LVDS-1 enable scale 2 }