Changer la résolution d'écran / la géométrie d'un serveur vnc sans randr sous Linux


9

Je veux changer la résolution / la géométrie de ma session VNC dynamiquement sans affecter les programmes qui y sont exécutés.

J'ai fait référence: Changer la résolution d'une session VNC sous Linux . Je n'ai pas l'autorisation root pour mettre à jour la nouvelle version de vncserver, donc la commande suivante ne fonctionne pas pour l'instant:

vncserver -geometry 1280x1024 -randr 1280x1024,1280x800

Pour l'instant, chaque fois que je veux changer la taille de l'écran d'un moniteur à un autre, je tue la session et la redémarre avec une -geometryoption modifiée . Pour cette raison, je dois perdre les programmes qu'il contient.

Existe-t-il un moyen de pirater le fichier qui stocke la géométrie et de modifier les valeurs pour changer la résolution? Je n'ai pas pu trouver un tel fichier. Dans mon dossier personnel, je vois les fichiers ci-dessous:

mgandhi@starbase:~/.vnc$ ll
total 12
-rwxr-xr-x 1 mgandhi bc  334 Jun 25 10:32 xstartup
-rw------- 1 mgandhi bc    8 Jun 25 10:32 passwd
-rw-r--r-- 1 mgandhi bc    6 Jun 25 11:08 starbase.radisys.com:23.pid
-rw-r--r-- 1 mgandhi bc 1664 Jun 25 11:08 starbase.radisys.com:23.log

Le contenu du xstartupfichier n'aide pas:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

... ici la xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &ligne reste constante pour toute résolution.

[Remarque: je vois qu'il xrandrest installé sur la machine Linux.]

Réponses:


4

Une solution "Hack": démarrez le vncserver sans aucune géométrie spécifiée

vncserver :1

Ensuite, je me connecte au vnc, et dans Fedora, je vais simplement aller dans Paramètres> Écrans> Inconnu 0 "et changer la résolution à la volée comme ceci. Prenez un peu de clic plutôt que de taper (DX), mais c'est facile.


1
Cette option aboutit à "ne peut pas déterminer la version de xrandr" et rien de plus: - / (Debian 8) mais semble intéressante.
m3nda

1

Définissez l'option de géométrie dans le fichier de configuration systemd (ou dans un autre script de démarrage applicable) ~ cet exemple fonctionne avec Fedora 28 (en supposant que les descripteurs de fichiers selinux sont fixes).

Remplacez USERNAME par le nom d'utilisateur réel:

cat /etc/systemd/system/vncserver@\:1.service

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=USERNAME

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i -geometry 1280x1024
PIDFile=/home/USERNAME/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

1

La réponse ci-dessus pour Fedora n'a pas fonctionné pour moi (RedHat Enterprise), j'ai pu accomplir ce dont vous avez besoin dans ces étapes:

1) Connectez-vous à votre session VNC (existante)

2) ouvrez un terminal et tapez: xrandr -s 1920x1080 (ou une autre géométrie / affichage pris en charge *)

pour afficher les affichages / résolutions pris en charge par randr, tapez:

xrandr (sans argument)

Facile et rien d'extraordinaire!


0

$HOME/.vnc/xstartupest le fichier que vous recherchez et oui, vous pouvez y définir la géométrie. Il devrait s'ajuster lors de la reconnexion sans borking votre session (pas sûr à 100% mais assez sûr).


1
Il serait plus utile de montrer que de dire.
scottlittle
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.