Расширенные возможности раскладки клавиатуры
Я использую английскую, русскую и армянскую раскладки клавиатуры. Когда я пытаюсь изменить макет, он меняет "en" -> "am" -> "ru" -> "en"... Я хочу использовать левый Alt + Shift для переключения "en" и "am", и Право Alt + Shift для переключения "en" и "ru". Вы можете мне помочь?
1 ответ
Существует множество сочетаний клавиш для выбора между раскладками клавиатуры, но ни один из них не соответствует тому, что вы хотите.
В любом случае, это можно сделать с помощью скриптов bash и двух пользовательских ярлыков.
Сначала создайте скрипт, давайте назовем его change_layouts
:
#!/bin/bash
#script to switch between two keyboard layouts
if [ $# -ne 2 ];then
echo "Usage: `basename $0` first_layout second_layout"
echo " ex: change_layouts us ru"
exit
fi
first_layout=$1
second_layout=$2
if [ -z "$(ls -l /usr/share/X11/xkb/symbols | grep ^- | awk '{print $9}' | grep $first_layout)" ]; then
echo "Error: Doesn't exists ant keyboard layout called '$first_layout'."
exit
fi
if [ -z "$(ls -l /usr/share/X11/xkb/symbols | grep ^- | awk '{print $9}' | grep $second_layout)" ]; then
echo "Error: Doesn't exists ant keyboard layout called '$second_layout'."
exit
fi
if [ "$first_layout" = "$second_layout" ]; then
echo "Error: The arguments (keyboard layouts) must to be different."
exit
fi
current_layout=$(gsettings get org.gnome.libgnomekbd.keyboard layouts)
if [ "$current_layout" = "['$first_layout', '$second_layout']" ]; then
gsettings set org.gnome.libgnomekbd.keyboard layouts "['$second_layout', '$first_layout']"
else
gsettings set org.gnome.libgnomekbd.keyboard layouts "['$first_layout', '$second_layout']"
fi
Сохраните скрипт в своем ~/bin
каталог и не забудьте сделать его исполняемым:
chmod +x ~/bin/change_layouts
Теперь вы можете протестировать скрипт в терминале. Запустите его еще раз, чтобы увидеть, как это работает.
Во-вторых, добавьте свои собственные ярлыки. Перейдите в " Настройки системы" → " Клавиатура" → " Сочетания клавиш" → " Сочетания клавиш" и следуйте инструкциям на изображении ниже: