私は20.04 Ubuntuシステムを使用しています。
setxkmap
xcape
私は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