Gnomeのスタートアップアプリケーションでxdotoolが動かなくなってたので対応した

ibus-mozcは起動時にIMEが有効になっているため、IMEを無効にするためにこの記事を参考にして対応している。具体的には、xdotoolで自動的にMuhenkanキーを押してもらうだけのシェルスクリプトを書いてGnomeのスタートアップアプリケーションに登録している。(自分はMuhenkanキーでIMEの無効化、HenkanキーでIMEの有効化をやってる)

#!/bin/bash

sleep 1
xdotool key Muhenkan
exit
[Desktop Entry]
Name=AutoStart
GenericName=Auto Start Script
Comment=no comment
Exec=/home/shallovv/.auto_start.sh
Icon=utilities-terminal
Terminal=true
Type=Application
StartupNotify=false

シェルスクリプト(.auto_start.sh)を${HOME}/に置いて、アプリケーションエントリ(autostart.desktop)を${HOME}/.config/autostart/に置いておく。

これをやっておくと非常に便利だったんだけど、最近になってうまく動作しないようになっていた。シェルスクリプトは実行されているようなんだけど、何故かIMEが無効にならず有効のままになっているのだ。地味に困るので、シェルスクリプトを以下のように書き換えて対応した。ちなみにGnomexdotoolのバージョンはこれ。

  • gnome-desktop 1:40.4-1
  • xdotool 3.20211022.1-1
#!/bin/bash

sleep 1
xdotool key a
xdotool key Muhenkan
xdotool key BackSpace
exit

動作としてはなにか文字を入力して、MuhenkanキーでIMEを無効化し、直前に入力した文字を最後に消す、ということをやっている。Gnomeの起動時はActivities Overviewになっていて、その状態で文字を入力するとGnome Searchに入力される。文字を入力する状態ならIMEの有効化/無効化が行えるようになるので、IMEを無効化し、余計な文字を消している。

これで、以前のようにGnomeの起動時にIMEの無効化を行えるようになったがなんで変わってしまったのだろう。多分Gnomeをアップデートした際の問題だと思うのだがよくわからん。