我对 Linux 还很陌生。我在笔记本电脑(和扩展坞)上使用 Debian 12 和 SwayWM wayland 合成器。我有 2 个外部显示器连接到扩展坞,一个横向 (DVI) 显示器和另一个纵向 (VGA) 显示器。
我怎么能:
- 更改显示器的排列和旋转
- 将任何显示器的背景设置为图像
- 当我断开连接并再次连接时,保持一切的持久性
使用 Xubuntu,我可以使用 Xfce4 显示设置和 xfdesktop 轻松完成所有操作。但是如何在 Sway 中执行上述操作呢? (不过我不需要 GUI,因为我很少改变任何东西)
任何意见,将不胜感激。提前致谢。
答案1
sway 上的显示配置通过以下方式完成swaymsg
:
$ swaymsg output HDMI-A-1 mode 1280x720 position 0,0
swaymsg
是一种获取正在运行的sway
进程的信息并向其发送命令的工具。有关更多信息,请参阅man swaymsg
、man sway
、man sway.5
和man sway-output.5
。
背景/壁纸同样处理swaymsg
:
$ output DisplayPort-0 bg /home/user/Pictures/mybackground.png fill
中的完整选项列表man sway-output.5
。
可以简单地在 中添加或修改背景图像、布局、热键等的持久性~/.config/sway/config
,并且显示配置的持久性kanshi
。
- 安装
kanshi
- 创建一个或多个配置文件
- 创建
kanshi
用户服务(参见摇摆在 Arch 维基上)
作为用户服务运行时kanshi
,它将通过应用基于所连接的监视器的配置文件来响应监视器热插拔事件。例如,您可以在笔记本电脑上使用它,并具有仅配置内部显示器的“单独”配置文件,以及包含辅助显示器的“对接”配置文件,可按您希望的任何排列和方向进行配置。这kanshi(5
)配置文档非常稀疏,但很容易通过运行一些查询来整理,例如:
$ swaymsg -t get_outputs
Output HDMI-A-1 'LG Electronics LG SIGNAGE 0x00000101' (focused)
Current mode: 1920x1080 @ 60.000 Hz
Position: 0,0
Scale factor: 1.000000
Scale filter: nearest
Subpixel hinting: unknown
Transform: normal
Workspace: 1
Max render time: off
Adaptive sync: disabled
Available modes:
1920x1080 @ 60.000 Hz
1920x1080 @ 60.000 Hz
1920x1080 @ 60.000 Hz (16:9)
1920x1080 @ 50.000 Hz
1920x1080 @ 50.000 Hz (16:9)
1280x1024 @ 60.020 Hz
1280x960 @ 60.000 Hz
1280x720 @ 60.000 Hz
1280x720 @ 60.000 Hz (16:9)
1280x720 @ 50.000 Hz (16:9)
1024x768 @ 60.004 Hz
800x600 @ 60.317 Hz
720x576 @ 50.000 Hz (16:9)
720x576 @ 50.000 Hz (4:3)
720x480 @ 59.940 Hz (16:9)
720x480 @ 59.940 Hz (4:3)
$ cat .config/kanshi/config
profile myprofile {
output 'LG Electronics LG SIGNAGE 0x00000101' mode 1920x1080@60 position 0,0
}
profile someotherprofile {
output 'LG Electronics LG SIGNAGE 0x00000101' mode 1920x1080@60 position 0,0
output HDMI-A-2 mode 1920x1080@60 position 1920,0
}