Пользовательская клавиша для переключения раскладки клавиатуры

Я хочу установить ключ для переключения языка моей клавиатуры на «` », но у меня нет этой опции в« Раскладке клавиатуры »в Unity в Ubuntu 12.04. Я уже видел этот ответ , но он мне не помогает. Можете ли вы указать мне, как использовать setxkbmap? (если это путь). Спасибо!

4
задан 13 April 2017 в 15:24

2 ответа

Вот простой способ сделать это, но вы ограничены тем, какие ярлыки вы можете использовать. Откройте «Системные настройки» -> «Клавиатура». Нажмите «Настройки макета», внизу. Нажмите кнопку +, чтобы добавить любые языки, которые вам нужны. Затем нажмите «Параметры ...». Там вы можете установить нужные комбинации клавиш, выбрав «Ключ (и) для изменения макета». Если вы хотите, вы также можете использовать светодиодный индикатор клавиатуры, чтобы показать, когда вы используете альтернативный макет (например, блокировку прокрутки) в разделе «Использовать светодиодный индикатор клавиатуры, чтобы показать альтернативный макет».

Это немного более сложный способ, но он даст вам больше гибкости для комбинации клавиш. Во-первых, скопируйте и вставьте этот скрипт, который я написал, и назовите его примерно как kb_toggle.sh. Обязательно измените LANG1 и LANG2 так, чтобы они соответствовали кодам раскладки клавиатуры.

#!/bin/bash

LANG1="us"
LANG2="de"
CURRENT_LANG=$(setxkbmap -query | tail -n 1 | cut -f6 -d ' ')
if [ "$CURRENT_LANG" = $LANG1 ]; then
    setxkbmap $LANG2
else
    setxkbmap $LANG1
fi

создайте файл, щелкнув по нему правой кнопкой мыши -> «Свойства» -> вкладка «Разрешения», затем выберите «Разрешить запуск файла как программы».

Теперь откройте «Настройки системы» - > «Клавиатура» -> вкладка «Сочетания клавиш» и выберите «Пользовательские сочетания клавиш». Нажмите кнопку «+» внизу и назовите ярлык «Переключение с клавиатуры» или как хотите, а затем укажите полный путь к сценарию, который вы сделали ранее. в окне командной строки. Нажмите «Применить». Щелкните там, где написано «Отключено», тогда вы можете установить ярлык на любое значение, нажав комбинацию клавиш!

Еще одна вещь. Не думаю, что она позволит вам установите его на одну клавишу, например "", you may have to do SHIFT+ или что-то в этом роде.

0
ответ дан 13 April 2017 в 15:24

Во-первых: Большое спасибо Reverendj1 за ваш сценарий - вы молодцы! Я изо всех сил пытался найти ответ на вопрос, почему выбор «ключ (ов) для изменения макета» полностью игнорируется. Как сказал Димитрис, это не ответ, но это хорошая работа.

Важно: мне нужно было изменить одну вещь в вашем сценарии.
- В 12.04 моя последняя строка вывода setxkbmap -query выводит "options: grp: ...". Итак, я использовал трубу для grep «layout» вместо команды «tail -n1». Таким образом, скрипт выглядит так:

#!/bin/bash
LANG1="us"
LANG2="de"
# CURRENT_LANG=$(setxkbmap -query | tail -n 1 | cut -f6 -d ' ') # OLD LINE
CURRENT_LANG=$(setxkbmap -query | | grep "layout" | cut -f6 -d ' ')
if [ "$CURRENT_LANG" = $LANG1 ]; then
    setxkbmap $LANG2
else
    setxkbmap $LANG1
fi

Примечание: если кто-то изменит количество пробелов в строке «layout: us», то опция -f6 не сможет вернуть «us». Это, вероятно, должно быть исправлено в будущем.

Опять же, большое спасибо за это исправление. Теперь я могу работать намного эффективнее. ** Извините, это было слишком многословно

0
ответ дан 13 April 2017 в 15:24

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

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