# Раскладки клавиатуры и макрос — новая эрзянская латиница (орфография Назаренко)

Набор инструментов, чтобы писать эрзянский новой латиницей на любом устройстве. Приходит на
смену старой странице RAVO-раскладок (`valks.erzja.info/2020/04/30/раскладки-и-макрос/`).

> **Орфография:** Назаренко / *learnerzya — about the spelling*. 16 особых букв в трёх группах:
> умляут **ä ö ü ë ï**, гачек **š č ž ľ ť ď**, акут **ń ŕ ś ź ć**. `j` (/й/) — обычная буква.

## Одна логика на всех устройствах

**Диакритика + буква.** На компьютере — мёртвой клавишей; в макросе и на телефоне — постфиксом
(буква, затем знак). Полная таблица — в [`CHEATSHEET.md`](CHEATSHEET.md); обоснование схемы — в
[`keymap_spec.md`](keymap_spec.md).

| | акут ´ | гачек ˇ | умляут ¨ |
|---|---|---|---|
| Десктоп — мёртвая клавиша | `AltGr+'` затем буква | `AltGr+]` затем буква | `AltGr+[` затем буква |
| Макрос / телефон — постфикс | буква + `'` | буква + `=` | буква + `"` |
| Даёт | ń ŕ ś ź ć | š č ž ľ ť ď | ä ö ü ë ï |

Плюс быстрый ввод одной комбинацией: `AltGr+a`=ä, `AltGr+s`=š, `AltGr+n`=ń и т. д. (для букв с
единственной формой). `ś ź ć` — только мёртвым акутом (их базы заняты гачеком š ž č).

---

## Установка по платформам

### Windows — нативная раскладка
1. Файл [`windows/erzya-new.klc`](windows/erzya-new.klc).
2. Поставить **Microsoft Keyboard Layout Creator (MSKLC)** (бесплатно у Microsoft).
3. Открыть `.klc` в MSKLC → **Project → Build DLL and Setup Package** → запустить полученный
   `setup.exe`.
4. **Параметры → Время и язык → Язык → English (US) → Параметры → Добавить клавиатуру → «Erzya
   New Latin»**. Переключение — `Win+Пробел`.
5. AltGr — это правый Alt. Мёртвые клавиши: `AltGr+[` (умляут), `AltGr+]` (гачек), `AltGr+'` (акут).

### Windows без установки раскладки — макрос
- **AutoHotkey:** поставить AutoHotkey, запустить [`macro/erzya-new.ahk`](macro/erzya-new.ahk)
  (двойной клик). Работает постфикс (`s'`→ś, `s=`→š, `a"`→ä) и прямой `AltGr+буква`. Чтобы
  стартовал с системой — положить ярлык в папку «Автозагрузка».

### macOS — нативная раскладка
1. Файл [`macos/Erzya-New.keylayout`](macos/Erzya-New.keylayout) → скопировать в
   `~/Library/Keyboard Layouts/` (папка «Библиотека» пользователя).
2. Перелогиниться (или перезагрузить).
3. **Системные настройки → Клавиатура → Источники ввода → + → «Erzya New Latin»**.
4. Здесь роль AltGr играет **⌥ Option**: `⌥+[` умляут, `⌥+]` гачек, `⌥+'` акут (затем буква);
   прямой ввод — `⌥+a`=ä, `⌥+s`=š и т. д.

### Linux — нативная раскладка (XKB)
1. Файл [`linux/erzya`](linux/erzya) → скопировать в `/usr/share/X11/xkb/symbols/erzya`
   (нужны права root).
2. Зарегистрировать в `/usr/share/X11/xkb/rules/evdev.xml` (внутри `<layoutList>`):
   ```xml
   <layout><configItem><name>erzya</name>
     <shortDescription>erz</shortDescription>
     <description>Erzya (new latin)</description>
     <languageList><iso639Id>myv</iso639Id></languageList>
   </configItem></layout>
   ```
3. Применить: `setxkbmap erzya` (или добавить в графические настройки клавиатуры).
4. AltGr — правый Alt (level3). Мёртвые клавиши `[ ] '` под AltGr. Если `ľ ť ď` не собираются —
   добавить строки из [`linux/erzya.compose`](linux/erzya.compose) в `~/.XCompose` и перелогиниться.
   Карта соответствий — [`linux/README-mapping.txt`](linux/README-mapping.txt).

### iOS / Android — телефон
Большинство букв доступно **долгим нажатием** базовой буквы (см.
[`mobile/CHEATSHEET-longpress.md`](mobile/CHEATSHEET-longpress.md)): держите `a` → выберите `ä`,
держите `s` → `š`/`ś` и т. д.

Для надёжного ввода любых 16 букв — автозамена:
- **iOS:** Настройки → Основные → Клавиатура → Замена текста. Пары из
  [`mobile/ios-text-replacement.md`](mobile/ios-text-replacement.md) (фраза `ś`, сокращение `s'`).
- **Android:** Настройки → Система → Языки и ввод → Словарь → Личный словарь. Список —
  [`mobile/android-personal-dictionary.txt`](mobile/android-personal-dictionary.txt) (слово `ś`,
  ярлык `s'`).

> Полноценная *системная* раскладка под iOS/Android требует отдельного приложения-клавиатуры
> (публикуется в App Store / Google Play). Долгое нажатие + автозамена закрывают набор без
> приложения; кастомную клавиатуру-приложение можно сделать отдельным проектом при необходимости.

---

## Макрос: ввод и массовая конвертация

Каталог [`macro/`](macro). Прямой наследник старого Notepad++ макроса `erz_latinica`, но в новую
графику и кросс-платформенно.

### Espanso (Windows / macOS / Linux — рекомендуется)
Espanso — бесплатный текстовый расширитель, один конфиг на все ОС, без компиляции.
1. Установить espanso (espanso.org).
2. Скопировать папку [`macro/espanso/erzya-new/`](macro/espanso/erzya-new) в каталог пакетов
   espanso (`espanso path` покажет путь; обычно `.../espanso/match/packages/`), либо
   `espanso install --external ...`.
3. `espanso restart`. Теперь работает постфикс (`s'`→ś, `s=`→š, `a"`→ä) в любом приложении.
4. Бонус — конвертация кириллицы: скопировать эрзянскую кириллицу, набрать `:erz` (вызывает
   `macro/erznew.py` → новую латиницу).

### Массовая конвертация кириллица → новая латиница (CLI)
[`macro/erznew.py`](macro/erznew.py) оборачивает `scripts/valks_conv.cyr_to_new` (источник истины):
```bash
python keyboard/macro/erznew.py "Эрзянь кель, вирь"     # -> Erźań keľ, viŕ
echo "мейс" | python keyboard/macro/erznew.py            # -> mejs
python keyboard/macro/erznew.py -i in.txt -o out.txt     # файл -> файл
python keyboard/macro/erznew.py --clip                   # буфер обмена -> stdout
```

---

## Как всё устроено (для сопровождения)

Источник истины — [`keymap.json`](keymap.json). Из него генерируются все артефакты:
- `python keyboard/make.py` → espanso, AutoHotkey, CLI, XKB, мобильные списки, `CHEATSHEET.md`;
- `python keyboard/make_klc.py` → `windows/erzya-new.klc`;
- `python keyboard/make_keylayout.py` → `macos/Erzya-New.keylayout`.

Менять раскладку — править `keymap.json` и перегенерировать (как и весь сайт valks: данные →
генераторы → артефакты). Орфографические правила (что во что переходит) остаются в
`scripts/valks_conv.py` и здесь не дублируются.

## Новый релиз на сайт
Таблица «Релизы и загрузки» на странице `raskladki/` рисуется из [`releases.json`](releases.json).
Как добавить релиз (2 действия) — см. [`RELEASES.md`](RELEASES.md).

## Статус готовности
- ✅ Windows `.klc`, macOS `.keylayout`, Linux XKB — нативные раскладки (десктоп).
- ✅ Espanso / AutoHotkey / CLI — макрос-ввод и массовая конвертация (десктоп).
- ✅ iOS / Android — долгое нажатие + автозамена (списки готовы).
- ⏳ На выверку носителю: удобство расположения мёртвых клавиш (`[ ] '`) и постфикс-маркеров
  (`' = "`) на практике; нужна ли системная мобильная клавиатура-приложение.
