Ctrl-Enter、Shift-Enter、Enter は同じキーとして解釈されます。

Ctrl-Enter、Shift-Enter、Enter は同じキーとして解釈されます。

私はKDEでFedora 30を使用しており、使いやすさのために(Zsh)を+autosuggest-executeにバインドしようとしています。私はそれを動作させようとしています。CtrlEntergnome-terminal

しかし、私は、+と+の3つのケースで常に返されることがわかりましたshowkey -a^MEnterCtrlEnterShiftEnter

私はこれを試しました方法Ctrl <Return> : "\033M"in .XCompose)しかし、XComposeファイルを読み取らず、まったく動作しません。だからibusそのままインストールすることにしました私のKDEインストールには次のものは含まれていません。そしてdnf groupinstall input-methods

今すぐ実行すると、ìbus-setup次の警告が表示されます。

GTK+ supports to output one char only: "\033M": ! Ctrl <Return> : "\033M"

^M残念ながら、すべての入力の組み合わせは依然としてingnome-terminalに帰結しますxterm

ibusの有無にかかわらず、これらのキーの組み合わせを区別する方法はありますか?

ベストアンサー1

ibusなどを設置する必要はありません。すべてのX11アプリケーションは正しいキーコードにアクセスできます。そしてxkb/xim 翻訳で、そしておそらく無視する後者の。

問題は、端末エミュレータにあり、Ctrl-Enterなどの端末でキーの組み合わせを表す標準的な方法がないという事実です。また、各端末エミュレータには独自のキーバインディングの設定方法がある場合とありません。

他のxtベースのアプリケーションと同様に、xtermX11リソースを使用して簡単に設定できます。たとえば、次はCtrl-EnterをF33ファンクションキーに対応するエスケープ文字に変換します(に従ってinfocmp)。

xterm -xrm '*VT100*translations: #override Ctrl<Key>Return:string("\033[20;5~")'

\e[20;5~その後、readline ~/.inputrc、with bindin bash、with bindkeyinなどでzsh目的のアクションにバインドできます。

X11リソースはルートウィンドウのプロパティとして保存され、ユーティリティを使用してルートウィンドウにロードRESOURCE_MANAGERできます。通常、これはファイルの内容をロードするためにx11セッション初期化スクリプトで呼び出されます。xrdbxrdb~/.Xresources

KDEまたはGnomeアプリケーションには、キーの組み合わせの動作を設定する独自の方法がkonsoleありますgnome-terminal。ここに擬似ttyマスターにランダムな文字列を書き込む機能が含まれているかどうかはわかりません。

おすすめ記事