Cambiar la resolución de pantalla / geometría de un servidor vncs sin randr en Linux


9

Quiero cambiar la resolución / geometría de mi sesión de VNC dinámicamente sin afectar los programas que se ejecutan dentro de ella.

Me referí: Cambiar la resolución de una sesión de VNC en Linux . No tengo permiso de root para actualizar la versión más reciente de vncserver, por lo que el siguiente comando no funciona a partir de ahora:

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

Por ahora, cada vez que quiero cambiar el tamaño de la pantalla de un monitor a otro, cierro la sesión y la reinicio con la -geometryopción modificada . Debido a esto, tengo que perder los programas que contiene.

¿Hay alguna manera de hackear el archivo que almacena la geometría y cambiar los valores para cambiar la resolución? No pude encontrar ese archivo. En mi carpeta de inicio, veo los archivos a continuación:

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

El contenido del xstartuparchivo no ayuda:

#!/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 &

... aquí la xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &línea permanece constante para cualquier resolución.

[Nota: veo que xrandrestá instalado en la máquina Linux.]

Respuestas:


4

Una solución "Hack": inicie el vncserver sin ninguna geometría especificada

vncserver :1

Luego me conectaré a la vnc, y en Fedora, simplemente iré a Configuración> Pantallas> Desconocido 0 "y cambiaré la resolución sobre la marcha de esta manera. Haga clic en lugar de escribir (DX), pero es fácil.


1
El resultado de esta opción es "no se puede determinar la versión xrandr" y nada más: - / (Debian 8) pero parece interesante.
m3nda

1

Establezca la opción de geometría en el archivo de configuración systemd (o script de inicio aplicable) ~ este ejemplo funciona con Fedora 28 (suponiendo que los descriptores de archivo selinux sean fijos).

Reemplace USERNAME con el nombre de usuario real:

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

1

La respuesta anterior para Fedora no funcionó para mí (RedHat Enterprise), pude lograr lo que necesita en estos pasos:

1) inicie sesión en su sesión de VNC (existente)

2) abra una terminal y escriba: xrandr -s 1920x1080 (u otra geometría / pantalla compatible *)

para ver pantallas / resoluciones compatibles con randr, escriba:

xrandr (sin argumentos)

¡Fácil y nada lujoso!


0

$HOME/.vnc/xstartupes el archivo que está buscando y sí, puede establecer la geometría allí. Debería ajustarse al volver a conectar sin interrumpir su sesión (no es 100% seguro pero sí bastante seguro).


1
Sería más útil mostrar que contar.
scottlittle
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.