多显示器的配置
背景
买了一个4K显示器,和之前的显示器组成双屏一起使用,
结果发现之前使用双屏时的配置都丢了,
重新整理记录一下.
文字和元素大小
polybar
基本都是在 [bar/xxx]
下调整
标题栏字体: font-0
标题栏高度: height
系统托盘图标大小: tray-maxsize
i3
仅仅需要调节标题栏字体的大小(Font for window titles)
rofi
文字大小: 配置文件中的 font
图标大小: 主题配置文件中定义
1 | element-icon { |
但目前主题文件中的定义会失效,需要在命令中使用
1 | rofi ... -theme-str 'element-icon {size: 1.0em;}' |
sddm
在 /etc/sddm.conf.d/
下新建文件,比如 hidpi.conf
,
然后配置如下
1 | [Wayland] |
多屏幕
sddm
如果需要将登陆界面锁定到一个屏幕上,
可以使用如下方法:
在 /usr/share/sddm/scripts/Xsetup
中写
1 | xrandr --output HDMI-0 --off |
然后在sddm的配置文件中指定执行该脚本
1 | [X11] |
目前不知为何,会和hiDPI冲突导致hiDPI无法开启
xrandr
较为初级的做法是使用 --left-of
等方位名词来指定显示器之间的位置关系.
不过更加方便的做法是使用 arandr
保存的配置文件.
目前的配置是
1 | xrandr --output DP-0 --primary --mode 3840x2160 --pos 0x0 --rotate normal \ |
尽管也可以,但目前无需在xrandr中指定屏幕的dpi.
i3
如果有将某workspace放到具体屏幕上的需求,则可以定义
1 | workspace 2 output HDMI-0 |
这里表示默认将 workspace 2 放到名为 HDMI-0的屏幕处,
具体有哪些屏幕,可以使用
- xrandr
- xrandr --query
- xrandr --listmonitors
等命令来查看
另外也可以使用命令完成
1 | i3-msg "move workspace 2 to output HDMI-0" |
polybar
最坑的就是polybar,默认不会在多个屏幕上显示,需要自己手动定义.
比如在配置文件中增加 [bar/mybar1]
, [bar/mybar2]
等
这些不同的bar的区别为
1 | monitor = ${env:MONITOR:DP-0} |
由于系统托盘只能显示一份,
因此只需要在一个里面定义 tray-position
, tray-maxsize
等
另外一定要在 [module/i3]
中设置
1 | pin-workspaces = true |
否则无法仅仅显示当前显示器上有哪些workspace.
会显示成混合的,非常奇怪.