Ich fand die Lösung von shreyansp die (aber nicht ganz) befriedigendste :)
Hier ist mein Versuch, das zu verbessern (natürlich YMMV). Hoffe, dass dies für diejenigen von Nutzen sein kann, die nach einer Lösung suchen :)
Meine Lösung verhält sich wie folgt:
- Koffein sendet an Windows einen entsprechenden Virtual-Key-Code, der:
- verhindert, dass Windows in den Ruhezustand oder in den Ruhezustand wechselt
- erzeugt sonst keine Nebenwirkungen unter Windows, weder alleine noch in Kombination (keine Strg-, Umschalt-, Alt-, Alt-Gr-, Win-, F1-F5-, F10- usw.)
- Entweder wird nicht an Putty gesendet oder von Putty ignoriert
TL; DR: Meine Lösung wird zwischen den Schritten 2 und 3 (siehe unten) mit dem -key:0E
Koffein-Parameter angewendet: Koffein beenden
und neu starten mit:
caffeine.exe 5 -key:0E
(zum einfachen Testen)
caffeine.exe 50 -key:0E
(für einen obligatorischen Bildschirmschoner, der auf 1 Minute eingestellt ist)
- Starten Sie das
read
Programm auf dem Remote-Host und beobachten Sie, wie alle 5 oder 50 Sekunden keine Tastenanschläge empfangen werden.
- Beenden Sie
read
mitCtrl+C
Shreyansp schlug eine Lösung vor, bei der ein Fix zwischen den Schritten 5 und 10 angewendet wird (siehe unten).
Der Nebeneffekt davon (in meiner Konfiguration) war, dass bei jedem Tastendruck, den der Kitt von Koffein an den Remote-Host weiterleitete:
- es löste eine "Bildlaufleiste bei Tastendruck zurücksetzen" (Einstellung auf Kitt- / Fensterseite) aus,
die ich normalerweise möchte, aber nur, wenn ich (der Mensch) die Taste drücke, aber nicht regelmäßig durch Koffein :)
- readline / bash übersetzte Version (von
'"\e[28~"'
nach '""'
(leerer Schlüssel?)) ließ die Remote-Session-Interaktion für einige Sekunden hängen
Um dies einfach zu testen, beenden Sie Caffeine und starten Sie es mit einem Intervall von 5 Sekunden und Virtual-Key-Code 07 neu:
caffeine.exe 5 -key:07
- Starten Sie das
read
Programm auf dem Remote-Host und beobachten Sie, wie alle 5 oder 50 Sekunden Tastenanschläge empfangen werden.
- Beenden Sie
read
mitCtrl+C
Der Tastenanschlag "Pipeline", wie ich es verstehe:
- Koffein sendet einen Virtual-Key-Code an Windows
- Windows sendet diesen Virtual-Key-Code an Putty
- Putty macht einige 'Übersetzungen' / 'Zuordnungen' basierend auf einigen Sitzungseinstellungen in:
- Putty sendet den übersetzten / zugeordneten Schlüsselcode an den Remote-Host
- Auf dem Remote - Host, das ‚Terminal‘ Programm (zB:
$TERM=xterm
, vt100
, vt102
, vt220
, etc.) übersetzt aus dem ‚Leitungsprotokoll‘ in Tastencodes.
- Die Readline-Bibliothek führt einige Übersetzungen / Zuordnungen basierend auf
~/.inputrc
- readline sendet den Schlüsselcode an bash
- Bash macht einige Übersetzungen / Zuordnungen basierend auf
~/.bashrc
(basierend auf dem eingebauten Bindebefehl)
- Bash oder Readline (nicht sicher, welche) sendet den übersetzten Schlüsselcode an nano (meinen Texteditor)
- Diese Pipeline kann noch länger werden, wenn Sie das
screen
Programm hinzufügen (das ein $TERM=screen
für Schritt 5 enthält und bei Schritt 6 bis 10 wieder zurückspringt).
Hinweis: Sobald Sie Schritt 4 erreicht haben, ist es sehr schwierig, die verschiedenen Ebenen von "Übersetzungen" / "Zuordnungen" genau zu steuern. Ich würde empfehlen, dies zu vermeiden, wenn Sie können.
Hintergrund:
Ich habe caffeine.exe -key:07
jahrelang verwendet, bevor ich mich mit einem Pfsense 2.3.3-RELEASE-p1 (basierend auf FreeBSD 10.3-RELEASE) auseinandersetzen musste.
Dann caffeine.exe -key:07
wurde auf der anderen Seite als ^[[28~
... empfangen, was auf Ctrl+^
(Set Mark) in Nano abgebildet zu sein scheint .
Das war ziemlich ärgerlich (stellen Sie sich vor, jemand drückt die Umschalttaste und hält sie gedrückt, während Sie das Text-Caret im Editor verschieben).
Früher habe ich zahlreiche Anpassungen in Putty - Einstellungen haben, ~/.tcshrc
, ~/.inputrc
, ~/.bashrc
, ~/.nanorc
, ~/.screenrc
zu bekommen , was ich grundlegende Funktionen betrachten ( Backspace
, Delete
, Home
, End
, PgUp
, PgDown
, Ctrl+Left
, Ctrl+Right
, Numpad 0-9
, Numpad ./*-+
) arbeitet konsequent zwischen bash / Nano / Schirm.
Als ich diesen caffeine.exe -key:07
'Bug' entdeckte, wollte ich das nicht noch einmal nachvollziehen :)
Getestet unter:
Windows 8.1 64-Bit Enterprise (6.3.9600) / Putty 0.66 / pfsense 2.3.3-RELEASE-p1 (basierend auf FreeBSD 10.3-RELEASE) / bash 4.4.12-release / nano 2.7.3 / screen 4.04. 00
Verweise: