Kev*_*ter 6 linux remote-desktop x-windows gnome3 ubuntu-18.04
如何通过 XRDP 获得完整的 Ubuntu Gnome 体验而不是通用的 Gnome 体验?
当我从控制台登录时,我得到了 Gnome 的 Ubuntu 自定义:Dock 是一条从屏幕的一个边缘延伸到另一边缘的条纹,并且“设置”应用程序有一个 Dock 条目。
当我通过 XRDP 登录时,它看起来像通用 Gnome:扩展坞仅大到足以包含其图标,并且“设置”没有扩展坞条目。更重要的是,我的“Ubuntu”桌面上有一堆图标,这些图标在“通用”桌面上是不存在的。
我读过,“Ubuntu 停靠设置只能从 Ubuntu 定制的 GNOME 会话访问,而不是从默认的 GNOME 会话访问”,所以这就是为什么我认为我通过 XRDP 获得通用 GNOME。
gnome-session --session=ubuntu我使用chmod +x创建了一个 .xsession 。在创建之前.xsession,ps显示gnome-session-binary --session=ubuntu控制台会话和gnome-session-binaryXDRP 会话。创建.xsession(并重新启动)后,两个会话都包含--session=ubuntu,但 XRDP 会话仍然看起来像通用 Gnome,并且缺少我的桌面图标。
我检查了$XDG_CURRENT_DESKTOP。在控制台上是这样ubuntu:GNOME。在 XRDP 上它是“GNOME”。所以我启动了--session=ubuntu,但它似乎已经丢失了。
如何通过 XRDP 获得完整的 Ubuntu Gnome 体验而不是通用的 Gnome 体验?
小智 16
他们的 git repo 论坛上的一个帖子对此进行了介绍。激活完整桌面体验的一种相对简单的方法是编辑startwm.sh位于/etc/xrdp/startwm.sh其下的脚本,如下所示:
#!/bin/sh
# xrdp X session start script (c) 2015, 2017 mirabilos
# published under The MirOS Licence
if test -r /etc/profile; then
. /etc/profile
fi
if test -r /etc/default/locale; then
. /etc/default/locale
test -z "${LANG+x}" || export LANG
test -z "${LANGUAGE+x}" || export LANGUAGE
test -z "${LC_ADDRESS+x}" || export LC_ADDRESS
test -z "${LC_ALL+x}" || export LC_ALL
test -z "${LC_COLLATE+x}" || export LC_COLLATE
test -z "${LC_CTYPE+x}" || export LC_CTYPE
test -z "${LC_IDENTIFICATION+x}" || export LC_IDENTIFICATION
test -z "${LC_MEASUREMENT+x}" || export LC_MEASUREMENT
test -z "${LC_MESSAGES+x}" || export LC_MESSAGES
test -z "${LC_MONETARY+x}" || export LC_MONETARY
test -z "${LC_NAME+x}" || export LC_NAME
test -z "${LC_NUMERIC+x}" || export LC_NUMERIC
test -z "${LC_PAPER+x}" || export LC_PAPER
test -z "${LC_TELEPHONE+x}" || export LC_TELEPHONE
test -z "${LC_TIME+x}" || export LC_TIME
test -z "${LOCPATH+x}" || export LOCPATH
fi
if test -r /etc/profile; then
. /etc/profile
fi
test -x /etc/X11/Xsession && exec /etc/X11/Xsession
exec /bin/sh /etc/X11/Xsession
Run Code Online (Sandbox Code Playgroud)
注意:请勿删除并替换它,因为这会导致xrdp启动失败。sed例如,只需编辑该文件即可。这里我从第 4 行开始添加 3 行。它们将从第 4 行追加到第 6 行。
sudo sed -i '4 i\export XDG_CURRENT_DESKTOP=ubuntu:GNOME' /etc/xrdp/startwm.sh
sudo sed -i '4 i\export GNOME_SHELL_SESSION_MODE=ubuntu' /etc/xrdp/startwm.sh
sudo sed -i '4 i\export DESKTOP_SESSION=ubuntu' /etc/xrdp/startwm.sh
Run Code Online (Sandbox Code Playgroud)
最终文件如下所示:
#!/bin/sh
# xrdp X session start script (c) 2015, 2017 mirabilos \
# published under The MirOS Licence
export DESKTOP_SESSION=ubuntu
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
if test -r /etc/profile; then
. /etc/profile
fi
if test -r /etc/default/locale; then
. /etc/default/locale
test -z "${LANG+x}" || export LANG
test -z "${LANGUAGE+x}" || export LANGUAGE
test -z "${LC_ADDRESS+x}" || export LC_ADDRESS
test -z "${LC_ALL+x}" || export LC_ALL
test -z "${LC_COLLATE+x}" || export LC_COLLATE
test -z "${LC_CTYPE+x}" || export LC_CTYPE
test -z "${LC_IDENTIFICATION+x}" || export LC_IDENTIFICATION
test -z "${LC_MEASUREMENT+x}" || export LC_MEASUREMENT
test -z "${LC_MESSAGES+x}" || export LC_MESSAGES
test -z "${LC_MONETARY+x}" || export LC_MONETARY
test -z "${LC_NAME+x}" || export LC_NAME
test -z "${LC_NUMERIC+x}" || export LC_NUMERIC
test -z "${LC_PAPER+x}" || export LC_PAPER
test -z "${LC_TELEPHONE+x}" || export LC_TELEPHONE
test -z "${LC_TIME+x}" || export LC_TIME
test -z "${LOCPATH+x}" || export LOCPATH
fi
if test -r /etc/profile; then
. /etc/profile
fi
test -x /etc/X11/Xsession && exec /etc/X11/Xsession
exec /bin/sh /etc/X11/Xsession
Run Code Online (Sandbox Code Playgroud)
之后,systemctl restart xrdp.service或者重新启动你的机器,它应该可以正常工作。这是重新启动后我的 xrdp 会话。
| 归档时间: |
|
| 查看次数: |
24439 次 |
| 最近记录: |