Ändern der Bildschirmauflösung / Geometrie eines vncservers ohne randr unter Linux

9

Ich möchte die Auflösung / Geometrie meiner VNC-Sitzung dynamisch ändern, ohne die darin ausgeführten Programme zu beeinträchtigen.

Ich bezog mich auf: Ändern der Auflösung einer VNC-Sitzung unter Linux . Ich habe keine Root-Berechtigung zum Aktualisieren der neueren vncserver-Version, daher funktioniert der folgende Befehl derzeit nicht:

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

Wenn ich 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. Aus diesem Grund muss ich die darin enthaltenen Programme verlieren.

Gibt es eine Möglichkeit, die Datei zu hacken, in der die Geometrie gespeichert ist, und die Werte zum Ändern der Auflösung zu ändern? Ich konnte eine solche Datei nicht finden. In meinem Home-Ordner werden folgende Dateien angezeigt:

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 xrandrdas auf dem Linux-Computer installiert ist.]

iammilind
quelle

Antworten:

4

Eine "Hack" -Lösung: Starten Sie den vncserver ohne angegebene Geometrie

vncserver :1

Dann stelle ich eine Verbindung zum VNC her und gehe in Fedora einfach zu Einstellungen> Anzeigen> Unbekannte 0 "und ändere die Auflösung im laufenden Betrieb wie folgt. Klicken Sie lieber, anstatt zu tippen (DX), aber es ist einfach.

Äolus
quelle
1
Diese Option führt zu "kann die xrandr-Version nicht bestimmen" und nichts weiter: - / (Debian 8) sieht aber interessant aus.
m3nda
1

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 festgelegt).

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
Chad Geary
quelle
1

Die obige Antwort für Fedora hat bei mir (RedHat Enterprise) nicht funktioniert. In den folgenden Schritten konnte ich das erreichen, was Sie benötigen:

1) Melden Sie sich bei Ihrer VNC-Sitzung an (vorhanden)

2) Öffnen Sie ein Terminal und geben Sie Folgendes ein: xrandr -s 1920x1080 (oder eine andere unterstützte Geometrie / Anzeige *)

Geben Sie Folgendes ein, um von Randr unterstützte Anzeigen / Auflösungen anzuzeigen:

xrandr (ohne Argumente)

Einfach und nichts Besonderes!

Momchil Milev
quelle
0

$HOME/.vnc/xstartupist die gesuchte Datei und ja, Sie können dort die Geometrie einstellen. Es sollte sich beim erneuten Verbinden anpassen, ohne Ihre Sitzung zu beeinträchtigen (nicht 100% sicher, aber ziemlich sicher).

Brad
quelle
1
Es wäre hilfreicher zu zeigen als zu erzählen.
Scottlittle