AltGrとEscapeへのCaps Lockのマッピング - setxkbmapがxcapeデーモンをサイレントするのはなぜですか?

AltGrとEscapeへのCaps Lockのマッピング - setxkbmapがxcapeデーモンをサイレントするのはなぜですか?

私は20.04 Ubuntuシステムを使用しています。

setxkmapxcape私はAltGrとEscキーをwhereと組み合わせてCaps Lockキーにマッピングしようとしました。クイックキーを押す~で行動する脱出するそして長いキー押し時間~で行動する代替グループ

私は次のことを行うことで望ましい動作を達成できると思います。

$ setxkbmap -option lv3:caps_switch
$ xcape -e 'Caps_Lock=Escape' -t 300

ただし、setxkbmap コマンドが実行されると、xcape プロセス/デーモンは、Caps Lock をクリックするとエスケープ文字として機能しなくなります。それ以来、なぜそうしたのかはよくわかりませんが、xcape プロセスはまだ実行中です。だから私はおそらくsetxkbmapがどのように動作するか見落としているようです(別の順序でコマンドを実行しようとしましたが、同じ結果が得られました)。

目的の動作をどのように達成できますか?

setxkbmapコマンドの前後にxcapeを実行するかどうかに関係なく、setxkbmapがxcapeデーモンを「自動化」するのはなぜですか?

答え1

setxkbmapあなたの質問とは関係ありません。文書X角度言及(強調):

-t <timeout ms>

この時間より長くキーを押し続けると停止する、x角度主なイベントは生成されません。。デフォルト値は500ミリ秒です。

答え2

次のコマンドを実行すると、必要な動作が得られます。

# create daemons that map Caps Lock with AltGr and Escape (escape is timed out) 
$ xcape -e "#66=Escape" -t 300
$ xcape -e "#66=ISO_Level3_Shift"
# changes current X keyboard session configuration
$ setxkbmap -option lv3:caps_switch

関連情報