Używam VNC do łączenia się ze stacją roboczą Linux w pracy. W pracy mam 20-calowy monitor o rozdzielczości 1600x1200, natomiast w domu korzystam z laptopa o rozdzielczości 1440x900. Jeśli ustawię serwer vncs na 1440x900, tracę dużo miejsca na monitorze, a jeśli ustaw go na 1600x1200, nie mieści się na ekranie laptopa i muszę go cały czas przewijać.
Czy istnieje dobry sposób na zmianę rozmiaru sesji VNC w locie?
Mój serwer VNC to RealVNC E4.x (nie pamiętam dokładnej wersji) działający na SuSE64.
Odpowiedzi:
Prawdziwy serwer VNC 4.4 zawiera obsługę Xrandr, która umożliwia zmianę rozmiaru VNC. Uruchom serwer z:
Następnie zmień rozmiar za pomocą:
źródło
.vnc/config
pliku. Na przykład pierwsza linia mojej konfiguracji to:-randr 800x600,1024x768,1280x800,1280x960,1280x1024,1680x1050,1920x1080,3360x1050,1024x700,1200x740,1600x1000,3200x1000
tightvncserver
?Okazało się, że vnc4server (4.1.1) dostarczany z Ubuntu (10.04) jest załatany tak, aby obsługiwał również zmianę rozdzielczości w locie przez xrandr. Niestety ta funkcja była trudna do znalezienia, ponieważ jest nieudokumentowana. Więc oto jest ...
Uruchom serwer z wieloma instancjami „geometrii”, takimi jak:
Z terminala w vncviewer (z włączoną opcją: „zezwól na zmianę rozmiaru pulpitu dymanic”) użyj xrandr, aby wyświetlić dostępne tryby:
aby zmienić rezolucję, na przykład użyj:
Otóż to.
źródło
Używam TigerVNC na moim serwerze Linux, który ma podstawową obsługę randr . Po prostu uruchamiam vncserver bez żadnych opcji -randr lub multiple -geometry.
Kiedy uruchamiam xrandr w terminalu, wyświetla wszystkie dostępne rozdzielczości ekranu:
Mogę wtedy łatwo przełączyć się na inną rozdzielczość (np. Przełączyć na 1360x768):
Używam przeglądarki TightVnc jako klienta i automatycznie dostosowuje się do nowej rozdzielczości.
źródło
Myślę, że najlepiej byłoby uruchomić serwer VNC z inną geometrią na innym porcie. Spróbowałbym w oparciu o stronę podręcznika
Następnie możesz łączyć się z pracy do jednego portu iz domu do innego.
Edycja: Następnie użyj xmove, aby przenieść okna między dwoma x-serwerami.
źródło
Ponieważ to pytanie pojawia się jako pierwsze w Google, pomyślałem, że udostępnię rozwiązanie wykorzystujące TigerVNC, które jest obecnie domyślne.
xrandr
pozwala na wybór trybów wyświetlania (inaczej rozdzielczości), jednak ze względu na zakodowane na stałe modele modeline, do kodu należałoby dodać dodatkowe modele, takie jak „2560x1600” lub „1600x900” . Myślę, że programiści, którzy napisali kod, są znacznie mądrzejsi, a lista zakodowana na stałe to tylko próbka wartości. Prowadzi to do wniosku, że musi istnieć sposób dodawania własnych modeli iman xrandr
potwierdza to.Na tym tle, jeśli celem jest współdzielenie sesji VNC między dwoma komputerami o powyższych rozdzielczościach i przy założeniu, że serwer VNC to komputer o rozdzielczości „1600x900”:
Rozpocznij sesję VNC z geometrią pasującą do fizycznego wyświetlacza:
Na komputerze „2560x1600” uruchom przeglądarkę VNC (wolę Remmina) i połącz się ze zdalną sesją VNC:
Po wejściu do sesji VNC uruchom okno terminala.
Potwierdź, że nowa geometria jest dostępna w sesji VNC:
a zauważysz, że ekran jest dość mały.
Wypisz modeline (zobacz artykuł xrandr w ArchLinux wiki) dla rozdzielczości "2560x1600":
lub jeśli monitor jest stary, pobierz taktowanie GTF:
Dodaj nowy modeline do bieżącej sesji VNC:
W powyższym
xrandr
wyjściu poszukaj nazwy wyświetlanej w drugiej linii:Powiąż nowy modeline z bieżącym wirtualnym monitorem VNC:
Użyj tego:
źródło
Co ciekawe, nikt na to nie odpowiedział. W TigerVNC, gdy jesteś zalogowany do sesji. Przejdź do
System > Preference > Display
z górnego paska menu (używałem Cent OS jako mojego zdalnego serwera). Kliknij listę rozwijaną rozdzielczości, dostępne są różne ustawienia, w tym 1080p. Wybierz ten, który Ci się podoba. Zmieni się w locie.Upewnij się, że zastosowałeś nowe ustawienie, gdy pojawi się okno dialogowe. W przeciwnym razie powróci do poprzedniego ustawienia, tak jak w systemie Windows
źródło
Chłopaki, to jest naprawdę proste.
zaloguj się
ssh
do swojego piwykonać
Spowoduje to wygenerowanie nowej sesji
:1
połącz się z klientem vnc pod adresem
ipaddress:1
Otóż to.
źródło
Dodawanie do (zaakceptowanej) odpowiedzi Nathana:
Chciałem przewinąć listę rozwiązań, ale nic nie widziałem:
Pobiera aktualny indeks, przechodzi do następnego i cofa się do 0 w przypadku błędu (tj. Koniec)
EDYTOWAĆ
Zmodyfikowano w celu dopasowania do późniejszej wersji xrandr („*” znajduje się na końcu wiersza i nie ma wiodącego identyfikatora rozdzielczości).
źródło
Rozwiązanie autorstwa @omiday działało dla mnie w Xvnc TigerVNC 1.1.0, więc skondensowałem je do pojedynczej funkcji bash vncsize xy . Użyj tego w ten sposób: vncsize 1400 1000 . Działa z każdą nazwą wyjścia VNC, „domyślną” lub „VNC-0”.
źródło
Być może najbardziej ignorancka odpowiedź, którą opublikowałem, ale oto: Użyj klienta / przeglądarki TigerVNC i sprawdź
'Resize remote session to local window'
opcje w zakładce Ekran.Nie wiem, co klient $% # @ TigerVNC mówi zdalnemu serwerowi vncserver lub xrandr, Xvnc lub gnome lub ... ale zmienia rozmiar, gdy zmieniam okno klienta TigerVNC.
Moja konfiguracja:
Dzięki temu rozdzielczość zmienia się, aby dopasować się do rozmiaru okna klienta, bez względu na to, co to jest, i tak nie jest
zooming
, to rzeczywista zmiana rozdzielczości (widzę nową rozdzielczość na wyjściu xrandr).Próbowałem wszystkiego, co mogłem, aby dodać nową rozdzielczość do xrandra, ale bezskutecznie, zawsze kończy się to
'xrandr: Failed to get size of gamma for output default'
błędem.Wersje, z którymi to teraz działa (chociaż nie miałem problemów z ŻADNĄ wersją w przeszłości, po prostu instaluję najnowsze
yum install gnome-* tigervnc-server
i działa dobrze):źródło
$HOME
katalogu działa zgodnie z oczekiwaniami github.com/TigerVNC/tigervnc/issues/155Nie jestem pewien co do Linuksa, ale pod Windows, tightvnc wykryje i dostosuje się do zmian rozdzielczości na serwerze.
Więc powinieneś być w stanie podłączyć VNC do stacji roboczej, zrobić odpowiednik kliknięcia prawym przyciskiem myszy na pulpicie, właściwościach, ustawić rozdzielczość na dowolną i odpowiednio zmienić rozmiar okna vnc klienta.
źródło
Myślę, że możesz użyć xmove do przenoszenia okien między dwoma oddzielnymi x-serwerami. Jeśli więc zadziała, powinno to przynajmniej dać ci sposób na zrobienie tego, co chcesz, choć nie tak łatwo, jak zmiana rozdzielczości.
źródło
O ile wiem, nie ma sposobu, aby zmienić rozdzielczość klienta po prostu za pomocą VNC, ponieważ jest to po prostu aplikacja do „dublowania monitora”.
Jednak TightVNC (który jest aplikacją klienta i serwera VNC) może zmienić rozmiar ekranu po stronie klienta, tj. Uczynić wszystko trochę mniejszym (podobnie do technik zmiany rozmiaru obrazu w programach graficznych). To powinno działać, jeśli nie używasz zbyt małych rozmiarów czcionek. VNC powinien teoretycznie być kompatybilny między różnymi aplikacjami VNC.
źródło
Mam prosty pomysł, coś takiego:
Cóż, potrzebuję lepszego rozwiązania dla wszystkich urządzeń wyświetlających pod Linuksem i Similars SO
źródło
Myślę, że to zależy od twojego menedżera okien.
Jestem użytkownikiem systemu Windows, więc może to być błędne przypuszczenie, ale: czy nie istnieje coś, co nazywa się X-Server na komputerach z systemem Linux - przynajmniej na tych, które mogą być interesującymi celami dla VNC - z którymi można się połączyć ” X-Clients ”?
VNC po prostu pobiera wszystko, co jest na ekranie i „tuneluje to przez Twoją sieć”. Jeśli się nie mylę, protokół „X” powinien dać ci szansę na użycie rozdzielczości pulpitu klienta.
Wypróbuj X-Server na Wikipedii, co może dać ci ogólny przegląd.
źródło