私の目標は、コマンドラインインターフェイスプログラムがキーボード入力に対して期待どおりに動作する端末をセットアップすることです(プログラムは元々Windows用にxharbourで記述されていますが、今はLinuxに移植したいと思います)。xtermの方が簡単で、デフォルトのターミナルキーの組み合わせを無効にする必要がないため、最初にxtermを選択しました。
パテを使用すると、ほとんどの文字がうまく機能し、autohotkey、ahkスクリプトを使用しない場合は、それでうまくいきます。たとえば、Ctrl + F1の場合:
^F1::SendInput ^[O5P
私はterminfoを試し、変更し、再コンパイルし、変更し、キーボードタイプを変更しましたが、ターミナルでCtrl+F1を押したときに^[O5P応答を取得できませんでした。この変更を行う方法をご存知の場合は、教えてください...これを行うと思われる数百ページを読みましたが、これらの変更はすべて効果がなかったか、期待した効果がありませんでした。
そこで、Ctrl +F1から^[O5Pの目標を達成するために端末設定を変更しようとして、autohotkeyと同様のことを行うコマンドとプログラムをいくつか試しました。
xmodmap
、ただし、キーの組み合わせの場合は機能しませんxdotool
windowactivate xyz type ^ [O5P、これは個々の文字の文字コードを返しますxmacro
、他のウィンドウにキーストロークを送信しませんironahk
、example.ahkを実行しようとすると、最初にエラーが発生し、ライトマニュアルで目的のコマンドが見つかりませんでした。bind '\e[1;5P":"\e[O5P"'
、ここで最初のキーコードは、ctrl + f1と入力したときに現在取得しているものであり、この組み合わせで取得したいキーコードの後にあります。無効。xbindkeys
+xvkbd
、どちらも助けにはならなかった。
これを達成するために何らかの方法で管理されていることをすでに知っている場合は、私を助けてください(キーの組み合わせに対して返されるキーコードを変更してください)。
テストには最新のCentOSとUbuntuを使用しています。