如何使用 xrandr 垂直移动我的第二个显示器?

如何使用 xrandr 垂直移动我的第二个显示器?

我在 Ubuntu 22.04 上运行 i3wm,并且有一个脚本,我可以手动触发该脚本来添加我的第二台显示器(如果已连接)。

if [[ $(xrandr | grep -c "HDMI1 connected") -eq 1 ]]; then
    xrandr --output eDP1 --primary \
           --output HDMI1 --auto --rotate right \
                          --right-of eDP1;
else
    xrandr --output eDP1 --primary;
    xrandr --output HDMI1 --off;
fi

这样,我的右侧就会出现第二个垂直显示屏,我可以使用它来滚动浏览长文档或电子邮件收件箱,同时将注意力集中在我面前的主屏幕上。

我承认,我有一个小小的抱怨,那就是两个屏幕在顶部对齐,这意味着如果我将光标从主屏幕的右上角移开,它会移到第二个屏幕的左上角。这似乎很合逻辑。

但是,两个显示器在底部对齐,并且我希望显示器也以这种方式对齐,即,如果我从主屏幕的右上角移动,它应该移动到右屏幕中间的某个位置。

我尝试在第二个显示器的行--pos XxY后添加一个参数--right-of eDP1,但 X 或 Y 值的组合似乎都无法将第二个屏幕移动到我想要的位置。

如果我在其他 DM 上登录,我可以拖放屏幕来gnome-control-center实现我想要的效果,但在 i3 上使用这些 X 和 Y 偏移从未起作用。

我在这里遗漏了什么?

答案1

您可以使用安得拉邦,这是 xrandr 的 GUI 前端。您可以直观地安排多个显示器。对我来说,它在 i3 中有效。

答案2

谢谢小费C. 阿克内西尔,我试了一下arandr,确实有效。它提示我也应该手动指定主显示器的坐标。

我还发现这--right-of会导致xrandr忽略坐标并使用对齐顶部的默认映射,所以我将其删除了。

以下是更新后的脚本:

if [[ $(xrandr | grep -c "HDMI1 connected") -eq 1 ]]; then
    xrandr --output eDP1 --primary --pos 0x1152 \
           --output HDMI1 --auto --rotate right \
                          --pos 1366x0;
else
    xrandr --output eDP1 --primary;
    xrandr --output HDMI1 --off;
fi

相关内容