He encontrado shreyansp solución 's para ser la mayoría (pero no del todo) una satisfactoria :)
Aquí está mi intento de mejorar la que (por supuesto tu caso es distinto). Espero que esto sea de utilidad para aquellos que buscan una solución :)
Mi solución se comporta de la siguiente manera:
- La cafeína envía a Windows un código de clave virtual apropiado que:
- evita que Windows se quede inactivo o inactivo
- de lo contrario, no genera ningún efecto secundario en Windows ni solo ni en combinación (sin Ctrl, Shift, Alt, Alt-Gr, Win, F1-F5, F10, etc.)
- o no se envía a Putty o es ignorado por Putty
TL; DR: mi solución se aplica entre los pasos 2 y 3 (ver más abajo) con el -key:0Eparámetro cafeína:
Salga de la cafeína y reiníciela con:
caffeine.exe 5 -key:0E(para una prueba fácil)
caffeine.exe 50 -key:0E(para un protector de pantalla obligatorio configurado en 1 minuto)
- Inicie el
readprograma en el host remoto y observe cómo no se reciben pulsaciones de teclas cada 5 o 50 segundos.
- Salir
readconCtrl+C
Shreyansp propuso una solución donde se aplicaría una solución entre los pasos 5 y 10 (ver más abajo).
El efecto secundario de eso (en mi configuración) fue que, con cada pulsación de tecla, esa masilla se reenvía de cafeína al host remoto:
- activó una 'Restablecer barra de desplazamiento al presionar una tecla' (configuración en la página Putty / Window)
que normalmente desearía, pero solo cuando yo (el humano) presiono la tecla pero no regularmente con cafeína :)
- La versión traducida de readline / bash (de
'"\e[28~"'a '""'(¿tecla en blanco?) causó que la interacción de sesión remota se bloqueara durante varios segundos
Para probar fácilmente lo anterior, salga de Caffeine y reinícielo con un intervalo de 5 segundos y el código de clave virtual 07:
caffeine.exe 5 -key:07
- Inicie el
readprograma en el host remoto y observe cómo se reciben las pulsaciones de teclas cada 5 o 50 segundos.
- Salir
readconCtrl+C
La 'tubería' de pulsación de teclas, según tengo entendido:
- La cafeína envía un código de clave virtual a Windows
- Windows envía ese código de clave virtual a Putty
- Putty hace algunas 'traducciones' / 'asignaciones' basadas en algunas configuraciones de sesión en:
- Putty envía el código clave 'traducido' / 'mapeado' al host remoto
- En el host remoto, el programa de 'terminal' (por ejemplo:
$TERM=xterm, vt100, vt102, vt220, etc.) traduce desde el 'protocolo de línea' en códigos de clave.
- la biblioteca readline hace algunas traducciones / asignaciones basadas en
~/.inputrc
- readline envía el código clave a bash
- bash hace algunas traducciones / asignaciones basadas en
~/.bashrc(basado en el comando de enlace incorporado)
- bash o readline (no estoy seguro de cuál) envía el código clave traducido a nano (mi editor de texto)
- Esta canalización puede ser aún más larga al agregar el
screenprograma (que incluye un $TERM=screenpara el paso 5. y vuelve a los bucles en los pasos 6. al 10.)
Nota: Una vez que llega al paso 4., se hace muy difícil controlar con precisión las diferentes capas de 'traducciones' / 'mapeos'. Recomendaría evitar eso si puedes.
Antecedentes:
Utilicé caffeine.exe -key:07durante años antes de tener que lidiar con un pfsense 2.3.3-RELEASE-p1 (basado en FreeBSD 10.3-RELEASE).
Luego, caffeine.exe -key:07fue recibido en el otro lado como ^[[28~... que parece estar asignado a Ctrl+^(Establecer marca) en Nano.
Esto fue bastante molesto (imagina a alguien presionando y manteniendo presionada la tecla Mayús mientras mueves el texto en el Bloc de notas).
Anteriormente, hice numerosas personalizaciones en masilla Ajustes, ~/.tcshrc, ~/.inputrc, ~/.bashrc, ~/.nanorc, ~/.screenrcpara conseguir lo que considero funcionalidad básica ( Backspace, Delete, Home, End, PgUp, PgDown, Ctrl+Left, Ctrl+Right, teclado numérico 0-9, teclado numérico ./*-+) que trabajan consistentemente entre bash / nano / pantalla.
Una vez que descubrí este caffeine.exe -key:07'error', no quise volver sobre eso otra vez :)
Probado en:
Windows 8.1 64-bit Enterprise (6.3.9600) / Putty 0.66 / pfsense 2.3.3-RELEASE-p1 (basado en FreeBSD 10.3-RELEASE) / bash 4.4.12-release / nano 2.7.3 / screen 4.04. 00
Referencias