J'ai suivi le guide de Griffon pour installer xrdp sur Ubuntu 18.04 ( http://c-nergy.be/blog/?p=12761 ) mais modifié /etc/xrdp/startwm.sh
pour l'utiliser avec gnome-flashback-metacity
:
#test -x /etc/X11/Xsession && exec /etc/X11/Xsession
#exec /bin/sh /etc/X11/Xsession
#gnome-session
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check & gnome-panel
Je pouvais me connecter depuis le client Windows (session: Xorg) mais le bureau semble manquer de plusieurs éléments dans le menu Applications (en particulier Terminal), ainsi que les icônes d'indicateur. Je pourrais démarrer gnome-terminal en utilisant l'astuce "cliquer avec le bouton droit sur Accueil, ouvrir dans le terminal".
NB: Sur la base de mon expérience passée, je pense que cela pourrait être lié aux autorisations. Cependant, je ne peux pas dire si c'est un problème avec xrdp ou GNOME Flashback ou tout simplement une mauvaise configuration de ma part. Une connexion régulière sur la machine physique fonctionne très bien.
Actuel /etc/xrdp/startwm.sh:
#!/usr/bin/env bash
#
# This script is an example. You might need to edit this script
# depending on your distro if it doesn't work for you.
#fixGDM-by-Griffon
gnome-Shell-extension-tool -e [email protected]
gnome-Shell-extension-tool -e [email protected]
if [ -f ~/.xrdp-fix-theme.txt ]; then
echo 'no action required'
else
gsettings set org.gnome.desktop.interface gtk-theme 'Ambiance'
#gsettings set org.gnome.desktop.interface icon-theme 'Humanity'
gsettings set org.gnome.desktop.interface icon-theme 'Ubuntu-mono-dark'
echo 'check file for xrdp theme fix' >~/.xrdp-fix-theme.txt
fi
#
# Uncomment the following line for debug:
# exec xterm
# Execution sequence for interactive login Shell - pseudocode
#
# IF /etc/profile is readable THEN
# execute ~/.bash_profile
# END IF
# IF ~/.bash_profile is readable THEN
# execute ~/.bash_profile
# ELSE
# IF ~/.bash_login is readable THEN
# execute ~/.bash_login
# ELSE
# IF ~/.profile is readable THEN
# execute ~/.profile
# END IF
# END IF
# END IF
pre_start()
{
if [ -r /etc/profile ]; then
. /etc/profile
fi
if [ -r ~/.bash_profile ]; then
. ~/.bash_profile
else
if [ -r ~/.bash_login ]; then
. ~/.bash_login
else
if [ -r ~/.profile ]; then
. ~/.profile
fi
fi
fi
return 0
}
# When loging out from the interactive Shell, the execution sequence is:
#
# IF ~/.bash_logout exists THEN
# execute ~/.bash_logout
# END IF
post_start()
{
if [ -r ~/.bash_logout ]; then
. ~/.bash_logout
fi
return 0
}
#start the window manager
wm_start()
{
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
# debian
if [ -r /etc/X11/Xsession ]; then
pre_start
export DESKTOP_SESSION=gnome-flashback-metacity
export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
export GDMSESSION=gnome-flashback-metacity
export XDG_SESSION_DESKTOP=gnome-flashback-metacity
. /etc/X11/Xsession
post_start
exit 0
fi
# el
if [ -r /etc/X11/xinit/Xsession ]; then
pre_start
. /etc/X11/xinit/Xsession
post_start
exit 0
fi
# suse
if [ -r /etc/X11/xdm/Xsession ]; then
# since the following script run a user login Shell,
# do not execute the pseudo login Shell scripts
. /etc/X11/xdm/Xsession
exit 0
fi
pre_start
xterm
post_start
}
#. /etc/environment
#export PATH=$PATH
#export LANG=$LANG
# change PATH to be what your environment needs usually what is in
# /etc/environment
#PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
#export PATH=$PATH
# for PATH and LANG from /etc/environment
# pam will auto process the environment file if /etc/pam.d/xrdp-sesman
# includes
# auth required pam_env.so readenv=1
wm_start
exit 1
Session .x actuelle:
/usr/lib/gnome-session/run-systemd-session gnome-session-flashback.target
Il s'avère qu'il s'agit d'une mauvaise configuration et d'une mauvaise compréhension de la façon dont l'environnement Flashback GNOME est normalement initialisé. Après avoir parcouru les fichiers de configuration associés - /usr/lib/systemd/user/gnome-session.service
et /usr/share/xsessions/gnome-flashback-metacity.desktop
, J'ai proposé les modifications suivantes pour émuler le même comportement pour xrdp:
/etc/xrdp/startwm.sh:
# these global variables are set during normal login through gdm greeter
export DESKTOP_SESSION=gnome-flashback-metacity
export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
export GDMSESSION=gnome-flashback-metacity
export XDG_SESSION_DESKTOP=gnome-flashback-metacity
Ces exportations doivent être définies quelque part avant le . /etc/X11/Xsession
(lorsque la xsession démarre)
~/.xsession:
# starting the session through systemd, just like normal login through gdm greeter
/usr/lib/gnome-session/run-systemd-session gnome-session-flashback.target
Fonctionnement gnome-session
la commande entraînait directement la non-affichage des icônes d'indicateur (similaire à l'applet Gnome-Panel "Indicator Applet Complete" manque d'icônes ). Ainsi, bien que cela ait été résolu avec l'utilisation de run-systemd-session
, Je n'ai pas identifié la partie qui commence gnome-panel
(le panneau qui abrite les icônes d'indicateur) pendant la connexion normale, donc pour la xrdp xsession, j'ai dû ajouter gnome-panel
aux applications de démarrage.