setxkbmapとxmodmapがしばしば動作を停止する

setxkbmapとxmodmapがしばしば動作を停止する

スクリプトがあります。

  1. アクセント表示を含むようにキーボードレイアウトを設定する

  2. 押しながら Caps Lock をモードに設定

  3. 押されたときにエスケープするようにCaps Lockを設定する

次のようになります。

setxkbmap -rules evdev -model evdev -layout us -variant altgr-intl &
sleep 1
xmodmap ~/.Xmodmap &
sleep 1
killall -q xcape &
xcape -e "Hyper_L=Escape" &

sleepそうでなければうまくいかないので、これが存在します。理由はわかりませんが、したいと思います。さらに、時にはエスケープ部分が機能しなくなり、スクリプトを再起動する必要があります。何がこれを引き起こすのかよくわかりませんが、迷惑です。

答え1

&すべてのコマンドをバックグラウンド(行末)に配置すると、レースの競合が発生します。この&コマンドを削除すると、順番に実行されます。

関連情報