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

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

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

Me referí:Cambiar la resolución de una sesión 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 por 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 -geometryla opción modificada. Debido a esto tengo que perder los programas que contiene.

¿Hay alguna forma de piratear 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 siguientes archivos:

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í xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &la línea permanece constante para cualquier resolución.

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

Respuesta1

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

vncserver :1

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

Respuesta2

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

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

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

Para ver las pantallas/resoluciones compatibles con randr, escriba:

xrandr (sin argumentos)

¡Fácil y nada especial!

Respuesta3

Configure la opción de geometría en el archivo de configuración systemd (o en el script de inicio aplicable) ~ este ejemplo funciona con Fedora 28 (suponiendo que los descriptores de archivos 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

Respuesta4

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

información relacionada