The problem: keyboard layouts [unsolved]

Обычные человеки используют две раскладки — английскую и свою нативную. Но что делать, если ты полиглот и общаешься / пишешь на разных языках? Пусть это будет самый простой вариант — родной язык и два иностранных, с разными символами (английский, русский и хинди).

Все системы, которые есть на данный момент, будь то Windows / Mac OS X / *nix, предлагают лишь один способ переключения между ними, а именно — ротацию между раскладками. Это есть не всегда удобно, даже я бы сказал, совсем неудобно.

В Mac OS X — это недоразумение сглажено несколько отличным методом переключения — при однократном нажатии сочетания клавиш, ответственных за переключение раскладок — система переключает между собой последние две используемые раскладки, при удержании клавиш — вылезает список со всеми выбранными раскладками, из которых пользователь может выбрать нужную.

Но и это не всегда удобно.

Ни одна из систем не поддерживает переключения разных наборов раскладок на разных сочетаниях клавиш. Например, super + space — переключается между en / ru , а option + space — переключается на хинди или набор из хинди / японский.

Конечно же я просто не все знаю о возможностях упомянутых систем, но пришлось изобретать велосипед и для Linux Mint LMDE 2 решение было таким:

git clone https://github.com/nonpop/xkblayout-state
#!/bin/bash
# change_layout - скрипт переключающий язык

ARA=0
EN=1
RU=2

bin="xkblayout-state"
if [ $# -eq 0 ]; then
        CL=`$bin print %c`
        if [ $CL -eq $EN ]; then
                # set RU
                $bin set $RU
        else
                # set EN
                $bin set $EN
        fi
else
        # set ARABIC
        $bin set $ARA
fi
#!/bin/bash
# install script

sudo apt-get install git libx11-dev
git clone https://github.com/nonpop/xkblayout-state
cd ./xkblayout-state
make && strip ./xkblayout-state
sudo cp ./xkblayout-state /usr/local/bin/
make clean
cd .. && sudo cp ./change_layout /usr/local/bin/

Выбираем нужные языки и отключаем все сочетания клавиш для переключения раскладок
3

Настраиваем новые сочетания клавиш
2

1

После данных действий сочетание клавиш Alt_Shift — будет переключаться между en/ru , а Super(Windows)_Shift — будет переключать на арабскую вязь.

П.С. Для использования скрипта с другими раскладками — возможно придется изменить порядковые номера раскладок, насколько я понял они нумеруются после сортировки списка раскладок.

П.П.С. Скрипт можно расширить и дополнить, но мне было лень, пусть останется так, чтобы при вспоминании мозг хоть немного шевелился и сделал это сам.

Запись опубликована в рубрике Новости. Добавьте в закладки постоянную ссылку.