Переключите раскладки клавиатуры с i3

У меня есть новая i3 версия 4.11 (30.09.2015, ответвление "4.11") установленный по моей Ubuntu 16.04. На самом деле я должен использовать 3 различных раскладки клавиатуры, например, en, fr и ru с возможностью переключиться между ними при помощи некоторого сочетания клавиш.

Я попробовал некоторые методы, но ни один не был абсолютно удовлетворительным:

  • Используя ibus-daemon почти работы, но я не могу использовать ярлыки для разметок изменения.
  • Моя фактическая установка настраивает setxkbmap когда я запускаю i3:

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

Таким образом, я могу переключиться между своими разметками, но иногда я понятия не имею, какое расположение я на самом деле используюсь, потому что нет никакого значка панели задач для этого в этой установке.

Для заключения мои потребности:

  • Смогите переключить разметки путем нажатия некоторых горячих клавиш.

  • Некоторые признаки (предпочтительно, значок панели задач) для расположения я на самом деле используюсь.

Есть ли некоторая работа вокруг об этом? Или возможно существует некоторый i3 плагин tha t, на самом деле делает задание? Некоторое третье программное обеспечение?

4
задан 29 January 2018 в 01:17

2 ответа

Можно сделать это с xkblayout-state и i3blocks

Для xkblayout-state:

Я предполагаю, что Вы имеете git.

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

Теперь копия скомпилирована xkblayout-state где-нибудь в Вашем PATH, например:

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

Теперь для i3blocks:

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

В Вашем i3 файл конфигурации (~/.config/i3/config) замена i3status с 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

И перезапуск 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, существует много опций для другого вывода.

6
ответ дан 1 December 2019 в 09:21

Выполните ответ @aring:

Вы можете сделать это с помощью xkblayout-state и i3blocks

Переключение между двумя языками с помощью xkblayout-state, поместите это в свой ~/.config/i3/config file:

bindsym $mod+b exec xkblayout-state set $(( $(xkblayout-state print %c) ^ 1 ))
1
ответ дан 1 April 2020 в 09:22

Другие вопросы по тегам:

Похожие вопросы: