web-dev-qa-db-ja.com

i3でキーボードレイアウトを切り替える

Ubuntu 16.04に新しいi3バージョン4.11(2015-09-30、ブランチ "4.11")をインストールしています。実際には、たとえばenfr、およびruの3つの異なるキーボードレイアウトを使用する必要があります。キーボードショートカットを使用してそれらを切り替えることもできます。

私はいくつかの方法を試しましたが、どちらも完全に満足のいくものではありませんでした。

  • ibus-daemonを使用してもほとんど機能しますが、レイアウトの変更にショートカットを使用できません。
  • 実際のセットアップでは、i3を開始するときにsetxkbmapを構成しています。

    exec --no-startup-id "setxkbmap -model pc105 -layout fr,us,ru -option grp:alt_shift_toggle"
    

そのため、レイアウトを切り替えることができますが、このセットアップにはトレイアイコンがないため、実際に使用しているレイアウトがわからないことがあります。

結論として、私のニーズは次のとおりです。

  • いくつかのホットキーを押してレイアウトを切り替えることができます。

  • 私が実際に使用しているレイアウトの表示(できれば、トレイアイコン)。

これに関する回避策はありますか?それとも、実際に仕事をするi3プラグインがありますか?いくつかのサードソフトウェア?

4
Niakrais

xkblayout-statei3blocks でできます

xkblayout-stateの場合:

gitを持っていると思います。

~$ git clone https://github.com/nonpop/xkblayout-state.git
~$ cd xkblayout-state
~$ make

コンパイルされたxkblayout-statePATHのどこかにコピーします。次に例を示します。

~$ `cp xkblayout-state /usr/local/bin/`

i3blocksの場合:

Sudo apt-get install i3blocks
cp /etc/i3blocks.conf ~/.i3blocks.conf

i3設定ファイル(〜/ .config/i3/config)で、i3statusi3blocksに置き換えます。

# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
        status_command i3blocks
        tray_output primary                                               
}
# in case of layout change event - send signal to i3blocks
bindsym ISO_Next_Group exec pkill -RTMIN+1 i3blocks

i3wm(mod + shift + R)を再起動すると、i3blocksが表示されます。

~/.i3blocks.confを開き、どこかに追加します(たとえば、[VOLUME]セクションのすぐ上):

#Language indicator
[language]
#label=LNG
command=xkblayout-state print %s | awk '{print toupper($0)}'
interval=once
signal=1

繰り返しますが、i3wm(mod + shift + R)を再起動すると、ステータスバーにロケールが表示されて切り替わります。

xkblayout-state --helpをチェックしてください。さまざまな出力のための多くのオプションがあります。

5
aring