- Linux console (Русский)/Keyboard configuration (Русский)
- Contents
- Просмотр настроек клавиатуры
- Раскладки клавиатуры
- Список раскладок
- Временная конфигурация (Loadkeys)
- Постоянная конфигурация
- Создание своей раскладки
- Добавление директив
- Другие примеры
- Сохранение изменений
- Регулировка задержки и скорости автоповтора
- Служба systemd
- Переключить язык консоль linux
- Как изменить клавиатуру из командной строки?
- 6 ответов
- Ubuntu 13.10 или более поздняя версия
- Caveat
- Вызов при блокировке экрана
Linux console (Русский)/Keyboard configuration (Русский)
Сопоставление клавиш (раскладки) для виртуальной консоли, консольных шрифтов и консольных карт предоставляется пакетом kbd (зависимость для systemd), который также предоставляет множество инструментов низкого уровня для управления виртуальной консолью. Кроме того, systemd также предоставляет инструмент localectl, который может контролировать как локали системы, так и настройки раскладки клавиатуры как для виртуальной консоли, так и для Xorg.
Contents
Просмотр настроек клавиатуры
Используйте localectl status для просмотра текущих конфигураций клавиатуры.
Раскладки клавиатуры
Файлы раскладок хранятся в дереве каталогов /usr/share/kbd/keymaps/ . Обычно один файл keymap соответствует одной раскладке клавиатуры (оператор include может использоваться для совместного использования общих частей, а файл keymap может содержать несколько схем с некоторой комбинацией клавиш, используемой для переключения). Для получения дополнительной информации смотрите keymaps(5) .
Список раскладок
Соглашения об именах консольных раскладок несколько условны, но обычно они основаны на:
- Коды языков: где код языка совпадает с кодом страны (например, ru для русского языка или fr для французского языка).
- Коды стран: где варианты одного и того же языка используются в разных странах (например, uk для английского языка в Великобритании или us для Соединенных Штатов Америки); список кодов стран также можно найти в w:ru:ISO 3166-1#Список кодов по ISO 3166.
- Раскладка клавиатуры: где раскладка не связана с конкретной страной или языком (например, dvorak для раскладки клавиатуры Dvorak).
Для получения списка всех доступных раскладок используйте команду:
Чтобы найти раскладку клавиатуры, используйте следующую команду, заменив search_term кодом для вашего языка, страны или раскладки:
Альтернативно, используя find:
Временная конфигурация (Loadkeys)
Можно установить раскладку только для текущего сеанса. Это полезно при проверке различных раскладок, решение проблем и т.д.
Для этого используют инструмент loadkeys. Он используется внутри systemd при загрузке раскладки клавиатуры, настроенной в /etc/vconsole.conf . Пользоваться им легко:
Для получения дополнительной информации смотрите loadkeys(1) .
Постоянная конфигурация
Постоянную комбинацию клавиш можно установить в /etc/vconsole.conf , которая считывается systemd при запуске. Для указания раскладки используется переменная KEYMAP . Если переменная пуста или не установлена, в качестве значения по умолчанию используется раскладка us . Смотрите vconsole.conf(5) для получения информации обо всех параметрах. Например:
Для удобства, localectl можно использовать для настройки раскладки клавиатуры. Он изменит переменную KEYMAP в /etc/vconsole.conf , а также установит раскладку для текущего сеанса:
Опцию —no-convert можно использовать для предотвращения localectl автоматического изменения раскладки клавиатуры в Xorg до ближайшего совпадения. Для получения дополнительной информации смотрите localectl(1) .
Создание своей раскладки
Вы используете горячие клавиши для вывода особенных символов, пользуясь консолью. Кроме того, мы можем также напечатать последовательность символов и некоторые escape-последовательности. Таким образом, если мы печатаем последовательность символов, составляющих команду, а затем escape-символ для новой строки, эта команда будет выполнена.
Один из способов сделать это — отредактировать файл раскладки. Однако, поскольку он будет перезаписан в любое время, когда пакет, к которому он принадлежит, обновляется, редактирование этого файла не рекомендуется. Лучше объединить существующую раскладку со своей. Утилита loadkeys может сделать это.
Сначала, создайте файл раскладки. Этот файл раскладки может быть где угодно, но этот способ подражает иерархии каталогов в /usr/local :
В качестве примечания следует отметить, что личная раскладка также полезна для переопределения поведения клавиш, уже обработанных стандартной раскладкой: при загрузке с помощью loadkeys директивы в стандартной раскладке будут заменены при конфликте с новыми директивами и сохраняются в противном случае. Таким образом, только изменения в раскладке должны быть указаны в личной раскладке.
Добавление директив
В этой личной раскладке требуются два типа директив. Прежде всего директивы keycode, которые соответствуют формату, указанному в стандартных раскладках по умолчанию. Эти директивы сопоставляют keycode с keysym. Keysyms представляют действия клавиатуры. Доступные действия включают вывод кодов символов или последовательностей символов, переключение консолей или раскладок клавиатуры, загрузку машины и многие другие действия. Полную активную текущую раскладку можно получить с помощью
Большинство keysyms интуитивно понятны. Например, чтобы настроить клавишу 112 для вывода символа ‘e’, директива примет следующий вид:
Чтобы настроить клавишу 112 для вывода символа евро, директива будет следующего вида:
Некоторые keysym не сразу связаны с действиями клавиатуры. В частности, keysyms с префиксом заглавной буквы F и от одной до трех цифр (F1-F246), составляющие число больше 30, всегда свободны. Это полезно для указания горячей клавиши для вывода последовательности символов и других действий:
Затем F70 может быть связан для вывода определенной строки:
Когда клавиша 112 нажата, она выведет содержимое F70. Чтобы выполнить команду в терминале, символ окончания новой строки должен быть добавлен в конец строки с командой. Например, чтобы ввести систему в спящий режим, добавляется следующая строка в раскладку:
Другие примеры
- Чтобы сделать клавишу Правый Alt такой же как клавиша Левый Alt (для Emacs), используй следующую строку в своей раскладке. Это включит файл /usr/share/kbd/keymaps/i386/include/linux-with-two-alt-keys.inc , посмотри его для получения дополнительной информации.
- Чтобы поменять местами CapsLock и Escape (для Vim), выполните переназначение соответствующих кодов клавиш:
- Чтобы сделать CapsLock еще одним Control, выполните переназначение соответствующих кодов клавиш:
- Чтобы поменять местами CapsLock и Левый Control, выполните переназначение соответствующих кодов клавиш:
Сохранение изменений
Чтобы использовать свою раскладку, нужно ее загрузить с помощью loadkeys:
Однако, эта раскладка активна только для текущего сеанса. Чтобы загрузить ее при загрузке, укажите полный путь файла вашей раскладки в переменной KEYMAP в /etc/vconsole.conf. Файл не должен быть запакован, как официальные раскладки, представленные kbd .
Регулировка задержки и скорости автоповтора
Задержка автоповтора означает количество времени (обычно в милисекундах), за которое необходимо нажать и удерживать клавишу для начала повторного процесса. После запуска повторяющегося процесса символ будет повторяться с определенной частотой (обычно заданной в Гц), указанной скоростью автоповтора. Эти значения могут быть изменены с помощью команды kbdrate. Обратите внимание, что эти настройки настраиваются отдельно для виртуальной консоли и для Xorg.
Например, чтобы установить задержку автоповтора в 200 мс и скорость автоповтора в 30 Гц, используйте следующую команду:
Ввод команды без указания задержки и скорости автоповтора приведет к сбросу значений до их соответствующих значений по умолчанию; задержка 250 мс и скорость 11 Гц:
Служба systemd
Службу systemd можно использовать для установки скорости клавиатуры. Например
Источник
Переключить язык консоль linux
Переключение через setxkbmap
Вариант команды переключения на язык RU:
setxkbmap -layout us,ru
Проблемы этой команды:
- после ее выполнения останется только одна раскладка (ru)
- слетит привязка к горячим клавишам, по которым переключатеся раскладка
- индикатор раскладки клавиатуры не будет оповещен о том, что раскладка переключилась
Есть виртуозы, которые говорят, что работают следующие команды:
setxkbmap -layout ‘us,ru’ -option ‘grp:ctrl_shift_toggle’
setxkbmap -layout ‘ru,us’ -option ‘grp:ctrl_shift_toggle’
Якобы, в итоге и переключение остаётся, и текущая раскладка меняется. Но потом они убеждаются, что такой вариант работает правильно лишь тогда, когда текущая раскладка английская, иначе раскладки меняются ролями.
Тогда пробуют добавить в эти команды принудительное начальное переключение на английскую раскладку:
setxkbmap -layout ‘us’ && setxkbmap -layout ‘ru,us’ -option ‘grp:ctrl_shift_toggle’
setxkbmap -layout ‘us’ && setxkbmap -layout ‘us,ru’ -option ‘grp:ctrl_shift_toggle’
Но такой способ тоже не работает: все так же проявляется зависимость от текущей раскладки. И конечно, не оповещается индикатор раскладки клавиатуры.
Переключение через setxkbmap + xdotool
Единственный рабочий вариант — это настроить переключение раскладок на нужное сочетание клавиш, а потом вызвать нажатие данного сочетания клавиш через xdotool . Например:
1. Вешаем переключение раскладок на какую-то левую клавишу, например правый win:
setxkbmap -layout ‘us,ua,ru’ -option ‘grp:rwin_toggle’
2. Переключение срабатывает командами:
xdotool key ISO_Next_Group
В любом случае, если выяснить на какое сочетание клавиш навешено переключение раскладки клавиатуры, то переключить раскладку можно соответствующей командой. Например, если раскладка переключается сочетанием Ctrl+Shift, то переключить раскладку можно командой:
xdotool key Ctrl+Shift
Далее, например для переключения на нужную раскладку (например, при трех раскладках в системе), можно написать скрипт, который нужное количество раз виртуально нажмет клавиши переключения раскладки, чтобы выставилась заданная раскладка.
Переключение через xkb-switch
Ранее существовала программа xkb-switch. Она делала ровно то что нужно: просто переключала раскладку клавиатуры. К сожалению, начиная с какого-то момента (примерно с появлением Debian 8) данная программа перестала включаться в дистрибутивы Debian, Ubuntu и им подобные.
Опции команды следующие:
Usage: xkb-switch -s ARG Sets current layout group to ARG
xkb-switch -l|—list Displays all layout groups
xkb-switch -h|—help Displays this message
xkb-switch -v|—version Shows version number
xkb-switch -w|—wait [-p] Waits for group change and exits
xkb-switch -W Infinitely waits for group change
xkb-switch -n|—next Switch to the next layout group
xkb-switch [-p] Displays current layout group
- Быстро работает, при вызове этой программы нет задержки, в отличие от переключения setxkbmap.
- Правильно переключает индикатор раскладки в области значков на панели задач. Индикатор не исчезает, не зависает и не перестает работать, как это происходит при setxkbmap.
- Не отключает переключение раскладки клавиатуры на экране блокировки, предотвращая ввод правильного пароля, если перед блокировкой была выбрана неправильная раскладка (в отличии от того как делает это setxkbmap.
- Не изменяет основные комбинации клавиш, такие как Ctrl-C, Ctrl-V. Все сочетания работают с одними и теми же клавишами, причем в разных раскладках.
- Поддерживает механику компоновки Cinnamon, такую как настройка использования одинакового языка для всех окон или же отдельного языка для каждого окна.
Возможно, для правильной работы xkb-switch потребуется настроенная переменная DISPLAY.
Еще есть информация о том, что xkb-switch примерно с 2017 года перестал работать в Unity и в Gnome 3. В этом случае можно использовать следующую команду:
Источник
Как изменить клавиатуру из командной строки?
Я нашел решение для этого . отключить липкие края в настройках дисплеев
6 ответов
Вы можете найти все различные раскладки клавиатуры в следующих местах:
Чтобы изменить раскладку клавиатуры (например, на испанский) в командной строке Linux, введите следующую команду: [ ! d1]
Чтобы изменить раскладку клавиатуры (например, на испанский) в командной строке Linux, введите следующую команду:
Ubuntu 13.10 или более поздняя версия
Это работает лучше, чем setxkbmap с индикатором раскладки клавиатуры Gnome / Unity.
0 — индекс макета (0 по умолчанию или верхний макет). Макеты, индексированные начиная с 0.
Для удобства использования создайте псевдоним.
эта команда позволяет вам переключаться между английским и ивритом только с помощью правого сдвига alt + и спасать вас слева + сдвиг.
Просто из любопытства, зачем вы это делаете? Зачем вам открывать терминал, и они набирают команду для переключения раскладки клавиатуры, когда вы можете сделать это с помощью простого сочетания клавиш! Предполагая, что вы используете Ubuntu, это выглядит как Windows + Space
Кажется, что нет стандартного инструмента CLI, но xkb-switch — это небольшой инструмент с открытым исходным кодом для выполнения задания. Просто проверьте его с Ubuntu 16.04.4 LTS, и он работает безупречно.
Это выглядит лучше, чем другие решения, потому что setxkbmap разрушает все опции и setxkbmap -layout , в то время как он сохраняет параметры, он все еще не может изменить индикатор панели задач или grp_led, если он установлен.
Caveat
/.config/kxkbrc использует LayoutLoopCount (например, он меньше, чем общее количество макетов, перечисленных в LayoutList), например:
, тогда xkb-switch позволит вам переключаться между макетами в текущей группе.
Вызов при блокировке экрана
Я заметил ваш комментарий:
Прямо перед включением экранной заставки я хочу переключиться на английский, чтобы он легко ввести пароль, когда я вернусь.
Это была моя цель, поэтому вот ответ: для этого вам нужно только обернуть его в скрипт, подключающийся к dbus-monitor, как обсуждалось Х переключатель .
Используя gsettings в 18.04+ с Gnome, вы можете добавить добавить раскладки клавиатуры и переключиться между ними из командной строки или с помощью переключателя раскладки клавиатуры на рабочем столе.
1.Различные раскладки и параметры клавиатуры :
2. Добавление макетов клавиатуры:
3.Выберите текущую раскладку клавиатуры из командной строки:
As теперь у нас есть 3 разных языка, у нас есть три варианта от 0 до 2, причем 1 — испанский, 2 — норвежский, а 3 — греческий. Таким образом, установка gsettings до 1 выше делает норвежский язык текущей раскладкой клавиатуры.
4. Листинг всех возможных раскладок клавиатуры:
5. Изменение раскладка клавиатуры с сочетанием клавиш:
Для изменения раскладки клавиатуры предварительно настроена комбинация клавиш. Нынешний ярлык:
Новый ярлык можно установить с помощью набора gsetting, но старайтесь не использовать ярлык, который уже используется. Чтобы перечислить все используемые ярлыки:
Источник