Переключение раскладок

Настройка графического интерфейса, Иксов, десктопов, оконных менеджеров и иксовых терминалов

Модераторы: broom, aim

Аватара пользователя
Janik
Сообщения: 756
Статус: Оператор вычислительных машин
ОС: Debian

Переключение раскладок

Сообщение Janik » 04.05.2017 22:42

Имеются 3 раскладки: английская, русская-печатная машинка и казахская. Как сделать в иксах так, чтобы по caps lock переключалось между английской и русской, а на казахскую переключалось другой клавишей, например alt+caps?
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: Переключение раскладок

Сообщение yoshakar » 05.05.2017 07:14

Уточните, вы используете "голый" WM (какой?) или DE (какую?)
Спасибо сказали:

Аватара пользователя
Janik
Сообщения: 756
Статус: Оператор вычислительных машин
ОС: Debian

Re: Переключение раскладок

Сообщение Janik » 05.05.2017 07:36

Действительно, забыл уточнить. Да, используется openbox, все настройки раскладок заданы в xorg.conf. Так что меня интересует как сделать это минимальными средствами.
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: Переключение раскладок

Сообщение yoshakar » 05.05.2017 11:31

Ну, сделать это можно, но только с помощью xkb довольно сложно. Я бы попробовал использовать xbindkeys — повесить с помощью него на нужное сочетание shell-скрипт, из которого перенастраивать xkb. Мне кажется, это проще, чем честно настраивать xkb (готового рецепта, по-видимому, не существует).
Спасибо сказали:

Аватара пользователя
yoricI
Сообщения: 727
ОС: gentoo fluxbox

Re: Переключение раскладок

Сообщение yoricI » 05.05.2017 13:34

А как сейчас настроено и как работает (по каким кнопкам)?
Спасибо сказали:

Аватара пользователя
Janik
Сообщения: 756
Статус: Оператор вычислительных машин
ОС: Debian

Re: Переключение раскладок

Сообщение Janik » 05.05.2017 13:44

Щас только есть русская и аглийская раскладки, переключаются по caps lock.

yoshakar писал(а):
05.05.2017 11:31
Я бы попробовал использовать xbindkeys

А Ваш метод попробую, всё-таки не каждый день мне надо вводить казахские символы.
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:

Аватара пользователя
chitatel
Сообщения: 1634

Re: Переключение раскладок

Сообщение chitatel » 05.05.2017 16:25

Можно нашлёпку типа xxkb. Давно использовал для трёх раскладок как раз.
Спасибо сказали:

Аватара пользователя
Stauffenberg
Сообщения: 2020
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Переключение раскладок

Сообщение Stauffenberg » 05.05.2017 17:46

Вот так переключаюсь с немецкой на русскую при помощи Caps Lock в fluxbox.
setxkbmap -model logidinovoedge -layout de,ru -variant deadacute,winkeys
setxkbmap -option grp:caps_toggle
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:

Аватара пользователя
Janik
Сообщения: 756
Статус: Оператор вычислительных машин
ОС: Debian

Re: Переключение раскладок

Сообщение Janik » 05.05.2017 19:33

Изобрел такой велосипед:

Код: Выделить всё

#!/bin/sh
#kzkbswitch.sh

STATEFILE=~/.kbstate

if [ -f $STATEFILE ]; then
    STATE=`cat $STATEFILE`;
else
    echo "rus" > $STATEFILE;
    STATE="rus";
fi

if [ $STATE = "rus" ]; then
    setxkbmap us,kz;
    echo "kaz" > $STATEFILE;
else
    setxkbmap us,ru -variant ,typewriter;
    echo "rus" > $STATEFILE;
fi


В настройках Openbox забиндил клавиши Alt+Ctrl+Shift+Home на этот скрипт.
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали: