Modifica della risoluzione / geometria dello schermo di un vncserver senza randr in Linux


9

Voglio cambiare la risoluzione / geometria della mia sessione VNC in modo dinamico senza influenzare i programmi in esecuzione al suo interno.

Ho fatto riferimento: modifica della risoluzione di una sessione VNC in Linux . Non ho i permessi di root per aggiornare la versione più recente di vncserver, quindi il seguente comando non funziona al momento:

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

Per ora, ogni volta che voglio cambiare le dimensioni dello schermo da un monitor all'altro, uccido la sessione e la riavvio con l' -geometryopzione modificata . Per questo motivo devo perdere i programmi al suo interno.

Esiste un modo per hackerare il file che memorizza la geometria e modificare i valori per cambiare la risoluzione? Non sono riuscito a trovare questo file. Nella mia cartella home, vedo i file seguenti:

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

Il contenuto del xstartupfile non aiuta:

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

... qui la xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &riga rimane costante per qualsiasi risoluzione.

[Nota: vedo che xrandrè installato nella macchina linux.]

Risposte:


4

Una soluzione "Hack": avvia vncserver senza alcuna geometria specificata

vncserver :1

Quindi mi collegherò al vnc, e in Fedora, andrò in Impostazioni> Display> Sconosciuto 0 "e cambierò la risoluzione al volo in questo modo. Prendi un clic piuttosto che digitare (DX), ma è facile.


1
Questa opzione risulta "impossibile determinare la versione di xrandr" e nient'altro: - / (Debian 8) ma sembra interessante.
m3nda,

1

Imposta l'opzione geometria nel file di configurazione di systemd (o altrimenti script di avvio applicabile) ~ questo esempio funziona con Fedora 28 (supponendo che i descrittori di file selinux siano corretti).

Sostituisci USERNAME con il nome utente effettivo:

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 risposta sopra per Fedora non ha funzionato per me (RedHat Enterprise), sono stato in grado di realizzare ciò di cui hai bisogno in questi passaggi:

1) accedi alla tua sessione VNC (esistente)

2) apri un terminale e digita: xrandr -s 1920x1080 (o un'altra geometria / display supportati *)

per vedere i display / risoluzioni supportati da randr, digitare:

xrandr (senza argomenti)

Semplice e niente di speciale!


0

$HOME/.vnc/xstartupè il file che stai cercando e sì, puoi impostare la geometria lì. Dovrebbe adattarsi alla riconnessione senza interrompere la sessione (non sicuro al 100% ma abbastanza sicuro).


1
Sarebbe più utile mostrare che dire.
scottlittle,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.