ToDesk 连接 Linux 后分辨率过低的解决方法
使用 ToDesk 远程连接 Linux 图形桌面时,有时会发现画面突然变得很模糊、桌面空间很小,分辨率可能退回到 1024×768 或更低。之前连接正常,但服务器重启、显示器断开或图形会话重新建立后,就可能出现这个问题。
这通常不是 ToDesk 的画质设置导致的,而是 Linux 当前桌面本身使用了较低的分辨率。ToDesk 只是把这个桌面画面传输出来。
一、查看当前显示输出和可用分辨率
在 Linux图形桌面中打开终端,执行:
bash
xrandr
输出内容通常类似:
text
Virtual-1-1 connected 1024x768+0+0
1920x1080 60.00
1366x768 60.00
1280x720 60.00
1024x768 60.00*
其中:
Virtual-1-1是当前显示输出名称,不同机器上也可能是HDMI-1、DP-1、Virtual-1等。connected表示该显示输出正在使用。- 带
*的分辨率是当前正在使用的分辨率。 1920x1080出现在列表中,说明系统已经支持该分辨率,可以直接切换。
二、临时切换到 1920×1080
假设显示输出名称是 Virtual-1-1,执行:
bash
xrandr --output Virtual-1-1 --mode 1920x1080 --rate 60
执行后,Linux 桌面通常会立即切换到 1920×1080,ToDesk 画面也会随之变化。
如果 ToDesk 没有马上刷新,可以:
- 在 ToDesk 顶部工具栏中选择"自适应"或"原始分辨率"。
- 断开当前远程连接,然后重新连接。
需要注意,Virtual-1-1 必须替换为自己运行 xrandr 时看到的实际输出名称。例如:
bash
xrandr --output HDMI-1 --mode 1920x1080 --rate 60
三、让设置在登录后自动生效
直接执行 xrandr 命令通常只对当前图形会话有效。Linux 重启或用户重新登录以后,可能再次恢复成低分辨率。
可以在系统的"启动应用程序"中添加下面的命令:
bash
sh -c 'sleep 5; xrandr --output Virtual-1-1 --mode 1920x1080 --rate 60'
这里增加 sleep 5,是为了等待 Linux 图形桌面和虚拟显示设备初始化完成。如果执行得太早,系统可能还找不到 Virtual-1-1。
在 Ubuntu 桌面中,可以搜索并打开"启动应用程序",然后填写:
- 名称:
设置桌面分辨率 - 命令:
sh -c 'sleep 5; xrandr --output Virtual-1-1 --mode 1920x1080 --rate 60' - 描述:
登录后自动将分辨率调整为 1920×1080
四、列表中没有 1920×1080 怎么办
如果运行 xrandr 后没有发现 1920×1080,可以手动创建显示模式。
首先生成参数:
bash
cvt 1920 1080 60
输出类似:
text
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
然后依次执行:
bash
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
xrandr --addmode Virtual-1-1 "1920x1080_60.00"
xrandr --output Virtual-1-1 --mode "1920x1080_60.00"
注意:--newmode 后的参数应以自己运行 cvt 得到的结果为准。
五、常见错误排查
1. 提示 output ... not found
错误示例:
text
xrandr: cannot find output "Virtual-1-1"
说明输出名称写错了,重新运行:
bash
xrandr
找到标记为 connected 的实际名称,再替换命令中的输出名称。
2. 提示 cannot find mode 1920x1080
说明当前输出没有注册这个显示模式。可以按照上一节使用 cvt、--newmode 和 --addmode 手动添加。
3. 提示 Can't open display
这通常是因为命令在 SSH、root 用户或非图形会话中执行,访问不到当前桌面。优先在 ToDesk 已连接的图形桌面终端中执行。
如果必须通过 SSH 操作,可以先确认桌面使用的显示编号和登录用户,再设置相应的 DISPLAY 与授权环境。不同桌面环境的配置可能不同,不建议直接照搬固定值。
4. 使用 Wayland 时命令不生效
xrandr 主要针对 X11。可以执行下面的命令查看当前会话类型:
bash
echo $XDG_SESSION_TYPE
- 输出
x11:可以正常使用本文的xrandr方案。 - 输出
wayland:应优先在系统"设置 → 显示器"中修改,或者在登录界面切换到 Xorg 会话后再使用xrandr。
六、为什么以前正常,现在突然变低
常见原因包括:
- Linux 或图形桌面重启后,显示配置没有持久保存。
- 服务器没有连接物理显示器,显卡没有读取到显示器的 EDID 信息。
- HDMI 欺骗器、显示器或视频线被移除。
- ToDesk 建立了新的虚拟显示设备,输出名称或默认模式发生变化。
- 图形驱动升级或桌面会话从 X11 切换到了 Wayland。
如果机器长期处于无显示器运行状态,除了配置自动启动命令,也可以考虑使用 HDMI 显示器欺骗器(Dummy Plug),让系统始终认为有一台支持 1920×1080 的显示器连接着。
总结
如果 xrandr 已经列出了 1920x1080,最简单的处理方式就是:
bash
xrandr --output Virtual-1-1 --mode 1920x1080 --rate 60
如果每次重启后都会恢复低分辨率,再把下面这条命令加入启动应用程序:
bash
sh -c 'sleep 5; xrandr --output Virtual-1-1 --mode 1920x1080 --rate 60'
这类问题的核心是调整 Linux 图形桌面的实际分辨率,而不只是修改 ToDesk 客户端的缩放或画质设置。