Ich verwende VNC, um bei der Arbeit eine Verbindung zu einer Linux-Workstation herzustellen. Bei der Arbeit habe ich einen 20-Zoll-Monitor mit einer Auflösung von 1600 x 1200, während ich zu Hause meinen Laptop mit einer Auflösung von 1440 x 900 verwende. Wenn ich den vncserver auf 1440 x 900 einstelle, verpasse ich viel Speicherplatz auf meinem Monitor, während ich Stellen Sie es auf 1600x1200 ein, es passt nicht auf den Bildschirm des Laptops, und ich muss es die ganze Zeit scrollen.
Gibt es eine gute Möglichkeit, die Größe einer VNC-Sitzung im laufenden Betrieb zu ändern?
Mein VNC-Server ist RealVNC E4.x (ich erinnere mich nicht an die genaue Version), das auf SuSE64 ausgeführt wird.
Antworten:
Real VNC Server 4.4 unterstützt Xrandr, wodurch die Größe des VNC geändert werden kann. Starten Sie den Server mit:
Ändern Sie dann die Größe mit:
quelle
.vnc/config
Datei aufzunehmen. Zum Beispiel ist die erste Zeile meiner Konfiguration:-randr 800x600,1024x768,1280x800,1280x960,1280x1024,1680x1050,1920x1080,3360x1050,1024x700,1200x740,1600x1000,3200x1000
tightvncserver
?Es wurde festgestellt, dass der mit Ubuntu (10.04) gelieferte vnc4server (4.1.1) gepatcht ist, um auch das Ändern der Auflösung im laufenden Betrieb über xrandr zu unterstützen. Leider war die Funktion schwer zu finden, da sie nicht dokumentiert ist. Hier ist es also...
Starten Sie den Server mit mehreren 'Geometrie'-Instanzen, wie z.
Verwenden Sie in einem Terminal in einem vncviewer (mit aktiviertem Element: 'Dymanic Desktop Resizing zulassen' aktiviert) xrandr, um die verfügbaren Modi anzuzeigen:
Um die Auflösung zu ändern, verwenden Sie zum Beispiel:
Das ist es.
quelle
Ich führe TigerVNC auf meinem Linux-Server aus, der grundlegende Randr- Unterstützung bietet . Ich starte vncserver einfach ohne Optionen für -randr oder multiple -geometry.
Wenn ich xrandr in einem Terminal ausführe, werden alle verfügbaren Bildschirmauflösungen angezeigt:
Ich kann dann leicht zu einer anderen Auflösung wechseln (zB auf 1360x768 wechseln):
Ich verwende TightVnc Viewer als Client und es passt sich automatisch der neuen Auflösung an.
quelle
Ich denke, Ihr Bestes ist, den VNC-Server mit einer anderen Geometrie an einem anderen Port auszuführen. Ich würde versuchen, basierend auf der Manpage
Dann können Sie eine Verbindung von der Arbeit zu einem Port und von zu Hause zu einem anderen herstellen.
Bearbeiten: Verwenden Sie dann xmove, um Fenster zwischen den beiden x-Servern zu verschieben.
quelle
Da diese Frage zuerst bei Google auftaucht, dachte ich, ich würde eine Lösung mit TigerVNC teilen, was heutzutage die Standardeinstellung ist.
xrandr
Ermöglicht die Auswahl der Anzeigemodi (auch als Auflösungen bezeichnet). Aufgrund der harten Codierung von Modelines müssten jedoch zusätzliche Modelines wie "2560x1600" oder "1600x900" in den Code eingefügt werden . Ich denke, die Entwickler, die den Code geschrieben haben, sind viel schlauer und die hartcodierte Liste ist nur ein Beispiel für Werte. Dies führt zu der Schlussfolgerung, dass es eine Möglichkeit geben muss, benutzerdefinierte Modelllinien hinzuzufügen und diese zuman xrandr
bestätigen.Vor diesem Hintergrund, wenn das Ziel darin besteht, eine VNC-Sitzung zwischen zwei Computern mit den oben genannten Auflösungen zu teilen und davon auszugehen, dass der VNC-Server der Computer mit der Auflösung "1600 x 900" ist:
Starten Sie eine VNC-Sitzung mit einer Geometrie, die der physischen Anzeige entspricht:
Starten Sie auf dem Computer "2560x1600" den VNC-Viewer (ich bevorzuge Remmina) und stellen Sie eine Verbindung zur Remote-VNC-Sitzung her:
Sobald Sie sich in der VNC-Sitzung befinden, starten Sie ein Terminalfenster.
Stellen Sie sicher, dass die neue Geometrie in der VNC-Sitzung verfügbar ist:
und Sie werden feststellen, dass der Bildschirm ziemlich klein ist.
Listen Sie die Modeline (siehe xrandr-Artikel im ArchLinux-Wiki) für die Auflösung "2560x1600" auf:
oder wenn der Monitor alt ist, erhalten Sie die GTF-Timings:
Fügen Sie der aktuellen VNC-Sitzung die neue Modeline hinzu:
Suchen Sie in der obigen
xrandr
Ausgabe nach dem Anzeigenamen in der zweiten Zeile:Binden Sie die neue Modeline an den aktuellen virtuellen VNC-Monitor:
Benutze es:
quelle
Interessanterweise antwortete niemand darauf. In TigerVNC, wenn Sie in der Sitzung angemeldet sind. Gehen Sie
System > Preference > Display
von der oberen Menüleiste zu (ich habe Cent OS als Remote-Server verwendet). Klicken Sie auf das Dropdown-Menü Auflösung. Es stehen verschiedene Einstellungen zur Verfügung, einschließlich 1080p. Wählen Sie die aus, die Ihnen gefällt. Es wird sich im laufenden Betrieb ändern.Stellen Sie sicher, dass Sie die neue Einstellung anwenden, wenn ein Dialogfeld angezeigt wird. Andernfalls wird wie in Windows auf die vorherige Einstellung zurückgegriffen
quelle
Leute, das ist wirklich einfach.
logge
ssh
dich über in dein pi einausführen
Dadurch wird eine neue Sitzung generiert
:1
Verbinden Sie sich mit Ihrem VNC-Client unter
ipaddress:1
Das ist es.
quelle
Hinzufügen zu Nathans (akzeptierter) Antwort:
Ich wollte die Liste der Auflösungen durchgehen, sah aber nichts dafür:
Es erhält den aktuellen Index, geht zum nächsten über und kehrt bei einem Fehler (dh Ende) auf 0 zurück.
BEARBEITEN
Geändert, um mit einer späteren Version von xrandr übereinzustimmen ("*" steht am Zeilenende und keine führende Auflösungskennung).
quelle
Die Lösung von @omiday hat in Xvnc TigerVNC 1.1.0 für mich funktioniert, daher habe ich sie zu einer einzigen Bash-Funktion vncsize xy zusammengefasst . Verwenden Sie es wie folgt : vncsize 1400 1000 . Es funktioniert für jeden VNC-Ausgabennamen "Standard" oder "VNC-0".
quelle
Die vielleicht ignoranteste Antwort, die ich gepostet habe, aber hier ist: Verwenden Sie den TigerVNC-Client / Viewer und überprüfen Sie die
'Resize remote session to local window'
Optionen auf der Registerkarte Bildschirm.Ich weiß nicht, was der $% # @ TigerVNC-Client dem Remote-vncserver oder xrandr oder Xvnc oder gnome oder ... mitteilt, aber die Größe ändert sich, wenn ich das TigerVNC-Client-Fenster ändere.
Mein Setup:
Dadurch ändert sich die Auflösung an die Größe des Client-Fensters, unabhängig davon, um was es sich handelt, und es handelt sich nicht um
zooming
eine tatsächliche Auflösungsänderung (ich kann die neue Auflösung in der xrandr-Ausgabe sehen).Ich habe alles versucht, um dem xrandr eine neue Auflösung hinzuzufügen, aber ohne Erfolg, immer mit einem
'xrandr: Failed to get size of gamma for output default'
Fehler.Versionen, mit denen es momentan für mich funktioniert (obwohl ich in der Vergangenheit keine Probleme mit irgendwelchen Versionen hatte, installiere ich nur die neueste Version
yum install gnome-* tigervnc-server
und funktioniert einwandfrei):quelle
$HOME
Verzeichnis funktioniert wie erwartet. Github.com/TigerVNC/tigervnc/issues/155Bei Linux bin ich mir nicht sicher, aber unter Windows erkennt und passt tightvnc Änderungen der Auflösung auf dem Server an.
Sie sollten also in der Lage sein, VNC in die Workstation einzubinden, mit der rechten Maustaste auf den Desktop zu klicken, Eigenschaften festzulegen, die Auflösung auf einen beliebigen Wert festzulegen und die Größe Ihres Client-VNC-Fensters entsprechend zu ändern.
quelle
Ich denke, Sie können xmove verwenden , um Fenster zwischen zwei separaten x-Servern zu verschieben. Wenn es funktioniert, sollte dies Ihnen zumindest die Möglichkeit geben, das zu tun, was Sie möchten, wenn auch nicht so einfach wie das Ändern der Auflösung.
quelle
Soweit ich weiß, gibt es keine Möglichkeit, die Auflösung des Clients nur mit VNC zu ändern, da es sich lediglich um eine "Monitor Mirroring" -Anwendung handelt.
TightVNC (eine VNC-Client- und -Serveranwendung) kann jedoch die Größe des Bildschirms auf der Clientseite ändern, dh alles etwas verkleinern (ähnlich wie bei Techniken zur Größenänderung von Bildern in Grafikprogrammen). Das sollte funktionieren, wenn Sie keine zu kleinen Schriftgrößen verwenden. VNC sollte theoretisch zwischen verschiedenen VNC-Anwendungen kompatibel sein.
quelle
Ich habe eine einfache Idee, so etwas:
Nun, ich brauche eine bessere Lösung für alle Anzeigegeräte unter Linux und Similars SO
quelle
Ich denke, das hängt von Ihrem Fenstermanager ab.
Ich bin ein Windows-Benutzer, daher könnte dies eine falsche Vermutung sein, aber: Gibt es nicht etwas namens X-Server, das auf Linux-Computern ausgeführt wird - zumindest auf solchen, die für VNC interessante Ziele sein könnten -, mit denen Sie eine Verbindung herstellen können? " X-Clients "?
VNC nimmt einfach alles, was auf dem Bildschirm angezeigt wird, und "tunnelt es durch Ihr Netzwerk". Wenn ich mich nicht völlig irre, sollte das "X" -Protokoll Ihnen die Möglichkeit geben, die Desktop-Auflösung Ihres Clients zu verwenden.
Probieren Sie X-Server auf Wikipedia aus, um einen groben Überblick zu erhalten.
quelle