Изменение раскладки клавиатуры Gnome 40

Обновлено: 21.11.2024

предварительное знание важных параметров среды:

  • используемая система: ubuntu 20.04 => версия DE Gnome до 40 (3.36)
  • несмотря на то, что я немец, все настройки у нас английские (для валюты в ирландском формате, чтобы евро было валютой по умолчанию) => первая клавиатура us, а вторая de (немецкий)
  • визуальный код также en для сочетания клавиш в en
  • в сеансе gnome en активен (естественно)

например: строка комментария — ctrl+/, и в этом случае это работает

Информация о системе

< tr>
Элемент Значение
ЦП ЦП Intel(R) Core(TM) i7-8550U с тактовой частотой 1,80 ГГц (8 x 2000)
Статус графического процессора 2d_canvas: включено
gpu_compositing: включено
несколько_растровых_потоков: включено_включено
oop_растеризация: отключено_выключено
opengl: включено_включено
растеризация: отключено_программное обеспечение
skia_renderer: включено_в
video_decode : disabled_software
vulkan: disabled_off
webgl: enable
webgl2: enable
Нагрузка (средняя) 1, 1, 1
Память (системная) 23,35 ГБ (11,23 ГБ свободно)
Процесс Argv --no-sandbox --force-user-env --unity-launch --crash-reporter-id e1dddc85-d981-4ecd-a0ec-b68962e63e5d
Программа чтения с экрана нет
VM 0%
DESKTOP_SESSION ubuntu
XDG_CURRENT_DESKTOP Unity
XDG_SESSION_D ESKTOP ubuntu
XDG_SESSION_TYPE x11
Расширения ( 2)
Расширение Автор (усечено) Версия
Закладки ale 13.2.2
cpptools ms- 1.7.1
Эксперименты A/B

Текст был успешно обновлен, но возникли следующие ошибки:

bit15 прокомментировано 26 октября 2021 г.

@alexdima: Извините, я новичок в таких вещах, как эта инсайдерская сборка. Из-за этого небольшого изменения графического интерфейса в gnome мне пришлось решить эту странную проблему, чтобы продолжить работу над моим \university-c++-opengl'-проектом (и наряду с этим я хотел знать, в чем причина этой проблемы). Поэтому было бы не очень хорошо, если бы мне пришлось прерывать работу на долгое время. Как я видел, в Snap Store есть инсайдерская сборка. Без риска я могу установить эту сборку вместе и попробовать, если этот обходной путь сработает. И позже я снова смогу использовать официальную стабильную сборку? Если я прав, существуют как отдельные сборки визуального кода, так и инсайдерского визуального кода, и они не конфликтуют друг с другом. кроме того, в рабочей области, возможно, я должен сделать резервную копию при попытке инсайдерской сборки?

Другой вопрос для моих знаний, поскольку я не разбираюсь в разработке gnome: это приложение получает информацию из API gnome или? Если да, может ли он спросить gnome, какая раскладка клавиатуры активна в данный момент? И если это возможно, приложение тоже может знать, если оно сфокусировано, или? И если все возможно, как я надеюсь, то это приложение может проверить, изменилась ли раскладка клавиатуры, и при необходимости изменить ее соответствующим образом? Или последняя точка требует много времени ввода-вывода?

alexdima прокомментировал 26 октября 2021 г.

@bit15 Да, VS Code Insiders можно установить параллельно с VS Code Stable. VS Code Insiders обновляется каждую ночь, а VS Code Stable обычно обновляется раз в месяц. Вы можете просто подождать, исправления появятся в стабильном канале в ближайшие пару недель. Если вы хотите воспользоваться исправлениями сейчас, вам придется установить VS Code Insiders.

Упомянутые мной исправления связаны с чтением выбранной раскладки клавиатуры и реакцией на изменение выбранной раскладки клавиатуры. Это реализовано на C++ в собственном модуле узла, который мы поставляем с VS Code, с использованием API-интерфейсов X11.

bit15 прокомментировано 27 октября 2021 г.

Я надеюсь, что предоставленная мной информация поможет, так как мне это кажется немного хаотичным.

PS: как удалить настройки Snap-пакета? 'sudo snap remove code-insiders --purge', похоже, не помогло, так как переустановка восстанавливала старые настройки

bit15 прокомментировано 27 октября 2021 г.

Печально, я удалил $home/snaps/code-insiders и $home/.code-insiders, но запуск snap code-insiders снова возвращает открытые файлы. Что мне нужно удалить, чтобы убедиться, что пакет Snap снова стал родным без каких-либо настроек, сделанных пользователем?

bit15 прокомментировано 27 октября 2021 г.

Да, кажется, я нашел, где хранятся данные конфигурации пользователя. Папки «$home/snaps/code-insiders» и «$home/.code-insiders», похоже, не имеют конфигурации пользователя. Конфигурация пользователя, похоже, находится в «$home/.config/code — Insiders» (с пробелами в имени). Для чего нужны первые две упомянутые папки?

Теперь чистый тест без попытки установить сочетания клавиш (используемый метод: переключение строкового комментария):

Как отмечалось в предыдущем посте, я должен оставить макет en на позиции 1, чтобы иметь возможность использовать сочетания клавиш en (похоже, что активные макеты не наблюдаются приложением).

alexdima прокомментировал 27 октября 2021 г. •

@bit15 Спасибо, что попробовали Инсайдеры и последовали за ними. Вы сделали много тестов, и я благодарю вас за это, и все они намекают на то, что мы не распознаем текущую активную раскладку клавиатуры, но я хотел бы попросить вас сделать следующее, чтобы убедиться, что это так:

0. подготовка

  • открыть программу предварительной оценки VS Code
  • запустите F1 > Настройки: Открыть сочетания клавиш (JSON)
  • прокомментируйте все свои пользовательские сочетания клавиш из keybindings.json
  • запустите F1 > Настройки: Открыть настройки (JSON)
  • настройте "keyboard.dispatch": "code" (это значение по умолчанию, но я хотел бы убедиться, что вы не изменили его на "keyCode" в предыдущих попытках устранения неполадок)
  • отключить все установленные расширения (их не должно быть, потому что это инсайдерские)
  • закрыть программу предварительной оценки VS Code

1. дайте мне знать вывод setxkbmap -query

2. проверить, правильно ли vscode читает активную раскладку клавиатуры

  • закрыть все экземпляры vscode-insiders
  • если вывод setxkbmap -query будет us,de. (сначала с раскладкой клавиатуры us), измените активную раскладку клавиатуры на de . Если вывод de,us. , измените активную раскладку клавиатуры на нас. Другими словами, выбрали вторую в качестве активной раскладки клавиатуры. Дайте мне знать, какой из них вы выберете.
  • открыть программу предварительной оценки VS Code
  • открыть новый файл без названия
  • запустите F1 > Разработчик: проверьте сопоставления клавиш
  • соответствует ли напечатанная информация о раскладке вашей текущей активной раскладке клавиатуры?
  • в любом случае сохраните это в файл .txt и прикрепите его.

3. проверить, реагирует ли vscode на изменение активной раскладки клавиатуры

  • (продолжить в экземпляре VS Code Insiders, указанном выше)
  • закрыть все файлы
  • открыть новый файл без названия
  • при запущенных программах предварительной оценки VS Code измените активную раскладку клавиатуры со "второй" на "первую"
  • запустите F1 > Разработчик: проверьте сопоставления клавиш
  • соответствует ли напечатанная информация о раскладке вашей текущей активной раскладке клавиатуры?
  • в любом случае сохраните это в файл .txt и прикрепите его.

bit15 прокомментировано 27 октября 2021 г. •

начальная: раскладка клавиатуры en (macintosh) установлена ​​на поз. 1, также активна

точка 0:
keybindings.json "пустой" [
]')
settings.json "пустой" >') . нет «keyboard.dispatch»: «code» или подобного. это нормально?

Расширения, естественно, не установлены (только при первой попытке я попробовал "реальный мир" - тест, но удаление "$home/.config/code - Insiders" оказалось достаточным, чтобы удалить единственное расширение c++ из Microsoft)

точка 1:
вывод 'setxkbmap -query', когда en на pos 1:
'rules: evdev
модель: pc105
макет: us,de,us < br />вариант: mac,mac,' (версия для Mac на Thinkpad, чтобы получить altgr+n за возможность легко писать по-испански букву 'ñ')

вывод, когда de на позиции 1:
'rules: evdev,
модель: pc105,
макет: de,us,us,
вариант: mac,mac,'

пункт 2:
Для двух разных печатных макетов есть совпадающая карта ключей, указанная инсайдерским приложением. Неважно, какая раскладка клавиатуры активна в сеансе gnome. Релевантна только «позиция:», указанная в «setxkbmap -query».

Информация о раскладке клавиатур - первая en активная de - вторая de active en.txt
(внимание: этот файл содержит два вывода двух тестов - первый тест: en first & active de - второй тест: de first & en active . извините, описание в файле немного запутанное)

пункт 3:
Информация о раскладке клавиатур - первый en active de - второй de active en - пункт 3.txt
(внимание: этот файл содержит два вывода двух тестов - первый тест: en first & de active переключился на en - второй тест: de first & en active переключился на de . Извините, описание в файле немного запутанное)

Надеюсь, мой вывод поможет определить, почему активная раскладка клавиатуры игнорируется и имеет значение только положение раскладки клавиатуры.

Я пытался перейти в раздел "Регион и язык" и добавить макет, даже сделав его макетом по умолчанию, но по какой-то причине я застрял в исходном макете и не могу его изменить. В GNOME 2 и в Unity есть апплет панели, который позволяет быстро переключаться между раскладками клавиатуры, но, похоже, его нет в Gnome Shell. Кто-нибудь знает способ получить этот апплет на панели (загрузив его вручную?) или, по крайней мере, изменить раскладку клавиатуры через терминал?

7 ответов 7

В Gnome Shell 3.18.5 вообще нет способа изменить раскладку клавиатуры через панель настроек, что я смог найти. Вместо этого настройки находятся в Gnome Tweak Tool в разделе «Ввод».

Если у вас его нет, вы можете установить Gnome Tweak Tool с помощью

и доступ к нему из меню "Действия".

Настройки раскладки клавиатуры находятся на панели настроек региона и языка. Перейдите в меню пользователя, выберите «Системные настройки», затем «Регион и язык» и перейдите на вкладку «Макеты».

Селектор раскладки и сочетания клавиш (в разделе параметров) должны быть более привычными со времен Gnome 2. Если есть более одного макета, вы также должны получить небольшой апплет-переключатель.

Это сработало для меня. нужно:

Системные настройки --> Раскладка клавиатуры, вкладка "Раскладки" --> Параметры. Клавиши для изменения макета

Выберите любой, который вам нравится, даже несколько вариантов работают для меня.

В новой оболочке Gnome3 мне нужно было использовать gnome-tweak-tool*. Там я пошел в «Ввод» -> «Переключение на другую раскладку» и выбрал свое нажатие клавиши («Alt + Shift»). После этого мне нужно было удалить нажатие клавиши в настройке «Регион и язык» («Меню действий» -> «Тип региона» -> «Выбрать регион и язык» -> «Источники ввода» -> «Настройки ярлыков»). После перезапуска gnome все заработало, как и ожидалось.

* старое нажатие клавиши из меню «Регион и языки» работало, но больше не циклически перемещалось по списку. Очевидно, была введена какая-то форма «направления», и мое нажатие клавиши было назначено «Переключиться на следующий источник». Это значит в списке языков, в моем случае "en", "de", "ru", вы в конце списка (у меня "ru"), вам нужно дважды нажать клавишу (не один раз ) для перехода от последнего элемента к первому (в моем случае с «ru» на «de»). Я, конечно, мог бы назначить другое нажатие клавиши, чтобы вернуться в список (мне это не понравилось) или дважды нажать клавишу (хотя это снова было другое поведение, основанное на языке, этого я хотел избежать). Поскольку я часто переключаюсь в середине документа назад и принудительно, это было действительно важно для меня. Надеюсь, понятно, в чем проблема.

  1. Откройте обзор действий и начните вводить регион и язык.
  2. Нажмите «Регион и язык», чтобы открыть панель.
  3. Нажмите кнопку + в разделе "Источники ввода", выберите язык, связанный с макетом, затем выберите макет и нажмите "Добавить".

Еще немного обновленной информации: по состоянию на ноябрь 2014 г. Я регулярно ввожу японский и английский языки и застрял на этом после обновления с помощью ubuntu gnome 14.04

Я печатаю на японском и английском языках, вот как я это сделал.

В настройках «Регион/язык» вы выбираете метод ввода, который подразумевает тип клавиатуры. Итак, для японского языка существует простая «японская» настройка, которая не имеет ничего общего с вводом «японского», вместо этого это «японская раскладка клавиатуры». Чтобы ввести «японский», вам необходимо установить пакеты «ibus-anthy» или «mozc». После перезагрузки нажмите маленькую кнопку «+» и прокрутите вниз до японского, обратите внимание на добавленные японские параметры для «Japanese-Anthy». и "Japanese-Mozc". Добавьте их, и вы получите возможность ввода с помощью SDK, а также простой набор текста с правильным расположением.

Настройки клавиатуры GNOME

В Oracle Solaris 11 Desktop имеется более 400 раскладок клавиатуры для более чем 100 языков. Несколько вариантов раскладки клавиатуры доступны почти для каждого языка. Независимо от модели раскладки клавиатуры и физической раскладки вы всегда можете настроить и использовать любую раскладку клавиатуры, доступную в Oracle Solaris 11 Desktop. Используйте инструмент настроек клавиатуры GNOME, чтобы установить и настроить параметры клавиатуры, такие как модель клавиатуры, раскладка, вариант и т. д.

Примечание. Окно настроек раскладки клавиатуры доступно только тогда, когда и клиент, и сервер находятся на одном компьютере. Оно недоступно для удаленных подключений.

Как настроить параметры и настройки клавиатуры

Вкладка «Раскладки» содержит все необходимые инструменты для установки и настройки раскладки клавиатуры. Вы можете добавить до 4 различных раскладок клавиатуры и легко переключаться между ними с помощью меню «Индикатор раскладки клавиатуры» на панели или с помощью сочетания клавиш для переключения между ними.

На вкладке «Раскладки» вы также можете настроить различные параметры клавиатуры, такие как модель клавиатуры, определенные варианты раскладки клавиатуры, или вы можете установить особое поведение для определенных клавиш, таких как Shift, Alt, Meta, Super, Hyper, CapsLock и т. д. .

Макет в верхней части списка на вкладке Макеты является макетом по умолчанию. Вы можете перемещать макеты вверх и вниз в списке с помощью кнопок «Вверх» и «Вниз».

На следующем рисунке показана вкладка "Макеты".

Параметры раскладки клавиатуры и поведение по умолчанию

В следующем списке показаны наиболее распространенные операции, выполняемые на вкладке «Раскладки» в окне настроек клавиатуры:

Как добавлять и удалять раскладки клавиатуры

  1. Выберите нужную раскладку клавиатуры по стране или языку.
  2. Нажмите кнопку "Добавить".
  3. Чтобы удалить раскладку, выберите ее из списка.
  4. Нажмите кнопку "Удалить".

Как добавить EuroSign к определенным клавишам

  1. Нажмите кнопку "Параметры".
  2. Выберите «Добавить EuroSign к определенным клавишам».
  3. Выберите нужный ключ или ключи.
  4. Нажмите кнопку "Закрыть".

Как установить последовательность клавиш для уничтожения X-сервера

  1. Нажмите кнопку "Параметры".
  2. Выберите последовательность клавиш, чтобы отключить X-сервер.
  3. Выберите Control + Alt + Backspace.
  4. Нажмите кнопку "Закрыть".

Как настроить сочетание клавиш для переключения между выбранными раскладками клавиатуры

Если вы используете несколько раскладок клавиатуры, вы можете назначить ярлык для быстрого переключения между ними.

  1. Нажмите кнопку "Параметры".
  2. Выберите клавиши для изменения макета.
  3. Выберите нужную клавишу или клавиши для быстрого доступа.
  4. Нажмите кнопку "Закрыть".

Индикатор раскладки клавиатуры GNOME (селектор клавиатуры)

Индикатор раскладки клавиатуры автоматически активируется и отображается на панели при выборе двух или более раскладок клавиатуры, как показано на следующем рисунке. Если выбрана только одна клавиатура (поведение по умолчанию), индикатор раскладки клавиатуры не отображается на панели.

Рис. 4-2 Индикатор раскладки клавиатуры

Когда меню индикатора раскладки клавиатуры активировано и отображается на панели, вы можете переключаться между выбранными раскладками клавиатуры с помощью мыши. Один щелчок, чтобы немедленно переключиться на следующую раскладку клавиатуры. Щелкните правой кнопкой мыши, чтобы открыть меню с тремя параметрами:

Группы — содержит список выбранных раскладок клавиатуры.

Настройки клавиатуры — открывает окно настроек раскладки клавиатуры

Показать текущую раскладку — открывает окно с интерактивным приложением, показывающим текущую раскладку клавиатуры.

Раскладка клавиатуры преобразует скан-коды с клавиатуры в символы, отправляемые в приложение. Раскладки клавиатуры также могут выполнять более сложные преобразования с помощью так называемых мертвых клавиш, которые не выводят символы сами по себе, а изменяют вывод последующих клавиш. Соответствующая раскладка клавиатуры требуется для поддержки как клавиатур, отличных от QWERTY, так и клавиатур QWERTY для ввода символов, не входящих в набор ASCII.

Содержание

Текстовый режим

OpenRC

Раскладка клавиатуры по умолчанию устанавливается в файле /etc/conf.d/keymaps путем назначения соответствующей раскладки в качестве значения для keymap . Значения раскладки определены в /usr/share/keymaps, и большинство пользователей будут использовать значение из /usr/share/keymaps/i386/qwerty/. При желании установите значение для переменной extended_keymaps из соответствующего каталога включения, например /usr/share/keymaps/i386/include . Например, задайте extension_keymaps="euro2", чтобы получить евро и цент с сочетанием клавиш Alt-Gr на позициях, где на многих клавиатурах есть E и C.

Наконец добавьте /etc/init.d/keymaps на уровень выполнения загрузки.

Перезапустить раскладки для применения изменений

Если вам нужно, чтобы терминал отображал символы, отличные от ASCII, вы должны отредактировать /etc/conf.d/consolefont и изменить шрифт

И добавить на уровень запуска загрузки

Пользовательская раскладка

Чтобы создать пользовательскую раскладку, просмотрите предоставленные раскладки в /usr/share/keymaps:

Вот пример пользовательской раскладки, которая совпадает с раскладкой QWERTY в США, за исключением того, что косая черта и апостроф поменялись местами:

Чтобы найти коды клавиш, сопоставленные с клавишами, просмотрите выходные данные dumpkeys :

Если ключ не может быть найден с помощью приведенной выше команды, запустите:

Просто нажмите клавишу, и отобразится ее код. Когда закончите, подождите несколько секунд, и showkey закроется.

системный

systemd использует файл /etc/vconsole.conf и включает в себя как шрифт терминала, так и настройки раскладки клавиатуры, но не имеет расширенных настроек, имеющихся в OpenRC. Допустимые значения должны соответствовать тому, что OpenRC поддерживает для соответствующей переменной.

Современные приложения X11 обычно используют x11-libs/libxklavier («klavier» в переводе с немецкого означает «клавиатура») и могут быть настроены с помощью setxkbmap . Кроме того, X11 поддерживает гораздо более широкий набор раскладок клавиатуры, чем для виртуальных терминалов. Следует иметь в виду, что правильная среда рабочего стола сама управляет раскладкой клавиатуры. Нет необходимости напрямую использовать вышеупомянутое приложение, но оно может пригодиться при работе со сломанным или отсутствующим управлением раскладкой клавиатуры.

KDE4 / Плазма

Откройте Системные настройки и перейдите к модулю «Устройства ввода».

Чтобы сделать дополнительные языки доступными в диспетчере входа SDDM, отредактируйте файл /usr/share/sddm/scripts/Xsetup и добавьте команду setxkbmap, за которой следует список языков, разделенных запятыми, которые вы хотели бы выбрать.

Например, чтобы включить немецкий язык по умолчанию и указать США в качестве раскладки клавиатуры, добавьте следующее:

Общая среда рабочего стола

Отредактируйте ~/.xprofile и вызовите оттуда setxkbmap или настройте клавиатуру в файле конфигурации Xorg (примеры см. ниже).

Примечание
Последние версии GNOME 3 больше не используют x11-libs/libxklavier, поэтому это может вообще не работать или может быть переопределено GNOME. Точно так же любая другая среда рабочего стола может переопределить конфигурацию x11-libs/libxklavier как часть инициализации или изменения макета.

Предупреждение
~/.xprofile — это нестандартный файл, который загружается только при входе в систему через диспетчер отображения, который его поддерживает (проверено только на GDM, KDM, LightDM, LXDM и SDDM). зависит от дистрибутива, хотя кажется, что все распространенные дистрибутивы поддерживают этот файл.

Универсальный X11

Использование setxkbmap

Эти изменения не являются постоянными и сохранятся только до тех пор, пока пользователь не перезапустит X11. Естественно, эту команду можно вызвать из сценария запуска, чтобы установить соответствующие параметры при каждом запуске X-сервера.

Чтобы запросить существующую конфигурацию:

Настройка раскладки клавиатуры:

Настройка раскладки клавиатуры, ее варианта и модели:

Настройка двух раскладок клавиатуры со светодиодной индикацией:

Рекомендуется прочитать руководство по xkeyboard-config для получения полного списка параметров конфигурации клавиатуры:

Поиск поддерживаемых макетов и вариантов или значений других свойств xkb в этом приложении невозможен, хотя большинство из них перечислены в файле /usr/share/X11/xkb/rules/base.lst. Получить наиболее полный список можно, только изучив другие файлы в /usr/share/X11/xkb/. Ради здравого смысла рекомендуется использовать подходящую среду рабочего стола с собственным управлением раскладкой клавиатуры.

Использование общесистемных макетов и ярлыков

Этот метод рекомендуется для конфигураций без среды рабочего стола, другими словами, только для X11 с оконным менеджером. Поскольку Gnome удалил возможность изменять раскладки клавиатуры в GDM с помощью gnome-control-center, GDM также полагается на этот метод в системах без systemd. Создайте файл 10-keyboard.conf и настройте в нем соответствующие параметры клавиатуры. Вы можете создать каталог /etc/X11/xorg.conf.d, если он не существует.

В приведенном выше примере настраиваются раскладки клавиатуры для США и Бразилии с сочетанием клавиш «Shift влево» и «Shift вправо» для переключения между ними. На бразильскую раскладку указывает индикатор Scroll Lock на клавиатуре.

Примечание
При использовании кириллической раскладки и клавиатуре с клавишами «Windows®» может потребоваться добавить адаптивные «,winkeys» к параметру XkbVariant.

Дополнительные возможности конфигурации

Существует ряд доступных вариантов и параметров, которые можно использовать при настройке раскладок клавиатуры. Большинство из них можно найти в файле /usr/share/X11/xkb/rules/base.lst.

Например, раскладку для США с возможностью написания некоторых международных символов можно настроить с помощью варианта altgr-intl :

Затем правый Alt используется как модификатор для ввода международных символов.

Xorg предоставляет возможность вводить международные и различные символы символов по композиции, что означает нажатие клавиши ввода, за которой следует последовательность символов. Чтобы включить композицию, добавьте параметр compose::

Опция compose:sclk выше настраивает блокировку прокрутки в качестве клавиши создания. С этой настройкой:

  • Нажмите Scroll Lock, затем введите "oo", чтобы получить знак градуса "°".
  • Нажмите Scroll Lock, затем введите "oc", чтобы получить знак авторского права "©".
  • Нажмите Scroll Lock, затем введите ':)', чтобы получить улыбающееся лицо '☺'
  • Нажмите Scroll Lock, затем введите '^2', чтобы получить верхний индекс 2 ('²').
  • Нажмите Scroll Lock, затем введите "_2", чтобы получить индекс 2 ("₂").
  • Нажмите Scroll Lock, затем введите "di", чтобы получить знак диаметра "⌀"
<р>. и многое другое. В файле /usr/share/X11/locale/compose.dir перечислены все возможные источники композиций.

Улучшение раскладки клавиатуры X

Это необходимо, когда необходимо внести более серьезные изменения в раскладку клавиатуры, например добавить назначения клавиш или добавить действия к функциональным клавишам. Поскольку такие изменения на самом деле являются улучшениями исходных файлов пакета, рекомендуется использовать механизм внесения исправлений пользователем, чтобы эти изменения сохранялись при следующем обновлении пакета.

Основы

Соответствующий пакет Gentoo — x11-misc/xkeyboard-config. Настроить клавиатуру под X сложнее, чем сделать то же самое для виртуальной консоли. Соответствующие файлы конфигурации можно найти в /usr/share/X11/xkb в следующих подкаталогах:

keycodes Эти файлы связывают коды клавиш с символическими именами — маловероятно, что кто-то захочет это изменить. геометрия Это физическая форма клавиатуры, используемая некоторым программным обеспечением для рисования ее схем - также маловероятно, что кто-то захочет это изменить. типы Файлы здесь создают "типы". Используемый в объявлении ключа тип указывает, какие комбинации клавиш Shift можно использовать с ключом. символы Эти файлы определяют фактические назначения клавиш. compat Файлы здесь определяют «действия» (например, переключение на виртуальный терминал), давая им имена, которые можно назначать клавишам. rules Эти файлы с такими параметрами, как тип клавиатуры и язык, активируют соответствующие спецификации в других каталогах.

Добавление назначений клавиш

Например, в этом разделе будет улучшена раскладка клавиатуры для британского английского, так что при вводе a, o или u с помощью AltGr будут генерироваться немецкие буквы умлаут ä, ö и ü. Это также должно поступать правильно для версий в верхнем регистре. Клавиши для повышения - A (), O () и U (). (Символ ß уже назначен AltGr + S .)

Названия букв с умлаутом в xkb - "adiaeresis" и так далее. Эти имена можно найти в файле /usr/include/X11/keysymdef.h , хотя для получения имен необходимо удалить ведущие «XK_».

Определите нужный файл в каталоге символов. Большинство этих файлов называются двухбуквенными кодами стран (например, gb для Великобритании), поэтому угадайте тот, который соответствует раскладке клавиатуры, выбранной в данный момент в X. В этом примере символы /gb расширены.

Используя приведенную выше информацию, создайте новые записи, скопировав существующую схему в symbols/gb . В этом примере эти записи должны быть добавлены в раздел под названием «основной». По его содержанию легко догадаться, что четыре элемента в скобках и квадратных скобках в записи для каждой клавиши предназначены для обычных (без других комбинаций клавиш), Shift , AltGr и Shift + AltGr соответственно:

После внесения дополнений раздел выглядит так:

Сохранив этот файл, перезапустите X Windows. Типичная среда рабочего стола, XFCE, повторно считывает вышеуказанные файлы конфигурации при каждом запуске. В случае возникновения ошибок сообщения об ошибках будут записываться в обычный stderr — если X Windows запускается из командной строки, stderr будет виртуальным терминалом, с которого он был запущен.

Добавление действий к функциональным клавишам

Например, добавьте действия «переключиться на виртуальный терминал n» (где n > 12) к функциональным клавишам F1–F12, когда выбраны все клавиши Ctrl , Alt и Shift . Тот же эффект должен иметь место при выборе AltGr и Fn.

Сначала найдите файл в каталоге символов, который обрабатывает существующие назначения для функциональных клавиш. Этот файл — icons/srvr_ctrl. Запись в этом файле для F1 , которую предполагается изменить, выглядит следующим образом:

В отношении этой записи следует отметить две вещи:

  • Тип "CTRL+ALT"; таким образом, он принимает стандартные четыре настройки клавиши Shift с Shift и AltGr , а также пятую настройку Ctrl + Alt . Поскольку целью является использование Ctrl + Alt + Shift , а подходящего существующего типа нет, необходимо создать новый.
  • "Действие" XF86_Switch_VT_1 — это просто определенный символ в системе xkb. Его семантика задается записью в файле в каталоге compat, а именно compat/xfree86. Нет символа XF86_Switch_VT_13 (или выше) — вместо этого украсть неиспользуемые существующие символы F13, F14, . F24.
Создание нового типа CTRL+ALT+SHIFT

Найдя «CTRL+ALT» в types/pc , достаточно легко скопировать его, переименовать копию в «CTRL+ALT+SHIFT» и расширить это, чтобы разрешить комбинацию клавиш-модификаторов Ctrl + Alt + Shift . Результат выглядит следующим образом:

Активация символов F13, . F24

Символ XF86_Switch_VT_1 быстро находится в compat/xfree86 . Скопировать его форму несложно, создав назначения для символов F13, . Ф24. Определение первого из этих символов, F13, в compat/xfree86 выглядит следующим образом:

Аналогичные определения для F14, . F24 также должен быть помещен в файл.

Изменение записей в символах для клавиш F1 , . F12

Теперь, когда новый тип CTRL+ALT+SHIFT и определения символов F13, .F24 определены, измените определения функциональных клавиш в symbols/srvr_ctrl . Один для F1 упоминается ниже, аналогичные определения также необходимо вставить для других функциональных клавиш:

После внесения этих изменений в types/pc , compat/xfree86 и symbol/srvr_ctrl и перезапуска X-сервера теперь возможно переключение с X напрямую на виртуальные терминалы 13 и выше — при условии, что они были настроены в / etc/inittab (или аналог systemd), конечно.

Читайте также: