キーボードレイアウト間の切り替え時にスクリプトを実行する方法

キーボードレイアウト間の切り替え時にスクリプトを実行する方法

私はいくつかのキーボードレイアウトを使用していますが、レイアウトを切り替えるときにスクリプトを実行する方法を見つけたいと思います。

可能ですか?

これまでは、次のようにスクリプトにショートカットを割り当てることができます。

#!/bin/bash

#switch between two layouts (English and Greek in this case)
current_layouts=$(gsettings get org.gnome.libgnomekbd.keyboard layouts)

if [ "$current_layouts" = "us" ]; then
    gsettings set org.gnome.libgnomekbd.keyboard layouts "['gr']"
else 
    gsettings set org.gnome.libgnomekbd.keyboard layouts "['us']"
fi

exec /path/to/another/script

ただし、このアプローチでは、ショートカットのみを使用してレイアウトを切り替えることができ、キーボードインジケータがステータスメニューから消えて不便になります。

ベストアンサー1

dconf watchイベントリスナーとして使用できます(例:Ubuntu 13.10/14.04)。

dconf watch /org/gnome/desktop/input-sources/current | xargs -L 2 sh -c "echo kbd layout changed" &

おすすめ記事