¿Cómo cambiar la resolución de pantalla del servidor VNC sin reiniciarlo?

17

¿Es posible cambiar la resolución del visor especificado durante el inicio del servidor vnc con el argumento de la línea de comando de geometría? Tengo un vncserver configurado para un monitor de pantalla ancha, pero quiero verlo en una pantalla de 1024x768.

Rohit Banga
fuente

Respuestas:

10

El visor UltraVNC admite el escalado automático , por lo que cambiará el tamaño de la ventana de visualización automáticamente, para mostrar la pantalla completa del servidor remoto.

Visor VNC

Actualizar

Tanto RealVNC y TightVNC escala de la pantalla / escritorio.

Stukelly
fuente
Estoy usando vnc real 4.1.3. ¿Dónde encontrar la opción de escala de escritorio? No puedo encontrarlo.
Rohit Banga
No está incluido en la edición gratuita de RealVNC, necesita hacerlo en la versión Personal o Enterprise. Consulte la comparación de funciones realvnc.com/products/download.html
stukelly el
He descargado el visor ultra vnc. Funciona gracias.
Rohit Banga
2
Sin escalar, pero cambiar el tamaño, cambiar la resolución de la PC controlada automáticamente para que coincida con la pantalla del controlador.
realtebo
Cuidado: el autoescalado no cambia la resolución del escritorio remoto , solo hace que los píxeles sean más grandes (o más pequeños) al estirar la imagen de salida. Para la mayoría de los usuarios, el escalado automático es prácticamente inútil, a menos que tenga una discapacidad visual. Disminuye la calidad de la imagen significativamente. Funciona como zoom o espejo en editores de mapas de bits populares. Lo que los usuarios realmente quieren es un cambio de resolución real de la sesión remota y hasta ahora solo TigerVNC es capaz de hacerlo, de todos los espectadores gratuitos. Vea mi respuesta a continuación.
Espinosa
11

Esta misma pregunta se hizo hace un tiempo sobre el desbordamiento de la pila: /programming/15816/changing-the-resolution-of-a-vnc-session-in-linux

La respuesta aceptada de Nathan Fellman:

El servidor real VNC 4.4 incluye soporte para Xrandr, que permite cambiar el tamaño del VNC. Inicie el servidor con:

vncserver -geometry 1600x1200 -randr 1600x1200,1440x900,1024x768

Luego redimensionar con:

xrandr -s 1600x1200
xrandr -s 1440x900  
xrandr -s 1024x768  
fgregg
fuente
Con el cliente TigerVNC no tiene que establecer ninguna geometría en el lado del servidor. Mi servidor se ejecuta sin ninguna -randrconfiguración y solo básico -geometry 1024x768. Esta baja resolución se usa solo cuando se conecta por primera vez, pero luego puede cambiar la resolución simplemente cambiando el tamaño de la ventana del cliente a lo que quiera, cualquier resolución loca, no estándar y ad-hoc que desee. Mi configuración: openSuse 15.1, GDM, KDE Plasma, TigerVNC client 1.9.0 (Windows)
Espinosa
3

Si necesita cambiar la configuración sin reiniciar el servidor VNC, obtuve buenos resultados con:

vncconfig -set RandR="1024x768,1600x900"

y luego usando xrandr para cambiar la resolución como sugirió fgregg:

xrandr -s 1024x768
xrandr -s 1600x900
Balau
fuente
1

Con TigerVNC, la resolución automática del cliente (visor) de Windows VNC funciona de inmediato . No es necesario configurar nada en ningún lugar, en el cliente o en el servidor. Cuando se conecta por primera vez a su servidor, la resolución se establece en lo que esté preestablecido en el lado del servidor, pero puede cambiarlo fácilmente cambiando el tamaño de la ventana del cliente; a cualquier resolución, cualquier resolución loca, no estándar y ad-hoc que desee. La resolución de escritorio remoto, digamos KDE, sigue la resolución de la ventana de su cliente sin problemas.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Compruebe que esté configurado "Cambiar el tamaño de la sesión remota a la ventana local". Debería ser por defecto.

No confunda el cambio de resolución automática con el estiramiento de la imagen , alternativamente llamado escala automática . Esta llamada es prácticamente inútil, a menos que tenga una discapacidad visual. Funciona como zoom o espejo en editores de mapas de bits populares. Simplemente hace que los píxeles sean más grandes (o más pequeños) al estirar la imagen de salida. Disminuye significativamente la calidad de la imagen, si estira mucho.

Lo que los usuarios suelen querer es un cambio de resolución real de la sesión remota. Y de eso es de lo que hablé antes y de eso es capaz el cliente TigetVNC, siempre que el servidor tenga la funcionalidad correspondiente. La resolución automática mantiene la imagen nítida en cualquier tamaño. Lo malo es que también aumenta el ancho de banda de la red.

Hasta ahora descubrí que solo TigerVNC es capaz de auto-resolución . Probé TightVNC (código abierto), RealVNC (versión gratuita) y UltraVNC (código abierto) y no tuve suerte con ninguno de ellos, proporcionan una escala automática inútil en el mejor de los casos.

Página de inicio de TigerVNC: https://tigervnc.org/
Fuentes de TigerVNC: https://github.com/TigerVNC/tigervnc
Lanzamientos de TigerVNC en GitHub: https://github.com/TigerVNC/tigervnc/releases
Binarios de TigerVNC para descargar: https: //bintray.com/tigervnc/stable/tigervnc/1.9.0

Si solo desea un visor, descargue solo el visor, como vncviewer64-1.9.0.exe , que es solo un visor sin servidor VNC incluido. Tenga en cuenta que con el servicio del servidor TigerVNC se inicia automáticamente, en silencio, en segundo plano, lo que detesto como una posible amenaza de seguridad.

Mi servidor se ejecuta sin ninguna -randrconfiguración y solo básico -geometry 1024x768. Esta baja resolución se usa solo cuando se conecta por primera vez, pero luego puede cambiar la resolución simplemente cambiando el tamaño de la ventana del cliente. Si tiene curiosidad, aquí está mi comando completo del servidor VNC:

/usr/bin/Xvnc -log *:syslog:30,TcpSocket:syslog:-1 -inetd -MaxDisconnectionTime=5 -securitytypes=none -displayfd 10 -geometry 1024x768 -AllowOverride=Desktop,AcceptPointerEvents,SendCutText,AcceptCutText,MaxDisconnectionTime,MaxConnectionTime,MaxIdleTime,QueryConnect,QueryConnectTimeOut,AlwaysShared,NeverShared,DisconnectClients,SecurityTypes,Password,PlainUsers -query localhost -once -desktop New session -extension MIT-SHM

Según la descripción del paquete openSuse, xorg-x11-Xvncel servidor openSuse VNC se basa en el código TigerVNC. Entonces, en mi caso, el cliente de TigerVNC habla con el servidor de TigerVNC, así que quizás es por eso que todo es tan perfecto :)

Configuración de mi cliente: TigerVNC client 1.9.0 (Windows)
Configuración de mi servidor: openSuse 15.1, xorg-x11-Xvnc 1.9.0, vncmanager 1.0.2, GDM, KDE Plasma.

Espinosa
fuente
0

Con TightVNC (al menos) si el servidor (Windows) cambia la resolución de la pantalla, el cliente cambia automáticamente para que coincida con la nueva resolución.

rogerdpack
fuente
¿Es posible tener el comportamiento RDP? Cuando el controlador se conecta a una ventana controlada, la ventana controlada cambia su resolución. No escale, cambie la resolución, para que coincida con la resolución de la pantalla del controlador, al menos en relación de forma, que la escala para ajustarse.
realtebo
Eso sería interesante ahora seguro si es posible ...
rogerdpack
0

Para TightVNC, haga clic en el ícono de ajustes (configuración) y cambie la calidad de la imagen a "Alta" y funciona bien.

Dominios Destacados
fuente
¿Por qué la calidad de la imagen debe estar relacionada con el cambio automático de resolución de pantalla en la parte controlada?
realtebo
A mi no me funciona. Acabo de probar. Este tamaño controlado por resolución remota de las ventanas del cliente es compatible con algunos clientes VNC, como TigerVNC, pero no con TightVNC o RealVNC (versión gratuita). Lo acabo de probar con RealVNC Viewer 6.19.715 y TightVNC Viewer para Windows 2.8.23.
Espinosa
0

Recibí una respuesta oficial escribiendo al servicio al cliente de VNC.

La versión corta es: no, no puede cambiar la resolución remota para que coincida automáticamente con la resolución de la ventana / pantalla del controlador vnc local.

Me dijeron que eso se debe a que RDP es una sesión de inicio de sesión real, por lo que la pantalla se comporta como un usuario común en el sistema controlado.

VNC simplemente refleja la pantalla. Y no es algo malo porque no puede compartir sesión RDP pero puede compartir VNC

Sugerí crear una configuración en el servidor vnc para permitir el cambio de pantalla porque sé que la API de Windows permite que un tercero configure la resolución de la pantalla mediante programación.

Entonces esperaré ...

Realtebo
fuente