Debian Linux / 树莓派4B原生buster系统配置双屏异显及触摸
xrandr查看显示器设备列表
xinput查看触摸设备列表
1.设置显示器分辨率和刷新频率
xrandr --output HDMI-1 --mode 1280x720 --rate 60 --rotate normal
xrandr --output HDMI-2 --mode 1920x1080 --rate 60 --rotate normal
2.设置位置
xrandr --output HDMI-2 --right-of HDMI-1 --auto
3.设置触摸
HDMI-1 = ELAN Touchscreen触摸屏(1280x720)
HDMI-2 = Silicon Integrated System Co. SiS HID Touch Controller触摸屏(1920x1080)
xinput map-to-output 7 HDMI-1
xinput map-to-output 6 HDMI-2
4.设置主屏显示器
xrandr --output HDMI-1 --auto --primary
5.高级组合设置
扩展模式
xrandr --auto --output HDMI-1 --pos 0x0 --mode 1280x720 --primary --output HDMI-2 --mode 1024x768 --right-of HDMI-1
复制模式
xrandr --auto --output HDMI-1 --pos 0x0 --mode 1280x720 --output HDMI-2 --same-as HDMI-1
单屏模式
xrandr --output HDMI-1 --pos 0x0 --mode 1280x720 --primary --output HDMI-2 --off
制作脚本自动识别显示器并配置好:
#!/bin/bash
edid="$(xrandr --prop | awk '$2 ~ "connected" {printf("%s%s", $1, "-"); for (i=1; i<=9; i++) {getline; printf("%s", $1)}; printf("%c", "-")}')"
echo $edid
hdmia="${edid#*HDMI-1-EDID:00ffffffffffff00}"
hdmib="${edid#*HDMI-2-EDID:00ffffffffffff00}"
hdmiac=${hdmia:0:4}
#echo $hdmiac
hdmibc=${hdmib:0:4}
#echo $hdmibc
echo "ILITEK ILITEK-TP=5a63,ELAN Touchscreen=0469"
idid="$(xinput)"
idid=${idid// /-}
idida="${idid#*ILITEK-ILITEK-TP}"
idida="${idida#*id=}"
ilitekid=${idida:0:1}
#echo $ilitekid
ididb="${idid#*ELAN-Touchscreen}"
ididb="${ididb#*id=}"
elanid=${ididb:0:1}
#echo $elanid
ilitekscr=""
elanscr=""
if [ "$hdmiac" == "5a63" ];then
ilitekscr=HDMI-1
elif [ "$hdmibc" == "5a63" ];then
ilitekscr=HDMI-2
else
ilitekscr=""
fi
if [ "$hdmiac" == "0469" ];then
elanscr=HDMI-1
elif [ "$hdmibc" == "0469" ];then
elanscr=HDMI-2
else
elanscr=""
fi
echo "ilitek screen=$ilitekscr"
echo "elan screen=$elanscr"
echo "xinput map-to-output $ilitekid $ilitekscr"
xinput map-to-output $ilitekid $ilitekscr
echo "xinput map-to-output $elanid $elanscr"
xinput map-to-output $elanid $elanscr
echo "xrandr --output $elanscr --right-of $ilitekscr --auto"
xrandr --output $elanscr --right-of $ilitekscr --auto
echo "xrandr --output $ilitekscr --auto --primary"
xrandr --output $ilitekscr --auto --primary
echo "xrandr --output $ilitekscr --mode 1280x720 --rate 60"
xrandr --output $ilitekscr --mode 1280x720 --rate 60
echo "xrandr --output $elanscr --mode 1280x720 --rate 60"
xrandr --output $elanscr --mode 1280x720 --rate 60