как сменить раскладку в консоли linux
Linux console (Русский)/Keyboard configuration (Русский)
Сопоставление клавиш (раскладки) для виртуальной консоли, консольных шрифтов и консольных карт предоставляется пакетом kbd (зависимость для systemd), который также предоставляет множество инструментов низкого уровня для управления виртуальной консолью. Кроме того, systemd также предоставляет инструмент localectl, который может контролировать как локали системы, так и настройки раскладки клавиатуры как для виртуальной консоли, так и для Xorg.
Contents
Просмотр настроек клавиатуры
Используйте localectl status для просмотра текущих конфигураций клавиатуры.
Раскладки клавиатуры
Список раскладок
Соглашения об именах консольных раскладок несколько условны, но обычно они основаны на:
Для получения списка всех доступных раскладок используйте команду:
Чтобы найти раскладку клавиатуры, используйте следующую команду, заменив search_term кодом для вашего языка, страны или раскладки:
Альтернативно, используя find:
Временная конфигурация (Loadkeys)
Можно установить раскладку только для текущего сеанса. Это полезно при проверке различных раскладок, решение проблем и т.д.
Постоянная конфигурация
Создание своей раскладки
Вы используете горячие клавиши для вывода особенных символов, пользуясь консолью. Кроме того, мы можем также напечатать последовательность символов и некоторые escape-последовательности. Таким образом, если мы печатаем последовательность символов, составляющих команду, а затем escape-символ для новой строки, эта команда будет выполнена.
Сначала, создайте файл раскладки. Этот файл раскладки может быть где угодно, но этот способ подражает иерархии каталогов в /usr/local :
В качестве примечания следует отметить, что личная раскладка также полезна для переопределения поведения клавиш, уже обработанных стандартной раскладкой: при загрузке с помощью loadkeys директивы в стандартной раскладке будут заменены при конфликте с новыми директивами и сохраняются в противном случае. Таким образом, только изменения в раскладке должны быть указаны в личной раскладке.
Добавление директив
В этой личной раскладке требуются два типа директив. Прежде всего директивы keycode, которые соответствуют формату, указанному в стандартных раскладках по умолчанию. Эти директивы сопоставляют keycode с keysym. Keysyms представляют действия клавиатуры. Доступные действия включают вывод кодов символов или последовательностей символов, переключение консолей или раскладок клавиатуры, загрузку машины и многие другие действия. Полную активную текущую раскладку можно получить с помощью
Большинство keysyms интуитивно понятны. Например, чтобы настроить клавишу 112 для вывода символа ‘e’, директива примет следующий вид:
Чтобы настроить клавишу 112 для вывода символа евро, директива будет следующего вида:
Некоторые keysym не сразу связаны с действиями клавиатуры. В частности, keysyms с префиксом заглавной буквы F и от одной до трех цифр (F1-F246), составляющие число больше 30, всегда свободны. Это полезно для указания горячей клавиши для вывода последовательности символов и других действий:
Затем F70 может быть связан для вывода определенной строки:
Когда клавиша 112 нажата, она выведет содержимое F70. Чтобы выполнить команду в терминале, символ окончания новой строки должен быть добавлен в конец строки с командой. Например, чтобы ввести систему в спящий режим, добавляется следующая строка в раскладку:
Другие примеры
Сохранение изменений
Чтобы использовать свою раскладку, нужно ее загрузить с помощью loadkeys:
Регулировка задержки и скорости автоповтора
Задержка автоповтора означает количество времени (обычно в милисекундах), за которое необходимо нажать и удерживать клавишу для начала повторного процесса. После запуска повторяющегося процесса символ будет повторяться с определенной частотой (обычно заданной в Гц), указанной скоростью автоповтора. Эти значения могут быть изменены с помощью команды kbdrate. Обратите внимание, что эти настройки настраиваются отдельно для виртуальной консоли и для Xorg.
Например, чтобы установить задержку автоповтора в 200 мс и скорость автоповтора в 30 Гц, используйте следующую команду:
Ввод команды без указания задержки и скорости автоповтора приведет к сбросу значений до их соответствующих значений по умолчанию; задержка 250 мс и скорость 11 Гц:
Служба systemd
Службу systemd можно использовать для установки скорости клавиатуры. Например
Как сменить раскладку в консоли linux
Переключение через setxkbmap
Вариант команды переключения на язык RU:
Проблемы этой команды:
Есть виртуозы, которые говорят, что работают следующие команды:
Якобы, в итоге и переключение остаётся, и текущая раскладка меняется. Но потом они убеждаются, что такой вариант работает правильно лишь тогда, когда текущая раскладка английская, иначе раскладки меняются ролями.
Тогда пробуют добавить в эти команды принудительное начальное переключение на английскую раскладку:
Но такой способ тоже не работает: все так же проявляется зависимость от текущей раскладки. И конечно, не оповещается индикатор раскладки клавиатуры.
Переключение через setxkbmap + xdotool
1. Вешаем переключение раскладок на какую-то левую клавишу, например правый win:
2. Переключение срабатывает командами:
xdotool key ISO_Next_Group
В любом случае, если выяснить на какое сочетание клавиш навешено переключение раскладки клавиатуры, то переключить раскладку можно соответствующей командой. Например, если раскладка переключается сочетанием Ctrl+Shift, то переключить раскладку можно командой:
xdotool key Ctrl+Shift
Далее, например для переключения на нужную раскладку (например, при трех раскладках в системе), можно написать скрипт, который нужное количество раз виртуально нажмет клавиши переключения раскладки, чтобы выставилась заданная раскладка.
Переключение через xkb-switch
Ранее существовала программа xkb-switch. Она делала ровно то что нужно: просто переключала раскладку клавиатуры. К сожалению, начиная с какого-то момента (примерно с появлением Debian 8) данная программа перестала включаться в дистрибутивы Debian, Ubuntu и им подобные.
Опции команды следующие:
xkb-switch [-p] Displays current layout group
Возможно, для правильной работы xkb-switch потребуется настроенная переменная DISPLAY.
Еще есть информация о том, что xkb-switch примерно с 2017 года перестал работать в Unity и в Gnome 3. В этом случае можно использовать следующую команду:
Linux. Настройка клавиатуры
Для чего вообще специально настраивать клавиатуру?
Можно пользоваться и стандартными настройками, но иногда внесенные изменения дают возможность набирать быстрее (это, конечно, не слепая печать, но все же), совершать меньше ошибок, меньше переключать раскладку.
Почему я захотел изменить свою клавиатуру?
Настройка переключения раскладки
Что же, начнем. Сначала разберемся, как можно настроить смену раскладки клавиатуры.
Первый способ. Можно воспользоваться какой-нибудь программой, например, gnome-tweaks :
здесь мы можем выбрать один из вариантов, предлагаемых нам разработчиками.
Главное — мы не можем создать свой вариант. Давайте научимся делать и это.
Второй способ.
Посмотрим, как то же самое можно сделать руками, и чего еще можно добиться.
Давайте поставим переключение на правый Alt (он же AltGr ):
Там же можно найти множество других вариантов, в том числе ациклические, которые позволяют быть уверенным, какой язык будет после переключения, вместо того, чтобы каждый раз проверять раскладку или смотреть на индикатор.
Ациклическое переключение раскладок
Изменим циклическое переключение по AltGr на ациклическое: AltGr переключает на латинскую раскладку, Shift+AltGr — на русскую.
Перед тем как что-то менять, посмотрим на текущие настройки:
Должны получить что-такое ( pc105 может отличаться в зависимости от количества клавиш на вашей клавиатуре):
Теперь запишем это в конфигурационный файл
Изменим в только что созданном файле xkb_symbols :
Проверим, что у нас получилось. Загружаем конфиг:
Теперь язык должен переключаться по заданным комбинациям.
Замечание
Это очень удобно, когда набираешь текст, используя сразу две раскладки (например, TeX ), потому что, переключение происходит часто и гораздо проще каждый раз когда начинаешь писать русский текст нажимать нужные клавиши, чем проверять, какой язык стоит сейчас, и переключать, если нужно. Просто меньше тратишь умственных сил, меньше совершаешь ошибок.
Еще один плюс ациклического переключения — можно больше не использовать никаких индикаторов.
Изменение клавиш
Двоеточие и точка с запятой
Осталось записать в наш конфигурационный файл в обратном порядке.
ESC и CapsLock
Alt и Win
Модификаторы
Для чего вообще они нужны? Можно задать комбинации, которые будут позволять нам быстрее и удобнее набирать какие-то символы или вызывать какое-то действие, помещая поверх других, то есть эти комбинации не будут пересекаться с уже созданными или с комбинациями заданными системой.
Сделаем так, чтобы клавиша CapsLock в комбинации с h, j, k, l давала эффект стрелки. Тогда не нужно будет каждый раз тянуться ним.
Если мы хотим назначить для разных раскладок разное значение, то сначала нужно их определить:
При нормальном нажатии будет обычная буква, при нажатии с шифтом — заглавная, с модификатором третьего уровня — стрелки.
Назначение модификатора как второе значение клавиши
Для этого нужно выполнить
Я использую интервал 500 миллисекунд. Для нашей цели:
Дальнейшие изменения
Здесь было две идеи:
Поставим редко используемые русские буквы на крайних правых клавишах на третий слой других букв.
Схема была такая:
Для достижения такого эффекта добавляем в конфиг (здесь для у/ю, для остальных аналогично, названия букв русского алфавита можно посмотреть, где и все остальное):
А на освобожденные клавиши просто назначаем такие же символы, как во второй раскладке.
Этот вариант оказался для меня неудобным и скорее снизил скорость, так как приходилось вспоминать и искать нужные буквы (хоть я выбирал специально созвучные), кроме этого я понял, что не так уж и редко они используются. А заглавные вообще тяжело набирать было.
Этот вариант я использую и сейчас: давайте оставим русские буквы на своих местах, а на третий слой на них назначим те символы, которые стоят на них на английской раскладке.
Тогда мы сможем нажимать одинаковые клавиши, но с модификатором (причем, если мы не назначим что-то другое поверх символов а английской раскладке, то ничего не случиться, если мы будем нажимать модификатор и в ней тоже).
Получаем такую схему:
Еще можем поставить в русской раскладке слэш и вопросительный знак туда, где они стоят в английской.
Плюс к этому добавляется возможность сделать одинаковыми и символы на цифрах, так как и кавычки, и двоеточие, и точка с запятой будет на других клавишах.
И главное, что это реально упростило процесс набора текста.
Замечание
Аналогично можно добавлять пятый слой, хотя пока лично я не испытываю никакой нужды — вполне хватает третьего.
Интересный вариант BackSpace напоследок
Все настройки в принципе применимы для любых Linux дистрибутивов, использующих X.
Полные конфиги можно найти на GitHub.
Этот пост стал для меня отправной точкой к пониманию того, как можно и нужно настроить клавиатуру.
Как изменить клавиатуру из командной строки?
6 ответов
Вы можете найти все различные раскладки клавиатуры в следующих местах:
Чтобы изменить раскладку клавиатуры (например, на испанский) в командной строке Linux, введите следующую команду:
Ubuntu 13.10 или более поздняя версия
Это работает лучше, чем setxkbmap с индикатором раскладки клавиатуры Gnome / Unity.
Для удобства использования создайте псевдоним.
эта команда позволяет вам переключаться между английским и ивритом только с помощью правого сдвига alt + и спасать вас слева + сдвиг.
Просто из любопытства, зачем вы это делаете? Зачем вам открывать терминал, и они набирают команду для переключения раскладки клавиатуры, когда вы можете сделать это с помощью простого сочетания клавиш! Предполагая, что вы используете Ubuntu, это выглядит как Windows + Space
Caveat
/.config/kxkbrc использует LayoutLoopCount (например, он меньше, чем общее количество макетов, перечисленных в LayoutList), например:
, тогда xkb-switch позволит вам переключаться между макетами в текущей группе.
Вызов при блокировке экрана
Я заметил ваш комментарий:
Прямо перед включением экранной заставки я хочу переключиться на английский, чтобы он легко ввести пароль, когда я вернусь.
Используя gsettings в 18.04+ с Gnome, вы можете добавить добавить раскладки клавиатуры и переключиться между ними из командной строки или с помощью переключателя раскладки клавиатуры на рабочем столе.
1.Различные раскладки и параметры клавиатуры :
2. Добавление макетов клавиатуры:
3.Выберите текущую раскладку клавиатуры из командной строки:
4. Листинг всех возможных раскладок клавиатуры:
5. Изменение раскладка клавиатуры с сочетанием клавиш:
Для изменения раскладки клавиатуры предварительно настроена комбинация клавиш. Нынешний ярлык:
Новый ярлык можно установить с помощью набора gsetting, но старайтесь не использовать ярлык, который уже используется. Чтобы перечислить все используемые ярлыки:
Изменить раскладку клавиатуры (английский Великобритания) в командной строке на английский США
Я использую Ubuntu 12.04. Раскладка клавиатуры английская и американская везде, кроме командной строки, где она работает на английском языке. Терминал также имеет английский США. Как изменить раскладку клавиатуры по умолчанию в командной строке на английский США?
Кроме того, я думаю, что здесь стоит отметить, что когда я установил Ubuntu (двойная загрузка с Windows 8. 1), я первоначально установил язык как английский Великобритания, но позже изменил его на английский США из настроек системы.
6 ответов
Обновление 2017-04-13: похоже, это изменилось в последних версиях Ubuntu и работает sudo apt-get install console-common постараюсь удалить другие пакеты. Итак, для последних версий Ubuntu используйте это вместо этого (протестировано в 17.04):
Это установит console-common Пакет и в процессе позволяют выбрать макет консоли. Если он уже установлен, используйте его, чтобы вызвать тот же мастер и установить макет:
Протестировано 13.10 и взято отсюда.
Запустите эту команду:
Это сработало для меня.
Вышеуказанное не сработало для меня, но это сработало. С терминала введите следующую команду:
У меня только консоль (без X) Linux работает внутри VirtualBox. Необходимо поменять раскладку с американской клавиатуры на немецкую. Это сработало для меня:
Я использую 14.04 LTS со стандартной клавиатурой США. Моя проблема заключалась в том, что я полагался на то, что установщик выбрал для меня US-Intl, и это вызвало «мертвые ключи» и неправильное формирование «и» ключей (а также других, о которых я не знаю, я уверен),
После многих разочарований, проб и ошибок я побежал sudo apt-get install console-common Предложение и это решило мою проблему, но только когда я вошел в систему.
Когда я вышел из системы, перезагрузил сервер и снова вошел, это не удалось.
Это только закрепилось навсегда, когда я выполнил sudo dpkg-reconfigure keyboard-configuration msgstr «указана общая клавиатура США.
» setxkbmap «не работал для меня.
Кажется, что (я не знаю) setxkbmap устарела в 14.04 LTS.
На Ubuntu/Debian у вас есть /etc/default/keyboard Конфигурационный файл, который фактически управляет раскладкой клавиатуры вашего дистрибутива. При загрузке вашей системы /etc/default/keyboard файл читается сценариями установки вместе с другими файлами конфигурации. Если вы посмотрите на вывод /etc/default/keyboard файл, который вы можете видеть, моя раскладка клавиатуры настроена на немецкий de :
Это не очень хорошая идея (как и другие файлы конфигурации), чтобы напрямую изменить атрибуты /etc/default/keyboard файл.
Чтобы изменить раскладку или модель вашей клавиатуры, всегда используйте следующую команду:
Дополнительная информация.
Вы, вероятно, также должны изменить свой язык!
Если вашей локали нет в списке выше, вы должны сгенерировать ее:
Настройки по умолчанию хранятся в /etc/default/locale :
Вы можете настроить его вручную или использовать инструмент: