Table des matières

X2Go : LXDE distant sur écran 4K (HiDPI)

Dernière mise à jour : août 2026

Problème

Client X2Go sur poste 4K (CachyOS/GNOME) : le contenu de la session LXDE distante s'affiche minuscule (pas de scaling HiDPI).

Points constatés :

Solution : script wrapper côté serveur

Sur le serveur (utilisateur de session, ex. maitre) :

mkdir -p ~/bin && cat > ~/bin/lxde-hidpi.sh << "EOF"
#!/bin/bash
export GDK_SCALE=2
export GDK_DPI_SCALE=0.5
export QT_SCALE_FACTOR=2
export XCURSOR_SIZE=48
echo "Xft.dpi: 192" | xrdb -merge
exec startlxde
EOF
chmod +x ~/bin/lxde-hidpi.sh

Rôle des variables :

Panneau LXDE : hauteur HiDPI

Le profil par défaut (/etc/xdg/lxpanel/LXDE/panels/panel) fixe height=26 — quasi invisible en 4K, et le panneau peut s'effondrer à une géométrie 20×20 après un changement de résolution RANDR (redimensionnement de la fenêtre X2Go). Symptôme : « plus de menu ».

Correctif persistant — profil utilisateur avec hauteur adaptée :

mkdir -p ~/.config/lxpanel/LXDE/panels
cp -n /etc/xdg/lxpanel/LXDE/panels/panel ~/.config/lxpanel/LXDE/panels/panel
sed -i 's/^    height=.*/    height=52/' ~/.config/lxpanel/LXDE/panels/panel

S'applique au prochain démarrage du panneau (nouvelle session ou relance).

Diagnostic de l'effondrement (depuis SSH, display de x2golistsessions, 3ᵉ colonne) :

DISPLAY=:50 xwininfo -root -children | grep -i lxpanel
# 20x20 = panneau effondré

Notes :

kill <pid_lxpanel>
DISPLAY=:50 GDK_SCALE=2 GDK_DPI_SCALE=0.5 XCURSOR_SIZE=48 setsid lxpanel --profile LXDE &

Configuration client

x2goclient → éditer le profil → onglet Session :

Attention au mode rootless : si le profil lance la commande comme application unique (rootless) au lieu de session de bureau, les fenêtres distantes — dont le panneau LXDE — apparaissent directement sur le bureau local, hors de la fenêtre x2goclient. Déroutant (le panneau distant semble être un panneau local). Vérifier que le type est bien un bureau ; en cas de doute, hostname dans un LXTerminal ouvert depuis ce panneau doit répondre le nom du serveur.

Application

Terminer toute session existante (les réglages ne s'appliquent qu'à la création) :

x2goterminate-session $(x2golistsessions | cut -d'|' -f2)

Puis se reconnecter : la nouvelle session est créée avec le scaling.

Dépannage

pid=$(pgrep -u maitre lxsession | head -1)
tr "\0" "\n" < /proc/$pid/environ | grep -E "GDK|QT_SCALE"