Ho trovato la soluzione di shreyansp la più (ma non del tutto) soddisfacente :)
Ecco il mio tentativo di migliorarlo (ovviamente YMMV). Spero che questo possa essere utile a coloro che cercano una soluzione :)
La mia soluzione si comporta come segue:
- la caffeina invia a Windows un codice chiave virtuale appropriato che:
- impedisce a Windows di andare in modalità sospensione o inattiva
- altrimenti non genera alcun effetto collaterale su Windows né da solo né in combinazione (no Ctrl, Maiusc, Alt, Alt-Gr, Win, F1-F5, F10, ecc.)
- o non viene inviato a Putty o viene ignorato da Putty
TL; DR: la mia soluzione viene applicata tra i passaggi 2 e 3 (vedi sotto) con il -key:0E
parametro caffeina:
Esci dalla caffeina e riavviala con:
caffeine.exe 5 -key:0E
(per un facile test)
caffeine.exe 50 -key:0E
(per un salvaschermo obbligatorio impostato a 1 minuto)
- Avvia il
read
programma sull'host remoto e osserva come non vengono ricevuti i tasti ogni 5 o 50 secondi.
- Esci
read
conCtrl+C
Shreyansp ha proposto una soluzione in cui sarebbe stata applicata una correzione tra i passaggi 5 e 10 (vedi sotto).
L'effetto collaterale di ciò (sulla mia configurazione) è stato che, con ogni sequenza di tasti che lo stucco veniva inoltrato dalla caffeina all'host remoto:
- ha attivato una 'Ripristina barra di scorrimento alla pressione dei tasti' (impostazione nella pagina Putty / Window)
che normalmente vorrei, ma solo quando io (l'essere umano) premo il tasto ma non regolarmente dalla caffeina :)
- readline / bash la versione tradotta (da
'"\e[28~"'
a '""'
(tasto vuoto?) ha causato l'interazione della sessione remota per alcuni secondi
Per testare facilmente quanto sopra, esci da Caffeina e riavvialo con intervallo di 5 secondi e Virtual-Key Code 07:
caffeine.exe 5 -key:07
- Avvia il
read
programma sull'host remoto e guarda come vengono ricevuti i tasti ogni 5 o 50 secondi.
- Esci
read
conCtrl+C
La sequenza di tasti 'pipeline', a quanto ho capito:
- La caffeina invia un codice di chiave virtuale a Windows
- Windows invia quel codice chiave virtuale a Putty
- Putty esegue alcune "traduzioni" / "mappature" in base ad alcune impostazioni della sessione in:
- Putty invia il codice chiave "tradotto" / "mappato" all'host remoto
- Sull'host remoto, il programma 'terminale' (es:
$TERM=xterm
, vt100
, vt102
, vt220
, etc.) traduce dalla 'linea protocollo' in codici chiave.
- la libreria readline esegue alcune traduzioni / mappature basate su
~/.inputrc
- readline invia il codice chiave a bash
- bash esegue alcune traduzioni / mappature basate su
~/.bashrc
(basato sul comando incorporato bind)
- bash o readline (non sono sicuro di quale) invia il codice chiave tradotto a nano (il mio editor di testo)
- Questa pipeline può diventare ancora più lunga aggiungendo il
screen
programma (che include a $TERM=screen
per il passaggio 5. e ritorna di nuovo al passaggio da 6. a 10.)
Nota: una volta arrivato al punto 4., diventa molto difficile controllare con precisione i diversi livelli di "traduzioni" / "mappature". Consiglierei di evitarlo, se puoi.
Sfondo:
ho usato caffeine.exe -key:07
per anni prima di avere a che fare con un pfsense 2.3.3-RELEASE-p1 (basato su FreeBSD 10.3-RELEASE).
Quindi, è caffeine.exe -key:07
stato ricevuto dall'altra parte come ^[[28~
... che sembra essere mappato su Ctrl+^
(Set Mark) in Nano.
Questo è stato piuttosto fastidioso (immagina qualcuno che prema e tieni premuto il tasto Maiusc mentre sposti il cursore del testo nel Blocco note).
In precedenza, ho fatto numerose personalizzazioni in Putty Impostazioni, ~/.tcshrc
, ~/.inputrc
, ~/.bashrc
, ~/.nanorc
, ~/.screenrc
per ottenere quello che io considero funzionalità di base ( Backspace
, Delete
, Home
, End
, PgUp
, PgDown
, Ctrl+Left
, Ctrl+Right
, Numpad 0-9
, Numpad ./*-+
) lavorare in modo coerente tra bash / nano / schermo.
Una volta scoperto questo caffeine.exe -key:07
"bug", non volevo ripercorrerlo di nuovo :)
Testato su:
Windows 8.1 64 bit Enterprise (6.3.9600) / Putty 0.66 / pfsense 2.3.3-RELEASE-p1 (basato su FreeBSD 10.3-RELEASE) / bash 4.4.12-release / nano 2.7.3 / schermo 4.04. 00
Riferimenti: