如果与 xrandr 连接,如何将第二台显示器设置为唯一

如果与 xrandr 连接,如何将第二台显示器设置为唯一

我想将 HDMI 显示器设置为连接显示器时笔记本电脑的唯一输出。现在每次打开连接显示器的笔记本电脑时我都要手动更改它,但我想自动执行此操作。

我读到过可以使用 xrandr 更改分辨率和显示器,但我无法做到。有了它,我就可以在 bashrc 文件中写入命令来检查显示器是否已连接,如果已连接,则更改输出。关于如何操作有什么建议吗?

答案1

我发现最好的方法是使用 arandr 工具。等效命令是:xrandr --output HDMI-1-3 --off --output HDMI-1-2 --primary --mode 2560x1080 --pos 1920x0 --rotate normal --output HDMI-1-1 --off --output eDP-1-1 --mode 1920x1080 --pos 0x0 --rotate normal --output DP-1-2 --off --output DP-1-1 --off

答案2

我创建了一个脚本,如果还有其他显示器,则关闭第一个显示器(笔记本电脑Screens.sh$HOME

#!/bin/bash
xrandr --prop | grep "[^dis]connected" | cut --delimiter=" " -f1> "$HOME/currentScreens.txt"
echo "Number of active screens:" $(< "$HOME/currentScreens.txt" wc -l)
if [ $(< "$HOME/currentScreens.txt" wc -l) -gt 1 ]; then 
   echo "You have more than one screen active"
   xrandr --output $(cat "$HOME/currentScreens.txt" | awk 'NR==2') --primary
   echo "$(cat "$HOME/currentScreens.txt" | awk 'NR==2') is active"
   echo "I will disable the laptop one $(cat "$HOME/currentScreens.txt" | awk 'NR==1'); that is my job"
   xrandr --auto && xrandr --output $(cat "$HOME/currentScreens.txt" | awk 'NR==1') --off
   #dont turn off laptop:
   #xrandr --auto && xrandr --output $(cat "$HOME/currentScreens.txt" | awk 'NR==2') --right-of $(cat "$HOME/currentScreens.txt" | awk 'NR==1')
else
   echo "Nothing to do"
fi

之后我创建了一个screen.desktop文件:

[Desktop Entry]
Version=1.0
Exec=$HOME/Screens.sh
Name=Screen turn off
GenericName=Screen script
Comment=Turn off if more than 1 screen
Encoding=UTF-8
Terminal=true
Type=Application
Categories=Script;

并将其移动到文件夹:$HOME/.config/autostart

重启笔记本电脑。注意:如果你按照建议在 .bashrc 中写入该内容,则每次打开终端时都会调用它。

为了使其在任何文件夹中工作,请使用以下命令:

sudo ln -s /home/username/Screens.sh /usr/bin/Screens.sh
bash Screens.sh

相关内容