web-dev-qa-db-fra.com

Changer de clavier avec i3

J'ai une nouvelle version 4.11 d'i3 (2015-09-30, branche "4.11") installée sur mon Ubuntu 16.04. En fait, je dois utiliser 3 configurations de clavier différentes, par exemple en, fr et ru avec la possibilité de basculer entre elles en utilisant un raccourci clavier.

J'ai essayé quelques méthodes mais aucune n'était complètement satisfaisante:

  • Utiliser ibus-daemon fonctionne presque, mais je ne peux utiliser aucun raccourci pour modifier les présentations.
  • Ma configuration actuelle consiste à configurer setxkbmap lorsque je lance i3:

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

Je peux donc basculer d’une mise en page à l’autre, mais parfois, je ne sais pas quelle est la mise en page que je suis en train d’utiliser car il n’ya pas d’icône de bac pour cela dans cette configuration.

Pour conclure mes besoins sont:

  • Pouvoir changer de disposition en appuyant sur certaines touches de raccourci.

  • Certaines indications (de préférence, l'icône de la barre d'état) de la mise en page sont actuellement utilisées.

Y a-t-il un travail autour de ça? Ou peut-être y a-t-il un plugin i3 qui fait le travail? Un troisième logiciel?

4
Niakrais

Vous pouvez le faire avec xkblayout-state et i3blocks

Pour xkblayout-state:

Je suppose que vous avez git.

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

Copiez maintenant le xkblayout-state compilé quelque part dans votre PATH, par exemple:

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

Maintenant pour i3blocks:

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

Dans votre fichier de configuration i3 (~/.config/i3/config), remplacez i3status par i3blocks,

# 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

Et redémarrez i3wm (mod + shift + R), vous devriez maintenant voir que i3blocks est apparu.

Ouvrez votre ~/.i3blocks.conf et ajoutez quelque part (par exemple, juste au-dessus de la section [VOLUME]):

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

Encore une fois, redémarrez i3wm (mod + shift + R) et vous devriez voir vos paramètres régionaux dans la barre d'état, en train de basculer.

Découvrez xkblayout-state --help, il existe de nombreuses options pour différentes sorties.

5
aring