6

У меня есть американская клавиатура и раскладка, но иногда мне нужны специальные немецкие клавиши (äÄöÖüÜß). Конечно, я мог переключать раскладки клавиатуры, когда мне это нужно, но раньше я использовал эту совершенно бесполезную клавишу блокировки прописных букв, чтобы получить доступ к нужным символам, используя следующие ~/.Xmodmap:

keycode 66 = Mode_switch Multi_key
keycode 20 = minus underscore ssharp
keycode 34 = bracketleft braceleft udiaeresis Udiaeresis
keycode 47 = semicolon colon odiaeresis Odiaeresis
keycode 48 = apostrophe quotedbl adiaeresis Adiaeresis

По какой-то странной причине поведение клавиатуры изменилось, когда Fedora переключилась на Wayland. Теперь моя (волшебная) раскладка клавиатуры работает только иногда, и клавиша caps lock снова действует как locker :(

Существует ли Wayland aware сделать специальные символы (немецкие) доступными на клавиатуре США? (Или же сделать []{}|<> доступным одним нажатием клавиши на немецкой клавиатуре)

2 ответа2

8

Wayland использует XKB, но способ задания макета зависит от вашего композитора (вы не можете использовать setxkbmap или xkbcomp как в Xorg). Вы, вероятно, захотите вариант altgr-intl стандартного макета us (международный макет в США) и, возможно, некоторые опции: Compose (иначе Multi_key), возможно, по клавише Menu? AltGr на правой клавише Alt? (Вариант intl аналогичен, но включает в себя deadkeys на уровне 1; altgr-intl помещает deadkeys на уровень 3, поэтому они вне пути, но все еще доступны.)

В соответствии с этим макетом и вариантом большинство перечисленных вами символов удобно доступны под клавишами AltGr или Compose:

AltGr+q = ä   AltGr+Shift+a = Ä    Compose+",a = ä    Compose+",A = Ä
AltGr+p = ö   AltGr+Shift+p = Ö    Compose+",o = ö    Compose+",O = Ö
AltGr+y = ü   AltGr+Shift+y = Ü    Compose+",u = ü    Compose+",U = Ü
AltGr+s = ß                        Compose+s,s = ß

Для Уэстона вы бы добавили настройки в $HOME/.config/weston.ini:

[keyboard]
keymap_rules=evdev
keymap_layout=us
keymap_variant=altgr-intl
keymap_options=compose:menu,level3:ralt_switch

Для sway (как в i3) вам нужно установить переменные окружения перед выполнением, либо объединенные в цепочку в командной строке, либо в вспомогательном скрипте:

#!/bin/sh
export XKB_DEFAULT_LAYOUT=us
export XKB_DEFAULT_VARIANT=altgr-intl
export XKB_DEFAULT_OPTIONS=compose:menu,level3:ralt_switch
sway

Под GNOME, вы должны проконсультироваться с вашим любимым gsettings или dconf фронтэнда. Вы можете указать параметры XKB в /org/gnome/desktop/input-sources/xkb-options и конкретные макеты в /org/gnome/desktop/input-sources/sources . (Возможно, они изменились с момента публикации; проверьте существующие настройки.)

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+altgr-intl')]"
gsettings set org.gnome.desktop.input-sources xkb-options "['compose:menu','lv3:ralt_switch']"

KDE использует собственную графическую панель управления; Вы найдете это в Системных настройках> Оборудование> Устройства ввода> Клавиатура. Вкладка Layouts позволит вам настроить вариант altgr-intl (он указан как «английский (международные мертвые ключи AltGr)»), а параметры XKB перечислены на вкладке Advanced.

В текущей версии KDE Frameworks 5 эта панель управления сохраняет настройки в $HOME/.config/kxkbrc .


Если ваша система использует systemd localectl вы можете попытаться установить его на то, что вам нужно, и GNOME/KDE сможет найти его оттуда. Это может только навести порядок в Xorg в настоящее время, но мне нравится иметь его в качестве запасного варианта, и я надеюсь, что композиторы Wayland будут использовать его в будущих выпусках, чтобы подобрать общесистемные предпочтения.

sudo localectl set-x11-keymap us pc105 altgr-intl compose:menu,level3:ralt_switch
(format:                  [layout] [model] [variant] [options])
0

Одной из возможностей может быть изменение клавиатуры по умолчанию с английского (США) на английский (международный). Я делаю это на всех компьютерах, над которыми у меня есть достаточный контроль, и это позволяет мне использовать некоторые знаки препинания в качестве акцентов "мертвого ключа" для получения общих неанглоязычных символов.

В Windows это преобразует правую клавишу Alt в AltGr, и в сочетании с определенными нажатиями клавиш я получаю связанные не английские символы, такие как AltGr+s для sharp-s, AltGr+t для исландского шипа, AltGr+d для исландского эдх и другие.

Для «мертвой клавиши» большинство знаков препинания удваивается в качестве акцентов - чтобы получить e-острый, введите 'затем e; o-острый 'тогда o, a-могила `тогда a, u-umlaut' тогда u, и так далее. Чтобы получить пунктуацию, нажмите символ, с которым он не сочетается в качестве акцента, или нажмите пробел - апостроф означает «затем пробел; двойная кавычка / дюймовая метка - «затем пробел и так далее». Это немного подстроено, но намного проще, чем запоминание alt-кодов (в Windows) или постоянное переключение между макетами.

(С тех пор я сделал это в Linux Mint «из коробки»; по модулю некоторые незначительные различия в расположении некоторых символов AltGr, он имеет тот же эффект - но это не очень хороший Wayland).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .