J'ai trouvé que la solution de shreyansp était la plus (mais pas tout à fait) satisfaisante :)
Voici ma tentative pour améliorer cela (bien sûr YMMV). J'espère que cela peut être utile à ceux qui recherchent une solution :)
Ma solution se comporte comme suit:
- la caféine envoie à Windows un code de clé virtuelle approprié qui:
- empêche Windows de se mettre en veille ou inactif
- ne génère autrement aucun effet secondaire sur Windows ni seul ni en combinaison (pas de Ctrl, Shift, Alt, Alt-Gr, Win, F1-F5, F10, etc.)
- soit n'est pas envoyé à Putty ou est ignoré par Putty
TL; DR: Ma solution est appliquée entre les étapes 2 et 3 (voir ci-dessous) avec le -key:0E
paramètre caféine:
Quittez la caféine et relancez-la avec:
caffeine.exe 5 -key:0E
(pour un test facile)
caffeine.exe 50 -key:0E
(pour un économiseur d'écran obligatoire réglé à 1 minute)
- Lancez le
read
programme sur l'hôte distant et regardez comment aucune frappe n'est reçue toutes les 5 ou 50 secondes.
- Sortez
read
avecCtrl+C
Shreyansp a proposé une solution où un correctif serait appliqué entre les étapes 5 et 10 (voir ci-dessous).
L'effet secondaire de cela (sur ma configuration) était que, à chaque frappe de touche, ce mastic transmis de la caféine à l'hôte distant:
- cela a déclenché une 'Réinitialisation de la barre de défilement sur la touche' (réglage sur la page Putty / Window)
que je voudrais normalement, mais seulement lorsque j'appelle la touche humaine (mais pas régulièrement) avec de la caféine :)
- readline / bash traduit de celui-ci (de
'"\e[28~"'
à '""'
(clé vide?) a provoqué le blocage de l'interaction de session à distance pendant plusieurs secondes
Afin de tester facilement ce qui précède, quittez la caféine et relancez-la avec un intervalle de 5 secondes et le code de clé virtuelle 07:
caffeine.exe 5 -key:07
- Lancez le
read
programme sur l'hôte distant et regardez comment les frappes sont reçues toutes les 5 ou 50 secondes.
- Sortez
read
avecCtrl+C
Le «pipeline» de touches, si je comprends bien:
- La caféine envoie un code de clé virtuelle à Windows
- Windows envoie ce code de clé virtuelle à Putty
- Putty fait des «traductions» / «mappages» basés sur certains paramètres de session dans:
- Putty envoie le code de clé «traduit» / «mappé» à l'hôte distant
- Sur l'hôte distant, le programme « terminal » (par exemple:
$TERM=xterm
, vt100
, vt102
, vt220
, etc.) se traduit par du « protocole de ligne » dans les codes clés.
- la bibliothèque readline fait des traductions / mappages basés sur
~/.inputrc
- readline envoie le code clé à bash
- bash fait des traductions / mappages basés sur
~/.bashrc
(basé sur la commande bind intégrée)
- bash ou readline (je ne sais pas lequel) envoie le code clé traduit à nano (mon éditeur de texte)
- Ce pipeline peut devenir encore plus long en ajoutant le
screen
programme (qui comprend un $TERM=screen
pour l'étape 5. et revient en boucle à l'étape 6. à 10.)
Remarque: Une fois arrivé à l'étape 4., il devient très difficile de contrôler avec précision les différentes couches de «traductions» / «mappages». Je recommanderais d'éviter cela si vous le pouvez.
Contexte:
J'ai utilisé caffeine.exe -key:07
pendant des années avant de devoir gérer un pfsense 2.3.3-RELEASE-p1 (basé sur FreeBSD 10.3-RELEASE).
Ensuite, a caffeine.exe -key:07
été reçu de l'autre côté comme ^[[28~
... qui semble être mappé à Ctrl+^
(Set Mark) dans Nano.
C'était assez ennuyeux (imaginez que quelqu'un appuie sur la touche Maj et la garde pendant que vous déplacez le curseur texte dans le Bloc-notes).
Auparavant, je l' ai fait de nombreuses personnalisations dans Putty Paramètres, ~/.tcshrc
, ~/.inputrc
, ~/.bashrc
, ~/.nanorc
, ~/.screenrc
pour obtenir ce que je considère les fonctionnalités de base ( Backspace
, Delete
, Home
, End
, PgUp
, PgDown
, Ctrl+Left
, Ctrl+Right
, Numpad 0-9
, Numpad ./*-+
) travaillant régulièrement entre bash / nano / écran.
Une fois que j'ai découvert ce caffeine.exe -key:07
`` bug '', je n'ai plus voulu le retracer :)
Testé sur:
Windows 8.1 64 bits Enterprise (6.3.9600) / Putty 0.66 / pfsense 2.3.3-RELEASE-p1 (basé sur FreeBSD 10.3-RELEASE) / bash 4.4.12-release / nano 2.7.3 / screen 4.04. 00
Les références: