Перемикайте розкладки клавіатури на i3


4

У мене на моєму Ubuntu 16.04 встановлена ​​нова версія i3 версії 4.11 (2015-09-30, відділення "4.11"). На насправді мені потрібно використовувати 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, який насправді виконує цю роботу? Якесь третє програмне забезпечення?


Це не завдання менеджера вікон, тому не шукайте для цього i3. Будь ласка, зробіть кілька досліджень, про це вже запитували і відповіли раніше. У будь-якому випадку, щодо того, що сказав @shellter, i3 має підрядник (i3wm) для таких питань.
Інго Бюрк

1
@ IngoBürk десь відповіли на всі питання :) Я згоден, що це не завдання менеджера вікон, але це, безумовно, робота для робочого середовища! Тому я шукаю інструменти (и) / рішення, які будуть робити те, що я хочу у поєднанні з i3. Все одно дякую за пораду subreddit, я буду шукати це.
Ніакрайз

Відповіді:


5

Ви можете це зробити за допомогою 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 / конфігурації) замінити 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, є багато варіантів для різного виводу.


Отже, ключ використовує i3blocks замість i3status.
Niakrais

@Niakrais, ключовим є лайно . Існує багато способів, і це один з них. Поточна проблема - i3statusне настільки гнучка (тому більш розумна i3blocks) і не існує простого способу отримати поточну розкладку клавіатури, тому - ось чому є. xkblayout-stateОснови такого підходу: чіткі, стислі. І ви можете легко змінити / розширити i3blocksпізніше. xkblayout-stateможе бути легко використаний і деінде. Якщо ви хочете дотримуватися i3status- ви також можете подивитися тут: reddit.com/r/i3wm/comments/4ib2fp/…
aring

Звичайно, і це працює нормально, я коли-небудь намагався встановити інтервал на -2 для перевірки xkblayout-state, але це перегріває мій процесор :)
Niakrais

@Niakrais, так, завдяки сучасним багатоядерним технологіям та концертам барана - ми можемо стріляти в ногу швидше, ніж будь-коли. Якщо вам потрібно контролювати ваш макет kbd кожні мілісекунди - ви можете це зробити, але це буде дорого.
aring

@Niakrais, завдяки вам, я знову почав копати - перевірити відредаговану відповідь зараз, це набагато краще.
aring
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.