以编程方式选择桌面环境

以编程方式选择桌面环境

我有一台装有 Ubuntu 20.04 LTS 的远程计算机,我可以通过 xrdp 对其进行图形访问。这台机器安装了 3 个桌面环境 - Gnome(即标准 Ubuntu 桌面)、KDE ​​Plasma 和 Xfce。我目前正在使用 KDE Plasma。

我的问题是:如果机器是远程的,我该如何切换到另一个桌面环境(例如 Gnome),唯一的访问方式是 SSH 和 RDP?也就是说,现在,当我通过 xrdp 连接到它时,它会自动运行 KDE Plasma,无法访问正常登录屏幕,您可以在其中选择另一个桌面环境会话。

答案1

显示管理器会向您显示正常的登录启动画面。xrdp 不会执行此操作,因为它会直接将您连接到桌面(在您的情况下是 KDE Plasma)。

您可以通过创建配置文件 ~/.Xclients 来设置另一个桌面环境,如下所示:

echo "gnome-session" > ~/.Xclients
chmod +x ~/.Xclients
sudo systemctl restart xrdp.service 

另一种方法是使用一款产品,它允许您在登录时选择桌面环境,就像您坐在服务器前面时通常所做的那样。例如,ThinLinc 就可以让您做到这一点。每个主要平台都有 ThinLinc 客户端,服务器安装程序非常简单,任何有一点经验的人都可以安装它。

/马丁

答案2

要更改 Ubuntu 20 中所有远程 xrdp 连接的默认桌面(就我而言,我想更改为 cinnamon 桌面),我发现我可以编辑 /etc/xrdp/startwm.sh 并替换以下内容:

test -x /etc/X11/Xsession && exec /etc/X11/Xsession
exec /bin/sh /etc/X11/Xsession

有了这个:

# test -x /etc/X11/Xsession && exec /etc/X11/Xsession
exec /bin/sh /usr/bin/cinnamon-session-cinnamon

这使得我的所有客户端 rdp 会话在连接时都会启动 cinnamon。通过 xrdp 登录时,每个用户 ID 都会有自己的 cinnamon 会话。请注意,xrdp 默认将 xrdp 限制为 50 个并发用户。只是指出可能存在与您启动哪个桌面无关的其他限制。

相关内容