コマンドラインからCinnamonで現在アクティブなキーボードレイアウトを変更する方法はありますか?
ほとんどのガイドで提案されているsetxkbmap
ソリューションは、想定どおりに機能しません。呼び出されると、Cinnamonの言語インジケーター自体が消え、Cinnamonで構成された既存の組み合わせが機能しなくなります。 。この機能を復元するには、設定に移動して、キーボードレイアウト設定を再度有効にする必要があります。
さらに、setxkbmap
がレイアウトを変更するように見える方法は、Cinnamonが好むと思われるよりも低いレベルであるという性質です。たとえば、setxkbmap
を使用してレイアウトを非ラテンのものに変更する場合、システム全体のデフォルトのキーの組み合わせが機能しなくなります。 (Ctrl-Cで簡単にテストできます)。これは、Cinnamon内からのネイティブレイアウト切り替えでは発生しません。 setxkbmap
は、ほとんどのアプリケーションが期待するレベルよりも低いレベルで動作するようです。
ネイティブのCinnamon(またはそれをベースにしているのでgnome)の方法でレイアウトを変更し、キーボードの組み合わせを機能させる方法はありますか?
(通常提案される別の解決策はgsettings set org.gnome.desktop.input-sources current 0
です。これは現在のCinnamonでも機能しません(何も起こりません))。
もちろん、現在追加されているレイアウトは3つだけですが、可能なインデックスをすべて10個までテストしました。上記の変数は、レイアウトが手動で変更された場合にも変化しないようです。 Cinnamon環境に存在する同様の変数org.cinnamon.desktop.input-sources
も試しましたが、何にも影響しません(gnomeバージョンとまったく同じ方法で)。
現時点での最善の解決策は、コマンドライン引数を受け入れるこの外部プログラム(xkb-switch
)を使用して、xbindkeysなどにスクリプト化することです。
非公式、外部、およびコンパイル可能な言語で記述されていますが、依存関係がほとんどないため、実際にインストールするのは非常に簡単です。
https://github.com/ierton/xkb-switch
$ xkb-switch --help
Usage: xkb-switch -s ARG Sets current layout group to ARG
xkb-switch -l|--list Displays all layout groups
xkb-switch -h|--help Displays this message
xkb-switch -v|--version Shows version number
xkb-switch -w|--wait [-p] Waits for group change and exits
xkb-switch -W Infinitely waits for group change
xkb-switch -n|--next Switch to the next layout group
xkb-switch [-p] Displays current layout group
使用:
xkb-switch -s us
xkb-switch -s de
etc...
このソリューション:
setxkbmap
の切り替えとは異なります)。setxkbmap
のように消えたり機能しなくなりません。)setxkbmap
と同様)。setxkbmap
)。setxkbmap
がそうなら推測してください?)インストール手順はGithubにあります。