shreyanspの解決策が最も(しかし完全ではない)満足のいくものであることがわかりました:)
これを改善するための私の試みは(もちろんYMMV)です。これが解決策を探している人々に役立つことを願っています:)
私のソリューションは次のように動作します:
- カフェインは、次の適切な仮想キーコードをWindowsに送信します。
- Windowsがスリープ状態またはアイドル状態になるのを防ぎます
- それ以外の場合、Windows上で単独でも組み合わせでも副作用を生成しません(Ctrl、Shift、Alt、Alt-Gr、Win、F1-F5、F10などはありません)
- パテに送信されないか、パテに無視されます
TL; DR:私のソリューションは、ステップ2と3の間に適用されます(以下を参照)-key:0Eカフェインパラメーター:
カフェインを終了して、再起動します:(
caffeine.exe 5 -key:0E簡単なテストのため)
caffeine.exe 50 -key:0E(必須のスクリーンセーバーを1分に設定するため)
readリモートホストでプログラムを起動し、5〜50秒ごとにキーストロークが受信されないことを確認します。
- 出口
readとCtrl+C
Shreyanspは、手順5と10の間に修正が適用されるソリューションを提案しました(以下を参照)。
その副作用(私の設定では)は、パテがカフェインからリモートホストに転送されるキーストロークごとに次のようになりました。
- それは「キープレスでスクロールバーをリセットする」(Putty / Windowページで設定)
をトリガーしましたが、これは通常は必要ですが、私(人間)がキーを押しているがカフェインで定期的にではありません:)
- readline / bashの翻訳バージョン(from
'"\e[28~"'から'""'(空白キー?)により、リモートセッションの対話が数秒間ハングしました。
上記を簡単にテストするには、Caffeineを終了し、5秒間隔とVirtual-Key Code 07で再起動します。
caffeine.exe 5 -key:07
readリモートホストでプログラムを起動し、5〜50秒ごとにキーストロークがどのように受信されるかを確認します。
- 出口
readとCtrl+C
私が理解しているように、キーストローク「パイプライン」:
- CaffeineはWindowsに仮想キーコードを送信します
- Windowsはその仮想キーコードをPuttyに送信します
- Puttyは、以下のセッション設定に基づいて「翻訳」/「マッピング」を行います。
- Puttyは、「translated」/「mapped」キーコードをリモートホストに送信します
- リモート・ホスト上で、「端末」プログラム(例:
$TERM=xterm、vt100、vt102、vt220、など)をキーコードに「線プロトコル」から翻訳します。
- readlineライブラリは、に基づいていくつかの翻訳/マッピングを行います
~/.inputrc
- readlineはキーコードをbashに送信します
- bashは
~/.bashrc(組み込みのbindコマンドに基づいて)に基づいていくつかの変換/マッピングを行います
- bashまたはreadline(どちらが不明か)が翻訳されたキーコードをnano(私のテキストエディター)に送信します
screenプログラムを追加すると、このパイプラインはさらに長くなる可能性があります($TERM=screenforステップ5 が含まれ、ステップ6から10でループバックします)
注:手順4に到達すると、「翻訳」/「マッピング」のさまざまなレイヤーを正確に制御することが非常に難しくなります。できればそれを避けることをお勧めします。
背景:
私caffeine.exe -key:07はpfsense 2.3.3-RELEASE-p1(FreeBSD 10.3-RELEASEに基づく)を扱う必要がある前に何年も使用していました。
その後、caffeine.exe -key:07反対側で受け取られた^[[28~... Ctrl+^はNanoの(Set Mark)にマッピングされているようです。
これは非常に面倒でした(メモ帳でテキストキャレットを移動しているときに誰かがShiftキーを押したままにすることを想像してください)。
以前、私は、パテセッティングに多くのカスタマイズをした~/.tcshrc、~/.inputrc、~/.bashrc、~/.nanorc、~/.screenrc私は基本的な機能(考えるものを手に入れるBackspace、Delete、Home、End、PgUp、PgDown、Ctrl+Left、Ctrl+Right、テンキー0-9、テンキーが./*-+)bashの/ナノ/画面間で一貫して取り組んでいます。
このcaffeine.exe -key:07「バグ」を発見したら、それをもう一度たどりたくありませんでした:)
テスト済み:
Windows 8.1 64-bit Enterprise(6.3.9600)/ Putty 0.66 / pfsense 2.3.3-RELEASE-p1(FreeBSD 10.3-RELEASEに基づく)/ bash 4.4.12-release / nano 2.7.3 / screen 4.04 00
参照: