Cuando busco en la web información sobre cómo configurar la resolución predeterminada y la profundidad de color para sesiones RealVNC, siempre encuentro cosas que hablan sobre pasar parámetros de línea de comandos a vncserver
, como vncserver -geometry 1024x768
o algo así. Sin embargo, tengo mi sistema configurado para iniciar el servidor RealVNC al arrancar (para los niveles de ejecución 2-5; estoy usando Debian) a través del /etc/init.d/vncserver-x11-serviced
script que instala RealVNC; No estoy usando el vncserver
comando. ¿Cómo configuro esto para que tenga una resolución y profundidad de color predeterminadas particulares? ¿Existe algún archivo de configuración en algún lugar que pueda usar?
Respuesta1
NOTA: Soy consciente de que esta respuesta se aplica al modo virtual de RealVNC en lugar del modo de servicio ( vncserver-x11-serviced
), pero creo que el modo virtual es generalmente más útil de todos modos y es el único cuya resolución se puede cambiar.dinamicamente. Probablemente sea una técnica bastante similar para cambiar la resolución de RealVNC cuando se ejecuta en modo de servicio.
Después de instalar RealVNC (en el momento de escribir este artículo, versión 5.2.1), aplicarle una licencia gratuita usando vnclicense -add ...
y ejecutar el servidor VNC en su "Modo virtual" (también hay modos de Servicio y Usuario en los que no entraré). aquí porque ya es bastante complejo), descubrí cuán profunda es esta madriguera. :-) La documentación para esto está lejos de ser completa u obvia, y los únicos artículos de KB en el sitio de RealVNC sonalgo anticuado(hablando del vncserver
comando en lugar delrecomendación actual aparente, vncserver-virtual
), o sobrecambiando la resolución dinámicamentecon RandRduranteuna sesión, sin elegir qué resolución se debe utilizar cuando se inicia el servidor VNC.
En primer lugar, la palabra "geometría" tiende a usarse en el contexto de The X Window System en lugar de la palabra "resolución". La resolución predeterminada que le proporcionó el servidor VNC (¿o tal vez el propio X?) parece ser 800x600.
Ahora, puede pasar parámetros directamente al servidor X al iniciar el servidor RealVNC manualmente desde la línea de comandos (u obviamente de forma automatizada al arrancar desde algo como rc.local
), y el parámetro a pasar para establecer la resolución es geometry
. Entonces, esto iniciará una instancia de servidor virtual RealVNC con una resolución de 1280x1024:
> vncserver-virtual -geometry 1280x1024
Normalmente ejecuto como root cuando pruebo cosas como esta, así que cambio al usuario en cuyo escritorio quiero conectar VNC primero:
> sudo -u [someuser] vncserver-virtual -geometry 1280x1024
Por supuesto , eso requiere pasar un geometry
parámetro en la línea de comando. RealVNC también admite la configuración del servicio VNC a través de varios archivos de configuración. Sin embargo, de manera confusa, la configuración para "Xvnc" (el servidor RealVNC subyacente utilizado en sistemas UNIX que se comunica con X y que necesita tomar el geometry
parámetro de configuración) tiene que ir en undiferente ubicaciónde los archivos de configuración "normales" de RealVNC; ya sea /etc/vnc/config.custom
para configuraciones de todo el servidor o ~/.vnc/config
para configuraciones específicas del usuario. Estos están completamente separados de los otros archivos de configuración de RealVNC y descubrirlo fue bastante difícil. Como dije, los documentos sobre esto son terribles. Entonces, para no tener que especificar la resolución en la línea de comando, cree el archivo /etc/vnc/config.custom
y asígnele el siguiente contenido:
-geometry 1280x1024
Entoncescuando corres:
> sudo -u [someuser] vncserver-virtual
... la resolución para esa instancia del servidor VNC será de forma predeterminada 1280x1024.
Supongo que este archivo de configuración también será utilizado por el demonio.vncserver-virtuald
así mismo para cada uno de losvncserver-virtual
instancias en las que se genera (de hecho, puede ser la única forma de establecer la resolución predeterminada para el demonio), pero como el demonio requiere una licencia empresarial para su uso y solo estoy usando la licencia gratuita, no pude probarlo.
¡Uf!
Por cierto, mencioné a RandR antes. Esa es otra forma de obtener una resolución/geometría diferente al conectarse al servidor RealVNC en sistemas UNIX. Sólo funciona cuando el servidor RealVNC se ejecuta en "Modo virtual". También permite el cambio dinámico de resoluciones durante la sesión VNC y es algomejor documentadoque los -geometry
parámetros que mencioné anteriormente. :-) Cuando se establece esta configuración (yélva en el conjunto "normal" de archivos de configuración de RealVNC, no en los separados para Xvnc... vaya figura), debería poder usar el xrandr
comando desde dentro de la sesión de VNC para cambiar la resolución dinámicamente a una de las resoluciones especificadas en el RandR
ajuste.