Ändern der Bildschirmauflösung/-geometrie eines VNC-Servers ohne Randr unter Linux

Ändern der Bildschirmauflösung/-geometrie eines VNC-Servers ohne Randr unter Linux

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 -geometryOption 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 xstartupDatei 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 xrandrauf 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/xstartupist 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).

verwandte Informationen