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=screen
forステップ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
参照: