kanshi

出自 ArchWiki

kanshi 允许您定义输出配置文件,这些配置文件在热插拔时自动启用和禁用。例如,这可以用于在笔记本电脑停靠时关闭其内置屏幕。

这是 Wayland 上与 autorandr 等工具对等的功能。kanshi 可以用于支持 wlr-output-management 协议的 Wayland 合成器。

安装

安装 kanshikanshi-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
}

参见