> For the complete documentation index, see [llms.txt](https://k12kb.gitbook.io/doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://k12kb.gitbook.io/doc/ru/readme.md).

# Manual

## О K12KB

### Описание

Клавиатура от фанатов ввода на аппаратной клавиатуре и для фанатов ввода на аппаратной клавиатуре. K12KB претендует на то, чтобы быть **удобнее**, чем **Blackberry Keyboard**, более **настраиваемой** и **кастомизируемой**, чем **ruKeyboard**. Цель -- сделать удобство работы с текстом таким, чтобы не приходилось убирать руки с клавиатуры и касаться экрана. Для этого широко применяются разного рода перемещения по тексту и жесты по клавиатуре. Уделено немалое внимание работе одной рукой, что, например, затруднено в родной клавиатуре и ruKeyboard из-за смены языка двумя кнопками. По архитектуре программного кода клавиатура сделана весьма расширяемо и настраиваемо и может быть адаптирована для других раскладок, устройств и языков. Кроме того, поведение клавиатуры полностью кастомизируется через JSON-файлы настроек, т.е. пользователь может добавлять, удалять и менять горячие клавиши и многое другое.

### Поддерживаемые устройства

| Устройство            | Примечание                                                                    |
| --------------------- | ----------------------------------------------------------------------------- |
| Blackberry Key1       | Полная поддержка                                                              |
| Blackberry Key2       | Полная поддержка                                                              |
| Unihertz Titan        | Полная поддержка                                                              |
| Unihertz Titan Pocket | Без жестов по клавиатуре в режиме ввода текста                                |
| Unihertz Titan Slim   | Без жестов по клавиатуре в режиме ввода текста                                |
| Другие                | Адаптируется без перекомпиляции под любое устройство с аппаратной клавиатурой |

### Ключевые особенности

* Иконка с языком в статус-баре, иконка с языком в нижней свайп-панели.
* Переключение языка одной кнопкой (`KEY_0`); только для Blackberry Key1/Key2.
* `Ctrl`+`A`/`C`/`X`/`V`/`Z` (и даже `Ctrl`+`Shift`+`Z`); работает в т.ч. для НЕ\_РСТ Blackberry Key2 и Unihertz Titan (см. таблицу ниже).
* Жесты по клавиатуре для листания и перемещения курсора по тексту (включая вертикальные жесты и выделение с `Shift`).
* Навигационные кнопки (стрелки, `Page Up`/`Page Down`, `Home`, `End`, `Tab`, `Esc`); видимый NAV-pad.
* SYM-pad для отображения символов из ALT2-раскладки (которая не гравируется на клавиатуре).
* Много полезных сочетаний клавиш (`Alt`+`Del`, `Shift`+`Enter`, `Shift`+`Del` и пр.).
* Поисковые плагины, которые автоматически активируют поиск при наборе текста, с возможностью добавлять свои.
* Тотальная кастомизация всех функций через правку JSON-файлов.
* Возможность менять и добавлять раскладки через правку JSON-файлов.
* Режим Указателя для тех, кто помнит трекбол классических BlackBerry.

***

## Руководство пользователя

### Важно для понимания

На разных устройствах кнопка `Ctrl` соответствует разным физическим клавишам:

| Устройство                 | Физическая клавиша вместо `Ctrl` | Примечание                                                                                                           |
| -------------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| Blackberry Key1            | `RIGHT_SHIFT`                    | --                                                                                                                   |
| Blackberry Key2 (НЕ\_РСТ)  | `SPEED_KEY`                      | Функция вызова приложения через `SPEED_KEY` продолжает работать, кроме сочетаний с `A`, `C`, `X`, `V`, `Z` и `KEY_0` |
| Unihertz Titan             | `CTRL`                           | Физическая клавиша `Ctrl` на устройстве                                                                              |
| Unihertz Titan Pocket/Slim | `FN`                             | Кнопка `KEY_0` отсутствует                                                                                           |

> `Shift` везде означает `LEFT_SHIFT`.

> Чтобы работали наэкранные клавиатуры NAV-pad, SYM-pad и свайп-панель, настройка "показывать виртуальную клавиатуру" должна быть включена.

### А. Переключение языка ввода (раскладки)

1. `KEY_0` (однократное нажатие).
2. `Shift`+`Space` (пробел при зажатом `Shift`).

### Б. Ввод текста (особенности)

1. Реализованы сдвоенные символы. Двойное нажатие (double-click) удаляет первый символ и вводит второй (сдвоенный) символ.
2. `Shift`+`Backspace` = `Delete` (удаляет символ после курсора).
3. Двойной пробел (`2xSpace`) дает сочетание ". " (точка и пробел).
4. В режимах жестов по полям ввода, свайп-панели и NAV-режиме можно делать **выделение с зажатием `Shift`**.
5. `Shift`+`Enter` двигает курсор в начало абзаца (если уже в начале абзаца -- в начало предыдущего).
6. `Alt`+`Del` удаляет все до предыдущего начала (перевода) строки (абзац). `Alt`+`Shift`+`Del` удаляет абзац **вперед**.
7. `KEY_0`+`Del` удаляет слово. `KEY_0`+`Shift`+`Del` удаляет слово **вперед** (только Key1|2).
8. `Alt`+`Space` делает табуляцию (`\t`) в режиме редактирования.
9. `Enter` работает как кастомная кнопка (`SEARCH`, `GO`, `NEXT` и пр.) для тех случаев, когда такие опции предлагает хост-приложение (по аналогии с Blackberry Keyboard).

### В. Заглавные буквы

1. Автоматически становится заглавной первая буква в начале текстового поля, буква после точки и пробела, первая буква в начале новой строки.

> Если надо принудительно вернуть строчную букву, нажмите `Shift`.

2. Однократное нажатие `Shift` делает следующую букву заглавной, далее пойдут строчные.
3. `Shift`+буквы будут заглавными, пока зажат `Shift`.
4. `2xShift` -- включение постоянного режима заглавных (Caps Lock). Чтобы выключить -- однократно нажмите `Shift`.
5. Если Настройка 5 в состоянии ВЫКЛ, то при удержании буква станет заглавной. Если буква сдвоенная, то: быстрое нажатие, затем нажатие с удержанием.

### Г. Ввод ALT-символов

1. `Alt`+клавиша -- ввод символа/цифры ALT-раскладки (нанесенной на клавиатуру).
2. `Alt`, затем клавиша -- однократный ввод символа, далее ALT-режим отключается (переходит в буквенный режим). Если включена Настройка 3, то ALT-режим выключится только после нажатия `Space`.
3. `2xAlt` -- включение постоянного режима Alt-символов. Выключается нажатием `Alt`.
4. Удержание буквы вводит символ из Alt-раскладки. Работает, если включена Настройка 5 (если настройка не включена, вводится заглавная буква).

### Д. Символы SYM-раскладки и наэкранная SYM-клавиатура

#### Ввод символов из SYM-раскладки (ALT2 / Alt-Shift)

1. Во включенном ALT-режиме `Shift`+клавиша.
2. `Shift`+удержание.
3. В ALT-режиме (`2xAlt` или зажатый `Alt`) нажатие с удержанием.
4. В ALT-режиме быстрое нажатие, затем нажатие с удержанием -- дает первый символ из списка дополнительных символов (п. 8) (тире на минусе, рубль на долларе).
5. Быстрое нажатие, затем нажатие с удержанием (**для работы одной рукой**).

#### Наэкранная SYM-клавиатура

6. Нажатие `Sym` открывает/закрывает наэкранную SYM-клавиатуру в режиме ALT2 (SYM) раскладки.
7. Чтобы перевести наэкранную SYM-клавиатуру в ALT-режим (и обратно), нажмите `Alt` или `Shift`.
8. На некоторых наэкранных символах есть зажатие, тогда появится выбор дополнительных символов. Например, на символе минус "-" есть вариант "--" (тире).

### Е. Навигационная клавиатура (NAV-клавиатура) и NAV-режим

1. Позволяет использовать стрелки вверх/вниз/влево/вправо, `Home`, `End`, `Page Up`, `Page Down`, `Esc`, `Tab`, `Shift`+`Tab` и `Del`.
2. Можно использовать как в режиме ввода, так и в режиме просмотра для разного рода перемещений по экрану.
3. "Временный" режим (режим с удержанием/отпусканием). Зажатие `Sym`+клавиша. Отпускание `Sym` отключает режим.
4. "Постоянный" режим (в режиме ввода текста открывает NAV-панель; на нее можно нажимать, а можно посмотреть и запомнить буквы на клавиатуре для использования в режиме зажатия). Включение: `2xSym`. Отключение: однократное нажатие `Sym`.
5. Есть варианты NAV-клавиатуры под правый палец (`Q`/`Y`/`U`/`I`/`O` и `A`/`H`/`J`/`K`/`L`) для постоянного режима и под левый палец (`Q`/`W`/`E`/`R`/`T` и `A`/`S`/`D`/`F`/`G`) для удобства работы с удержанием `Sym`.
6. Хождение по словам: `Sym`+`Z`/`N` (предыдущее слово) и `Sym`+`X`/`M` (следующее слово). Пунктуация проезжается автоматически. Поддерживается выделение по словам с зажатием `Shift`.
7. Переключение активного ползунка выделения: нажмите `2xShift` (без отпускания второго нажатия) — тогда будет двигаться противоположный ползунок, в т.ч. по словам и всеми навигационными кнопками.

### Ж. Режимы жестов по клавиатуре (сенсор на клавиатуре)

#### Жесты по полю ввода (режим Курсора)

1. "Временный" режим. Зажатие `KEY_0` + жест по клавиатуре влево-вправо (если включен режим вертикальных жестов, то и вверх-вниз). Можно сначала зажать `KEY_0`, потом начать делать жест.
2. "Постоянный" режим жестов. Включение: `2xKEY_0`. Выключение: `1xKEY_0`. Жесты по клавиатуре влево-вправо будут работать до первого ввода текста.
3. Режим жестов вверх-вниз (для больших текстов). Включение: `3xKEY_0`. Отключение: `1xKEY_0`. Автоматически отключается после ввода первого символа.

> `3xKEY_0` включает режим вертикальных жестов; после этого режим будет работать и по `2xKEY_0`, пока не будет отключен явно через `1xKEY_0`.

> Для Unihertz **Titan Pocket/Slim** для активации режима жестов по тексту используется `2xFn` (механизм зашит в ОС).

> **Подсказка:** для прокрутки в Telegram используйте режим перелистывания в режиме редактирования (см. ниже). Также можно вывести курсор из поля ввода стрелкой вверх (`Sym`+`U`/`E`).

4. Двойной тап по клавиатуре активирует режим горизонтальных жестов. Работает как с отпусканием, так и без отпускания второго касания. Отпускание деактивирует режим жестов по текстовому полю.
5. Тройной тап по клавиатуре активирует режим горизонтальных и вертикальных жестов. Работает как с отпусканием, так и без отпускания третьего касания. Отпускание деактивирует режим жестов по текстовому полю.

> Тройной тап включает режим вертикальных жестов; после этого режим будет работать и по двойному тапу.

6. В режиме жестов (в т.ч. вертикальных) по полям ввода можно зажимать `Shift` и выделять текст.

#### Режим перелистывания в режиме редактирования

Находясь в диалоге мессенджера (например, в Telegram) можно по `2xCtrl` перейти в режим листания (scroll) истории жестами по клавиатуре. Ввод любого символа отключает этот режим.

Если для приложения включены жесты по режиму просмотра (Настройка 9 или `3xCtrl`), режим листания включается автоматически при входе в поле ввода, пока не начнешь нажимать кнопки. Чтобы это выключить, отключите сенсор для приложения через `3xCtrl`.

#### Жесты по режиму просмотра

1. Если включена соответствующая настройка (Настройка 9), жесты по просмотру будут работать во всех приложениях (за исключением полей ввода). Включение/отключение: `3xCtrl`.
2. Режим пролистывания (scroll) плавно листает страницы через жесты по клавиатуре.
3. Второй режим -- Указатель (Pointer) -- позволяет перемещать выделение по разным элементам интерфейса, кнопкам и пр. (как раньше было в классических BlackBerry без сенсорного экрана).

> Выделение элементов интерфейса также можно перемещать через NAV-режим.

4. Переключить режим (если он включен) можно через `2xCtrl`.
5. Выбранный через `2xCtrl` вариант режима жестов запоминается для каждого приложения.
6. Настройка 9 позволяет выбрать, какой режим жестов по режиму просмотра будет работать по умолчанию.
7. Настройка 9 не переопределяет уже сохраненные настройки режима жестов для приложений.

> Иногда непонятно, где находится выделенный элемент -- для этого надо подвигать указатель сенсором.

8. Для упрощения "нащупывания" удобной настройки (где работать указателем, а где нет) есть Настройка 13. Она дополнительно подсвечивает рамкой выделенный элемент и устанавливает фокус, если хост-приложение не поставило его само.
9. В режиме указателя можно кликнуть на выделенный элемент через `Enter` (стандартное поведение, определяемое хост-приложением) или нажать `Space` для имитации тапа пальцем. В разных приложениях может срабатывать по-разному.
10. `Alt`+`Space` делает долгое нажатие в режиме указателя.

### З. Операции с Ctrl

1. Текстовые операции: `Ctrl`+`C` (копировать), `Ctrl`+`V` (вставить), `Ctrl`+`X` (вырезать), `Ctrl`+`A` (выделить все).
2. `Ctrl`+`Z` (отменить действие); `Ctrl`+`Shift`+`Z` (повторить отмененное действие, если случайно нажали `Ctrl`+`Z`).
3. `Ctrl`+`Alt` — вставка буфера обмена по буквам. Полезно для обхода антивставочных скриптов на сайтах.

### И. Голосовой ввод

Активация голосового ввода — одновременное нажатие двух соседних кнопок (порядок не важен):

| Устройство        | Сочетание                     |
| ----------------- | ----------------------------- |
| Key1/Key2         | `Ctrl`+`Sym` или `Sym`+`Ctrl` |
| Titan Pocket/Slim | `Fn`+`Alt` или `Alt`+`Fn`     |

После выхода из голосового ввода курсор автоматически возвращается в текстовое поле.

### К. Прочее

#### Режим "прозрачности"

Находясь в режиме просмотра (не в режиме ввода текста), клавиатура не обрабатывает нажатия букв (кроме некоторых мета-кнопок) и отправляет их в приложения как есть. Это важно для некоторых приложений, например для игр, чтобы срабатывали зажатия кнопок как многократные повторения (например, чтобы бежать вперед и не нажимать кнопку многократно).

Чтобы этот режим не мешал пользователям, привыкшим вводить буквы для открытия поиска, предусмотрен механизм поисковых плагинов (см. ниже).

#### Свайп-панель

* По этой панели можно делать свайпы, чтобы перемещать курсор.
* Можно нажимать на стрелки слева и справа, чтобы перемещать курсор по одному символу.
* Удерживание на наэкранной NAV-панели или свайп-панели делает повтор действия.

1. Свайп-панель включается из меню настроек (Настройка 8). После переключения клавиатуру надо перезапустить через `Alt`+`Enter`.
2. `Shift`+`Ctrl` включает нижнюю свайп-панель с флажком.
3. Настройка 14 управляет показом NAV-pad при однократном нажатии (удержании) `Sym`.

#### Поисковые плагины

> Поисковый плагин -- это когда при входе в приложение начинаешь набирать на аппаратной клавиатуре и кнопка "Поиск" нажимается автоматически.

1. В приложениях **Blackberry Contacts и Phone (Dialer)** можно сразу после входа, не нажимая "лупу", начать набирать на кириллице -- будет поиск.
2. В **Telegram** если начать вводить текст в основном окне, будет поиск по чатам.
3. Можно добавлять поисковые плагины ([специальный раздел](/doc/ru/advanced.md)); например, уже добавлен плагин для ExDialer.
4. К встроенным плагинам добавлены: Yandex (Maps, Навигатор), Blackberry (Settings, HUB, Notes, Calendar).
5. Поисковый плагин активируется на `Ctrl`+`A`/`C`/`X`/`V`, а также на `Del` и `Space`. Например, вы скопировали адрес, заходите в Яндекс.Карты и, не нажимая поиск, нажимаете `Ctrl`+`V` -- поиск откроется сам и туда вставится адрес из буфера обмена.
6. **Кликер-плагины** работают аналогично поисковым плагинам, но кликают не в поиск, а в текстовое поле ввода. Например, при входе в диалог мессенджера и начале набора текста кликер-плагин автоматически фокусирует поле ввода сообщения. Встроенные кликер-плагины: 4PDA, Avito, Kate и другие.

#### ENSURE\_ENTERED\_TEXT

В режиме ввода текста, чтобы выйти из приложения (`Back`, `Home`), если введен какой-то текст, надо нажать дважды. Если текст не введен или курсор не находится в поле ввода, то достаточно одного нажатия. Это важно, так как иногда введенный текст теряется из-за случайного нажатия (особенно в браузерных полях ввода, где `Back` обнуляет форму). Для отключения этого режима используйте Настройку 12.

### Л. Работа со звонками

> Для работы функций звонков должна быть включена Настройка 6.

1. **Снятие трубки** -- полезно для Key1 (в Key2 есть аналогичная функция из коробки). При поступлении звонка, если курсор не в текстовом поле ввода, двойное нажатие `Space` поднимет трубку.
2. **Положить трубку** -- в режиме разговора или входящего звонка, если курсор не в поле ввода, двойное нажатие `Sym` положит трубку.

### Благодарности

* Основатель: Артем Твердохлеб aka l3n1n-ua (UA)
* Соавтор: krab-ubica (RUS)
* Соавтор: Henry2005 aka CapitanNemo (BY)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://k12kb.gitbook.io/doc/ru/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
