Copia e incolla tra Windows e Linux
Ecco la soluzione al diffuso problema del copia e incolla (copy & paste) che spesso non funziona tra Windows e Linux con VNC server. Basta verificare e correggere una riga nella configurazione del servizio.
Da lungo tempo sostengo, uso e propongo linux come soluzione per recuperare macchine dall’hardware un po’ superato e introdurre nella rete dispositivi dedicati a svolgere compiti specifici. Un esempio classico è quello di utilizzare un pc di recupero come music machine, ovvero un computer destinato a riprodurre musica sia come lettore mp3, come riproduttore di cd musicali, stazione radio eccetera
(per inciso, consiglio linux anche per molte altre soluzioni, specialmente server).
Generalmente in casi come questo utilizzo dei pc senza monitor nè tastiera, controllati completamente da remoto, cosa che permette anche di sistemarli in posti magari non proprio comodissimi, intanto non occorre mettercisi davanti per lavorare. Ciò significa che occorre stabilire una modalità di accesso remota, risultato che di solito ottengo con una normale connessione telnet, ma che nel caso della situazione come quella descritta sopra realizzo tramite VNC: server su linux, client sulla postazione di lavoro tramite cui accedere. In questo modo si possono utilizzare gli stumenti con la loro interfaccia grafica e tutto si svolge facilmente.
Quindi la situazione finale è accesso al server linux da una postazione Windows (ad esempio) tramite VNC in una delle sue declinazioni UltraVNC, TightVNC, RealVNC o altro (in questo caso non ci sono problemi di sicurezza in quanto siamo in una rete privata e quindi la scelta del client usato è legata alla comodità e alle preferenze personali).
Ho però trovato un problema: il copia e incolla tra le macchine non funziona. Funziona perfettamente tra le applicazioni all’interno della macchina linux, all’interno della macchina Windows, ma se si cerca di effettuarlo tra i due desktop non c’è verso di ottenerlo.
Ho investigato a lungo il problema e ho notato che sul web non si trova pressochè nulla che dia una soluzione, nonostante la situazione venga spesso sollevata. Ho deciso quindi di lasciare qui una semplice nota per rispondere alla difficoltà e spero, rendere la vita più facile a chi riscontrasse lo stesso problema.
Il tutto nasce dal fatto che la configurazione preimpostata (file ~/.vnc/xstartup) e normalmente proposta è come segue:
#!/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/.Xresourcesxsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
twm &
La funzionalità di clipboard è garantita dall’istruzione vncconfig -iconic & che attiva le impostazioni per il copia e incolla e le mette in background
Il punto risolutivo è che questa istruzione deve essere eseguita PRIMA dell’attivazione del desktop grafico, quindi deve essere spostata come segue
vncconfig -iconic &
exec /etc/X11/xinit/xinitrc
A questo punto basta rilanciare il servizio e si avrà la possibilità di effettuare il trasferimento dei dati tra i desktop dei diversi sistemi
NB: un paio di osservazioni a margine. Ovviamente perchè il tutto funzioni non ci devono essere altri problemi. Ad esempio alcuni client VNC hanno un’opzione che disattiva l’attivazione del clipboard, quindi occorre verificare anche questa caratteristica. Ho notato inoltre che sul desktop linux non si riesce ad incollare semplicemente selezionando un testo da sostituire. Occorre prima rimuoverlo e quindi incollare in uno spazio vuoto.