Пятикнопочная Клавиатура

Графические интерфейсы — вещь удобная, но иногда их недостаточно.

Создание удобного интерфейса — это искусство и большая трата ресурсов.

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

Интерфейс командной строки позволяет легко и удобно создавать и расширять функциональные возможности, не беспокоясь о пользователе.

Если вам нужно что-то настроить, а нужного пункта нет в меню, то в конфиг можно попасть вручную.

Если у вас нет доступа к конфигу, вам придется мучиться.

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

Мысли о клавиатуре во Flipper Zero вызвал вялую дискуссию по поводу оптимизации методов ввода.

Я тоже люблю велосипеды, поэтому вот пара диких идей.



Прокрутка с умной сортировкой

Начнем с простой прокрутки символов.

Есть текст для набора, навигация по тексту - стрелки влево/вправо.

Чтобы выбрать символ, используйте стрелки вверх/вниз для прокрутки линейного списка всех символов.

Это довольно неудобно, давайте внесем пару улучшений.

На основе введенного пользователем текста мы будем собирать статистику по n-граммам символов.

В простейшем случае мы берем предыдущие 4 символа и сортируем таблицу символов по частоте использования с этой тетраграммой.

Пользователь начинает прокручивать вниз и быстрее находит нужный символ.

При прокрутке вверх присутствует фиксированный набор служебных команд, таких как пробел, удаление предыдущего символа, переключение регистра и раскладки.

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

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

Пятикнопочная клавиатура



Троичная система

А что, если просто запомнить расположение нужных диапазонов символов в Юникоде? Вводим код символа, подтверждаем и вводим следующий.

У нас есть 5 кнопок.

Если использовать одну для подтверждения ввода, вторую для стирания последней цифры, то остается 3 кнопки для цифр.

Допустим, вверх – 0, вправо – 1, вниз – 2. Достаточно привыкнуть к троичной системе и выучить диапазоны необходимых кодов.

Удобство сомнительное, но привыкнуть к такому способу ввода гораздо проще, чем зубрить азбуку Морзе.

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



Пятикнопочная клавиатура



2D прокрутка

Разложим свиток на несколько рядов символов, отсортированных по частоте использования, чтобы манхэттенское расстояние от начальной точки до символа было тем больше, чем реже он используется.



Пятикнопочная клавиатура

Это оказывается намного удобнее, никакой подготовки не требуется.

Скромный, интуитивно понятный интерфейс, вполне подходящий для небольшого дисплея.

В кнопочных телефонах таким методом можно набирать всевозможные специальные символы.

Но уменьшив размер до одной строки, вы сможете реализовать это на очень маленьких экранах.



Пятикнопочная клавиатура

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

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

Еще можно придумать всякие коды Хаффмана, но это лишние усложнения плюс невозможность расширения; Азбука Морзе является примером этого.

Вот ссылка на демонстрационный код, использованный в сообщении.

Подключенная как библиотека Python, троичная функция опционально принимает строку для редактирования.

Чтобы выйти из режима навигации, нажмите стрелку вверх.

В режиме редактирования набирается троичный код символа (вверх – 0, вправо – 1, вниз – 2, влево – стереть последнюю цифру, Enter – подтвердить).

Для выхода нажмите Enter; функция вернет отредактированную строку.

В функции прокрутки все гораздо проще – стрелками выберите символ, подтвердите кнопкой Enter. В первой верхней строке: «Вставить табуляцию», «Shift», «Backspace», «Пробел», «Перевод строки», «Удалить» и «Caps Lock».

Теги: #Гаджеты #интерфейсы #Ненормальное программирование #клавиатура #qwerty #flipper Zero #flipper #ввод текста

Вместе с данным постом часто просматривают: