Linux虚拟桌面[未完成]
[Manual]
After plugging in the hardware monitor again, it will not display, so it needs to be disabled
Temporarily cancel virtual display and restart
sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
reboot
Modify back to virtual display
sudo mv /etc/X11/xorg.conf.backup /etc/X11/xorg.conf
reboot
[automatic] Failed
Automatic Script Processing - Virtual and Physical Automatic Switching
xrandr --listmonitors
That's output.
Monitoring: 2
0:+* HDMI-1 1920/480x1080/270+0+0 HDMI-1
1: +HDMI-2 1920/480x1080/270+0+0 HDMI-2
详细步骤
步骤1:备份默认配置(如果尚未备份)
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
步骤2:创建虚拟显示器配置文件
在 /etc/X11/xorg.conf.d/ 目录下创建一个名为 99-virtual-display.conf 的文件,并使用 sudo 权限编辑它:
sudo nano /etc/X11/xorg.conf.d/99-virtual-display.conf
在编辑器中输入以下内容作为虚拟显示器的配置:
Section "Device"
Identifier "dummy"
Driver "dummy"
Option "DummyDevice" "true"
EndSection
Section "Monitor"
Identifier "dummy"
HorizSync 5.0 - 1000.0
VertRefresh 5.0 - 200.0
Modeline "800x600" 24.0 800 832 928 1024 600 604 608 624
EndSection
Section "Screen"
Identifier "dummy"
Device "dummy"
Monitor "dummy"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "800x600"
EndSubSection
EndSection
步骤3:创建udev规则
在 /etc/udev/rules.d/ 目录下创建一个名为 99-monitor-hotplug.rules 的文件,并使用 sudo 权限编辑它:
sudo nano /etc/udev/rules.d/99-monitor-hotplug.rules
在编辑器中输入以下内容作为 udev 规则:
ACTION=="change", SUBSYSTEM=="drm", ENV{HOTPLUG}=="1", RUN+="/usr/bin/systemctl start monitor-config.service"
步骤4:创建 systemd 服务
在 /etc/systemd/system/ 目录下创建一个名为 monitor-config.service 的文件,并使用 sudo 权限编辑它:
sudo nano /etc/systemd/system/monitor-config.service
在编辑器中输入以下内容作为systemd服务:
[Unit]
Description=Configure monitors based on presence
Requires=display-manager.service
After=display-manager.service
[Service]
Type=simple
ExecStart=/usr/local/bin/configure-monitors.sh
Restart=no
[Install]
WantedBy=multi-user.target
步骤5:编写监控显示器状态的脚本
创建一个名为 /usr/local/bin/configure-monitors.sh 的脚本文件,并使用 sudo 权限编辑它:
sudo nano /usr/local/bin/configure-monitors.sh
将以下内容复制到脚本文件中:
#!/bin/bash
HDMI_STATUS=$(cat /sys/class/drm/card1-HDMI-A-1/status 2>/dev/null)
if [ "$HDMI_STATUS" = "connected" ]; then
echo "HDMI 显示器已连接"
sudo ln -sf /etc/X11/xorg.conf.d/99-virtual-display.conf /etc/X11/xorg.conf
# 可以在此启动 RustDesk + 设置 DISPLAY
else
echo "HDMI 显示器未连接"
sudo rm -f /etc/X11/xorg.conf
# 启动虚拟显示器、Xvfb 或 X dummy 等
fi
sudo systemctl restart display-manager
exit 0
步骤6:赋予脚本执行权限
sudo chmod +x /usr/local/bin/configure-monitors.sh
步骤7:启用并启动 systemd 服务
sudo systemctl daemon-reload
sudo systemctl enable monitor-config.service
sudo systemctl start monitor-config.service

浙公网安备 33010602011771号