- Linux console (Русский)/Keyboard configuration (Русский)
- Просмотр настроек клавиатуры
- Раскладки клавиатуры
- Список раскладок
- Временная конфигурация (Loadkeys)
- Постоянная конфигурация
- Создание своей раскладки
- Добавление директив
- Другие примеры
- Сохранение изменений
- Регулировка задержки и скорости автоповтора
- Служба systemd
- Arch Linux
- #2 2018-03-11 00:06:09
- Re: I cant change the keyboard language of Arch
- #3 2018-03-11 00:07:57
- Re: I cant change the keyboard language of Arch
- #4 2018-03-11 00:11:12
- Re: I cant change the keyboard language of Arch
- #5 2018-03-11 00:19:34
- Re: I cant change the keyboard language of Arch
- #6 2018-03-11 00:22:51
- Re: I cant change the keyboard language of Arch
- Arch Linux
Linux console (Русский)/Keyboard configuration (Русский)
Состояние перевода: На этой странице представлен перевод статьи Keyboard configuration in console. Дата последней синхронизации: 26 июля 2018. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
Сопоставление клавиш (раскладки) для виртуальной консоли, консольных шрифтов и консольных карт предоставляется пакетом kbd (зависимость для systemd), который также предоставляет множество инструментов низкого уровня для управления виртуальной консолью. Кроме того, systemd также предоставляет инструмент localectl, который может контролировать как локали системы, так и настройки раскладки клавиатуры как для виртуальной консоли, так и для Xorg.
Просмотр настроек клавиатуры
Используйте 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 кодом для вашего языка, страны или раскладки:
$ localectl list-keymaps | grep -i search_term
Альтернативно, используя find:
$ find /usr/share/kbd/keymaps/ -type f
Временная конфигурация (Loadkeys)
Можно установить раскладку только для текущего сеанса. Это полезно при проверке различных раскладок, решение проблем и т.д.
Для этого используют инструмент loadkeys. Он используется внутри systemd при загрузке раскладки клавиатуры, настроенной в /etc/vconsole.conf . Пользоваться им легко:
# loadkeys раскладка_клавиатуры
Для получения дополнительной информации смотрите loadkeys(1) .
Постоянная конфигурация
Постоянную комбинацию клавиш можно установить в /etc/vconsole.conf , которая считывается systemd при запуске. Для указания раскладки используется переменная KEYMAP . Если переменная пуста или не установлена, в качестве значения по умолчанию используется раскладка us . Смотрите vconsole.conf(5) для получения информации обо всех параметрах. Например:
Для удобства, localectl можно использовать для настройки раскладки клавиатуры. Он изменит переменную KEYMAP в /etc/vconsole.conf , а также установит раскладку для текущего сеанса:
$ localectl set-keymap --no-convert раскладка_клавиатуры
Опцию —no-convert можно использовать для предотвращения localectl автоматического изменения раскладки клавиатуры в Xorg до ближайшего совпадения. Для получения дополнительной информации смотрите localectl(1) .
Создание своей раскладки
Вы используете горячие клавиши для вывода особенных символов, пользуясь консолью. Кроме того, мы можем также напечатать последовательность символов и некоторые escape-последовательности. Таким образом, если мы печатаем последовательность символов, составляющих команду, а затем escape-символ для новой строки, эта команда будет выполнена.
Один из способов сделать это — отредактировать файл раскладки. Однако, поскольку он будет перезаписан в любое время, когда пакет, к которому он принадлежит, обновляется, редактирование этого файла не рекомендуется. Лучше объединить существующую раскладку со своей. Утилита loadkeys может сделать это.
Сначала, создайте файл раскладки. Этот файл раскладки может быть где угодно, но этот способ подражает иерархии каталогов в /usr/local :
# mkdir -p /usr/local/share/kbd/keymaps # vim /usr/local/share/kbd/keymaps/personal.map
В качестве примечания следует отметить, что личная раскладка также полезна для переопределения поведения клавиш, уже обработанных стандартной раскладкой: при загрузке с помощью loadkeys директивы в стандартной раскладке будут заменены при конфликте с новыми директивами и сохраняются в противном случае. Таким образом, только изменения в раскладке должны быть указаны в личной раскладке.
Совет: Также вы можете изменить существующую раскладку, расположенную в дереве каталогов /usr/share/kbd/keymaps/ . Раскладка имеет расширение .map.gz, например Американская раскладка — us.map.gz . Просто скопируйте раскладку в /usr/local/share/kbd/keymaps/personal.map.gz и распакуйте.
Добавление директив
- Keycode — это номер генерируемый вашей клавиатурой при нажатии на определенную клавишу. Например, кнопка пробела сгенерирует Keycode=128.
- Keysym — это просто слово используемое для обозначения типа клавиши. Эта концепция очень важна, потому как позволяет программам не оперировать с кодами напрямую, а работать с клавиатурой по названиям клавишь.
В этой личной раскладке требуются два типа директив. Прежде всего директивы keycode, которые соответствуют формату, указанному в стандартных раскладках по умолчанию. Эти директивы сопоставляют keycode с keysym. Keysyms представляют действия клавиатуры. Доступные действия включают вывод кодов символов или последовательностей символов, переключение консолей или раскладок клавиатуры, загрузку машины и многие другие действия. Полную активную текущую раскладку можно получить с помощью
Большинство keysyms интуитивно понятны. Например, чтобы настроить клавишу 112 для вывода символа ‘e’, директива примет следующий вид:
Чтобы настроить клавишу 112 для вывода символа евро, директива будет следующего вида:
Некоторые keysym не сразу связаны с действиями клавиатуры. В частности, keysyms с префиксом заглавной буквы F и от одной до трех цифр (F1-F246), составляющие число больше 30, всегда свободны. Это полезно для указания горячей клавиши для вывода последовательности символов и других действий:
Затем F70 может быть связан для вывода определенной строки:
Когда клавиша 112 нажата, она выведет содержимое F70. Чтобы выполнить команду в терминале, символ окончания новой строки должен быть добавлен в конец строки с командой. Например, чтобы ввести систему в спящий режим, добавляется следующая строка в раскладку:
string F70 = "sudo /usr/sbin/hibernate\n"
Другие примеры
- Чтобы сделать клавишу Правый Alt такой же как клавиша Левый Alt (для Emacs), используй следующую строку в своей раскладке. Это включит файл /usr/share/kbd/keymaps/i386/include/linux-with-two-alt-keys.inc , посмотри его для получения дополнительной информации.
- Чтобы поменять местами CapsLock и Escape (для Vim), выполните переназначение соответствующих кодов клавиш:
keycode 1 = Caps_Lock keycode 58 = Escape
- Чтобы сделать CapsLock еще одним Control, выполните переназначение соответствующих кодов клавиш:
- Чтобы поменять местами CapsLock и Левый Control, выполните переназначение соответствующих кодов клавиш:
keycode 29 = Caps_Lock keycode 58 = Control
Сохранение изменений
Чтобы использовать свою раскладку, нужно ее загрузить с помощью loadkeys:
$ loadkeys /usr/local/share/kbd/keymaps/personal.map
Однако, эта раскладка активна только для текущего сеанса. Чтобы загрузить ее при загрузке, укажите полный путь файла вашей раскладки в переменной KEYMAP в /etc/vconsole.conf. Файл не должен быть запакован, как официальные раскладки, представленные kbd .
Регулировка задержки и скорости автоповтора
Задержка автоповтора означает количество времени (обычно в милисекундах), за которое необходимо нажать и удерживать клавишу для начала повторного процесса. После запуска повторяющегося процесса символ будет повторяться с определенной частотой (обычно заданной в Гц), указанной скоростью автоповтора. Эти значения могут быть изменены с помощью команды kbdrate. Обратите внимание, что эти настройки настраиваются отдельно для виртуальной консоли и для Xorg.
# kbdrate [-d delay] [-r rate]
Например, чтобы установить задержку автоповтора в 200 мс и скорость автоповтора в 30 Гц, используйте следующую команду:
Ввод команды без указания задержки и скорости автоповтора приведет к сбросу значений до их соответствующих значений по умолчанию; задержка 250 мс и скорость 11 Гц:
Служба systemd
Службу systemd можно использовать для установки скорости клавиатуры. Например
/etc/systemd/system/kbdrate.service
[Unit] Description=Keyboard repeat rate in tty. [Service] Type=oneshot RemainAfterExit=yes StandardInput=tty StandardOutput=tty ExecStart=/usr/bin/kbdrate -s -d 450 -r 60 [Install] WantedBy=multi-user.target
Затем запустите/включите службу systemd kbdrate.service .
Arch Linux
Hi, thanks for viewing.
I recently installed Arch Linux, but i have a problem, i cant change the keyboard layout, i followed the section of how to chang it in the arch forums but nothing.
Here is the output of localectl status
System Locale: LANG=es_MX.UTF-8
VC Keymap: es
X11 Layout: es
X11 Model: pc105
X11 Options: terminate:ctrl_alt_bksp
My keyboard is in spanish from mexico, but it is still in english, any help is aprecciated, if need ill be willing to send the output of any other command related.
Thanks
#2 2018-03-11 00:06:09
Re: I cant change the keyboard language of Arch
What problems are you seeing, exactly, and were?
#3 2018-03-11 00:07:57
Re: I cant change the keyboard language of Arch
I’m so stupid, after posting the post i start to play around in the settings and found a setting for changing the keyoard layout, im so sorry for wasting your time, but thanks anyway
#4 2018-03-11 00:11:12
Re: I cant change the keyboard language of Arch
Please provide information and console output of what you did, so that Scimmia’s post was not a waste of time and whoever stumble upon this topic may find it useful.
Last edited by lo1 (2018-03-11 00:18:25)
#5 2018-03-11 00:19:34
Re: I cant change the keyboard language of Arch
The Solution:
1-Go to the settings application
2-Click on the Region & Language tab
3-In the part that says Method of input, click the plus button
4-Add the keyboard layout that you want
5-Click Add
#6 2018-03-11 00:22:51
Re: I cant change the keyboard language of Arch
The Solution:
1-Go to the settings application
setting application of what? You have not mentioned what desktop environment you are using.
Arch Linux
I have Arch running with XFCE desktop environment, and LightDM display manager. I want my system to be in English, but I’m using a nordic keyboard (Finnish, to be precise).
In my /etc/locale.conf I have
LANG=en_US.UTF-8 LC_CTYPE=fi_FI.UTF-8
but when I run ‘locale’, I get
locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory LANG=fi_FI.ISO-8859-1 LC_CTYPE=fi_FI.ISO-8859-1 LC_NUMERIC="fi_FI.ISO-8859-1" LC_TIME="fi_FI.ISO-8859-1" LC_COLLATE="fi_FI.ISO-8859-1" LC_MONETARY="fi_FI.ISO-8859-1" LC_MESSAGES=C LC_PAPER="fi_FI.ISO-8859-1" LC_NAME="fi_FI.ISO-8859-1" LC_ADDRESS="fi_FI.ISO-8859-1" LC_TELEPHONE="fi_FI.ISO-8859-1" LC_MEASUREMENT="fi_FI.ISO-8859-1" LC_IDENTIFICATION="fi_FI.ISO-8859-1" LC_ALL=
I have defined the fi_FI.ISO-8859-1 locale somewhere at some point, but I can’t find it anymore.
Also, with ‘localectl’, I get
System Locale: LANG=en_US.UTF-8 LC_CTYPE=fi_FI.UTF-8 VC Keymap: fi X11 Layout: n/a
This is not currently a major problem, but it bothers me. Also in my LightDM greeter, on the top bar, there is an icon that shows that the keyboard layout is US. Fortunately, I don’t have any nordic characters in my password, but I would like to get this fixed. My ~/.dmrc is
[Desktop] Language=fi_FI.UTF-8 Session=xfce
Has anyone else had similar problems, and can you help me?
Last edited by hlappal (2019-02-26 15:45:38)