Ich möchte die Auflösung/Geometrie meiner VNC-Sitzung dynamisch ändern, ohne die darin laufenden Programme zu beeinträchtigen.
Ich verwies:Ändern der Auflösung einer VNC-Sitzung unter Linux. Ich habe keine Root-Berechtigung, um die neuere VNC-Server-Version zu aktualisieren, daher funktioniert der folgende Befehl derzeit nicht:
vncserver -geometry 1280x1024 -randr 1280x1024,1280x800
Wenn ich derzeit die Bildschirmgröße von einem Monitor auf einen anderen ändern möchte, beende ich die Sitzung und starte sie mit der geänderten -geometry
Option neu. Dadurch verliere ich die darin enthaltenen Programme.
Gibt es eine Möglichkeit, die Datei, in der die Geometrie gespeichert ist, zu hacken und die Werte zum Ändern der Auflösung zu ändern? Ich konnte keine solche Datei finden. In meinem Home-Ordner sehe ich die folgenden Dateien:
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
Der Inhalt der xstartup
Datei hilft nicht:
#!/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 &
... hier xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
bleibt die Linie für jede Auflösung konstant.
[Hinweis: Ich sehe, dass es xrandr
auf der Linux-Maschine installiert ist.]
Antwort1
Eine "Hack"-Lösung: Starten Sie den VNC-Server ohne angegebene Geometrie
vncserver :1
Dann verbinde ich mich mit dem VNC und gehe in Fedora einfach zu Einstellungen > Anzeigen > Unbekannt 0" und ändere die Auflösung im Handumdrehen wie folgt. Es erfordert zwar ein bisschen Klicken statt Tippen (DX), aber es ist einfach.
Antwort2
Die obige Antwort für Fedora hat bei mir (RedHat Enterprise) nicht funktioniert. Mit den folgenden Schritten konnte ich das gewünschte Problem erreichen:
1) Melden Sie sich bei Ihrer VNC-Sitzung an (bestehend)
2) Öffnen Sie ein Terminal und geben Sie ein: xrandr -s 1920x1080 (oder eine andere unterstützte Geometrie/Anzeige*)
um die von randr unterstützten Displays/Auflösungen anzuzeigen, geben Sie ein:
xrandr (ohne Argumente)
Einfach und nichts Besonderes!
Antwort3
Legen Sie die Geometrieoption in der systemd-Konfigurationsdatei (oder einem anderen anwendbaren Startskript) fest. Dieses Beispiel funktioniert mit Fedora 28 (vorausgesetzt, die Selinux-Dateideskriptoren sind korrigiert).
Ersetzen Sie USERNAME durch den tatsächlichen Benutzernamen:
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
Antwort4
$HOME/.vnc/xstartup
ist die Datei, nach der Sie suchen, und ja, Sie können die Geometrie dort einstellen. Sie sollte sich bei erneuter Verbindung anpassen, ohne Ihre Sitzung zu unterbrechen (nicht 100 % sicher, aber ziemlich sicher).