问题原因
截止发文时间,Todesk只支持X11协议,没有适配最新的Wayland协议,所以我们需要把窗口系统调整为X11才可以。
解决方法
修改配置文件,关闭wayland
sudo nano /etc/gdm3/custom.conf
1.把#WaylandEnable=false前的#号删掉
2.改成下图这个样子,然后Ctrl+x保存退出。
重启
reboot
重启完成后,todesk就可以远程连接了。
背景知识
我们能看到的图形界面(GUI)都依赖于显示服务器(Display Server)。显示服务器(Display Server)是任何图形用户界面(尤其是窗口系统)中的关键组件。它是图形用户界面(GUI)的基本组件,位于图形界面和内核之间。借助显示服务器(Display Server),我们才可以将计算机与GUI一起使用。没有它,我们将只能使用命令行界面(TTY)。
桌面环境(Gnome、KDE、Xfce、MATE等)使用了底层的显示服务器
因为X系列协议(X11表示X协议11代版本)已经存在很久了,有一些历史设计包袱。所以Linux为了更安全合理。Ubuntu 21.04之后,现在默认启用Wayland协议了。但是也正因为X11协议已经在市场上存续了很多年,所以很多软件还是基于X11实现的,这就导致了一些不兼容的问题。在未来或许还是Wayland协议的天下。
附主要区别
X11 应用程序
客户端应用需要移植到 Wayland 协议,或使用具有 Wayland 后端(如 GTK)的图形工具包,以便能够与基于 Wayland 的合成器和显示服务器原生工作。
无法移植到 Wayland 的传统 X11 应用程序将自动使用 Xwayland 作为 X11 传统客户端和 Wayland 合成器之间的代理。XWayland 同时作为 X11 服务器和 Wayland 客户端。Xwayland 的角色是将 X11 协议转换为 Wayland 协议或相反,从而使旧的X11应用程序可以与基于 Wayland 的显示服务器一起工作。
在 GNOME Shell on Wayland 上,Xwayland 在启动时自动启动,这样可确保大多数 X11 传统应用程序在使用 GNOME Shell on Wayland 时能按预期工作。但是,X11 和 Wayland 协议不同,因此某些依赖于 X11 特定功能的客户端在 Xwayland 下的行为可能有所不同。对于这些特定的客户端,您可以切换到 X.Org 显示服务器,如 第 2.8 节 “选择 GNOME 环境并显示协议” 所述。
libinput
Red Hat Enterprise Linux 8 使用一个新的统一输入堆栈 libinput,它管理所有常用设备类型,如鼠标、触摸板、触摸屏、平板电脑、轨迹球和指向棒。X.Org 和 GNOME Shell on Wayland 都使用此统一堆栈。
GNOME Shell on Wayland 对所有设备直接使用 libinput,并且没有可用的可切换驱动程序支持。在 X.Org 下,libinput 作为 X.Org libinput 驱动程序来实现,驱动程序支持概述如下。
鼠标、触摸屏、轨迹球、指向棒
Red Hat Enterprise Linux 8 对这些设备使用 X.Org libinput 驱动程序。Red Hat Enterprise Linux 7 中使用的 X.Org evdev 驱动程序可在需要时作为备用提供。
触摸板
Red Hat Enterprise Linux 8 对触摸板使用 X.Org libinput 驱动程序。X.Org synaptics 驱动程序(用于Red Hat Enterprise Linux 7 中的触摸板)不再提供。
图形平板
Red Hat Enterprise Linux 8 继续使用 X.Org wacom 驱动程序,它用于 Red Hat Enterprise Linux 7 中的平板设备。但是,在需要时可以使用 X.Org libinput 驱动程序。
其他输入设备
Red Hat Enterprise Linux 7 对不属于上述类别的其他输入设备使用 X.Org evdev 驱动程序。Red Hat Enterprise Linux 8 默认使用 X.Org libinput 驱动程序,但如果设备与 libinput 不兼容,则可以回退到 X.Org evdev 驱动程序。
手势
GNOME Shell on Wayland 支持新的触摸板和触摸屏手势。这些手势包括:
通过使用四个手指向上或向下拖拽来切换工作区。
通过将三个手指合拢来打开 Activities 概览。