Взялся за древнеанглийский (язык «Беовульфа») и первым делом упёрся в клавиатуру. В научных изданиях используются торн (þ), эт (ð), эш (æ), иногда винн (ƿ), долгие гласные с макроном (ā, ē, ī, ō, ū, ȳ, ǣ) и палатализованные согласные с точкой (ġ, ċ). В Linux всё это уже есть, нужно лишь знать, где искать. Ниже — способы от самого быстрого к самому универсальному.
1. AltGr: возможно, всё уже есть в вашей раскладке
Сначала загляните в раскладку. Я проверил по файлам xkb (/usr/share/X11/xkb/symbols/fr и us):
- US international (
us(intl)) и US altgr-intl: AltGr+t → þ, AltGr+d → ð, AltGr+z → æ. Мёртвая клавиша макрона — AltGr+Shift+3. - bépo (
fr(bepo)): AltGr+a → æ, AltGr+t → þ, AltGr+d → ð (с Shift — заглавные). Макрон — мёртвая клавиша AltGr+m, точка сверху — мёртвая клавиша AltGr+Shift+i: AltGr+m, затем e даёт ē; AltGr+Shift+i, затем g даёт ġ. - Обычная французская AZERTY (
fr): напрямую ничего из этого нет, придётся пользоваться Compose.
Проверить у себя:
grep -nE 'thorn|eth|\bae\b' /usr/share/X11/xkb/symbols/fr
2. Клавиша Compose — универсальное решение
Compose (Multi_key) позволяет набрать символ последовательностью клавиш. Сначала её нужно назначить:
setxkbmap -option compose:ralt # правый Alt становится Compose (X11)
setxkbmap -option compose:menu # или клавиша Menu, если AltGr нужен
В GNOME это делается в «Доп. настройках» (gnome-tweaks) → Клавиатура → Клавиша Compose, либо из консоли:
gsettings set org.gnome.desktop.input-sources xkb-options "['compose:menu']"
В KDE Plasma: Параметры системы → Клавиатура → Дополнительно → положение клавиши Compose.
Стандартные последовательности лежат в /usr/share/X11/locale/en_US.UTF-8/Compose (в Debian — пакет libx11-data; проверял на libX11 1.8.12). Нужные нам:
- þ / Þ — Compose t h / Compose T H (
<Multi_key> <t> <h> : "þ" thorn) - ð / Ð — Compose d h / Compose D H (
<Multi_key> <d> <h> : "ð" eth) - æ / Æ — Compose a e / Compose A E (
<Multi_key> <a> <e> : "æ" ae) - ā, ē, ī, ō, ū — Compose - a (или Compose _ a)
- ȳ — Compose _ y (
<Multi_key> <underscore> <y> : "ȳ") - ġ — Compose . g (или Compose g .)
- ċ — Compose . c (или Compose c .)
Подвох: для ȳ и ǣ есть только вариант с _ (не с -), а для ǣ нужно, чтобы æ была на клавише (Compose _ æ). Для винна (ƿ, U+01BF) стандартной последовательности нет вообще. Проверка:
grep -nE 'thorn|U0121|U010B|U01BF' /usr/share/X11/locale/en_US.UTF-8/Compose
3. Свои последовательности в ~/.XCompose
Создаём ~/.XCompose, который сначала подключает системный файл (иначе все стандартные последовательности пропадут), а затем добавляем свои:
include "%L"
# Винн (стандартной последовательности нет)
<Multi_key> <w> <w> : "ƿ" U01BF # LATIN LETTER WYNN
<Multi_key> <W> <W> : "Ƿ" U01F7 # LATIN CAPITAL LETTER WYNN
# ǣ через дефис, по аналогии с Compose - a
<Multi_key> <minus> <ae> : "ǣ" U01E3
<Multi_key> <minus> <AE> : "Ǣ" U01E2
%L — это Compose-файл текущей локали. Перед добавлением последовательности проверьте grep-ом, что она не занята и не является префиксом другой (w w, W W и minus ae свободны — я проверял). Для ġ и ċ ничего добавлять не надо. Затем перезапустите приложения или сессию.
4. IBus: ввод по коду Unicode
В IBus (в GNOME он стоит по умолчанию) Ctrl+Shift+U, затем шестнадцатеричный код и пробел или Enter вставляют любой символ. Коды:
- þ / Þ — 00FE / 00DE
- ð / Ð — 00F0 / 00D0
- æ / Æ — 00E6 / 00C6
- ƿ / Ƿ — 01BF / 01F7
- ā / ē / ī / ō / ū / ȳ — 0101 / 0113 / 012B / 014D / 016B / 0233
- ǣ — 01E3
- ġ / Ġ — 0121 / 0120
- ċ / Ċ — 010B / 010A
Как вариант — KCharSelect или gucharmap, где можно искать «wynn» по имени.
5. А что с Wayland?
Под Wayland setxkbmap бесполезен: опция compose: задаётся в настройках окружения (они передают её композитору), а в Sway — строкой xkb_options compose:ralt в конфиге. Сама клавиша Compose работает в GTK- и Qt-приложениях, будь композиция через IBus или через libxkbcommon. А вот с ~/.XCompose всё неоднозначно: libxkbcommon его читает, свежие версии IBus тоже, но некоторые сочетания (Electron, Flatpak, GNOME с IBus) игнорируют ваши добавления или требуют перелогиниться. Если свой ƿ не набирается, проверьте сначала в другом приложении.
6. Шрифты
Символ бесполезен, если вместо него квадратик; хуже всего с винном. Надёжные варианты:
- Junicode — сделан для медиевистов, очень полный (пакет
fonts-junicodeв Debian/Ubuntu); - DejaVu Sans / Serif;
- Noto Serif (и Noto Sans).
Какие установленные шрифты покрывают винн:
fc-list ':charset=01bf' family | sort -u
Можно проверить сразу несколько кодов: fc-list ':charset=fe f0 e6 1bf 121 10b' family.
7. Пример: первая строка «Беовульфа»
Цель — «Hwæt! Wē Gār-Dena in ġēardagum». Со стандартными последовательностями Compose:
Hw, затем Compose a e → æ, затемt!;W, затем Compose - e → ē;G, затем Compose - a → ā, затемr-Dena in;- Compose . g → ġ, затем Compose - e → ē, затем
ardagum.
Вопрос к сообществу
Дальше начинается собственно чтение: основной справочник — словарь Босворта–Толлера, а для быстрой проверки значения уже набранного слова пригодится и переводчик с древнеанглийского. Но вопрос у меня скорее технический: как вы настраиваете Compose и свой ~/.XCompose под Wayland — работает ли у вас всё в Electron и Flatpak? И какими шрифтами пользуетесь для редких латинских символов?


