LINUX.ORG.RU
ФорумTalks

Быстрый ввод текста несколькими клавишами

 , , , ,


1

1

Хотелось бы надеяться, что я придумал велосипед, ибо идея до боли проста. По сути, нормализация старых-добрых нумпада и полуQWERTY — на каждый символ одинаковое количество нажатий. Интересует наличие подобных реализаций, в частности, виртуальных клав для ведройда либо чехлов. Набросал реализацию (jkl — ввод, выход по клавише ANI):

#define systemd system
#define pc putchar
#define h break
#define wayland case
void main(){int s,i=0;char p[3][3][3]={{{'a','b','c'},{'d','e','f'},{'g','h','i'}},{{'j','k','l'},{'m','n','o'},{'p','q','r'}},{{'s','t','u'},{'v','w','x'},{'y','z',8}}};char j[3];systemd("/bin/stty raw");for(;;){s=getchar()-'j';pc(8);pc(32);pc(8);if(s<0||s>2)h;else{j[i]=s;pc(8);switch(i){wayland 0:pc(p[s][0][0]);h;wayland 1:pc(p[j[0]][s][0]);h;wayland 2:pc(p[j[0]][j[1]][s]);pc(32);h;}if(i==2)i=0;else i++;}}systemd("/bin/stty cooked");}

ЛИЦЕНЗИЯ

1) Можна распространять код.

2) Можна компилировать код.

3) Можна пытаться понять код.

4) Нельзя модифицировать код в сторону повышения понятности.

5) Можна грабеть корованы.

6) Нельзя бить автора за этот код.

cast --multiple  Myau,  mittorn,  Lavos
★☆

Последнее исправление: Klymedy (всего исправлений: 1)

Лучше биграммную клаву запили. Клава будет большая, с тысячей кнопок, но надо расположить их так, чтобы слово можно было набрать без переноса руки. Тогда текст будет набираться «аккордами», которые тыкаются в разных частях клавы.

Sadler ★★★
()
Последнее исправление: Sadler (всего исправлений: 1)

Отсыпь, пожалуйста, а то водка как-то ва депрессняк уже вгоняет.

Hurenweibel ★★
()

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

amomymous ★★★
()
Ответ на: комментарий от amomymous

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

А одним большим пальцем, не глядя и без предиктивщины?

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от MiniRoboDancer

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

Sadler ★★★
()

http://www.exideas.com/ME/index.php

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

Жаль, что поделка насквозь проприетарная. Вероятно, могут засудить при попытке скопипастить принцип.

Myau ★★★★
()
Ответ на: комментарий от sehellion

Да, для сборки и запуска нужны установленные systemd, Wayland, PulseAudio, Google Chrome последней версии, Skype, Dropbox и лицензионная MSVS 2016.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от Myau

Про эту давно знаю, но столько зон для плоского тачскрина всё-таки многовато.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от MiniRoboDancer

У меня простым gcc собралось в статический бинарник. ЧЯДНТ? ЗЫ: В лицензии противоречие: компилятор препроцессирует код, а значит изменяет его в сторону повышения понятности.

mittorn ★★★★★
()
Последнее исправление: mittorn (всего исправлений: 1)
Ответ на: комментарий от mittorn

ЧЯДНТ?

Всё правильно, только тс-с-с-с!

компилятор препроцессирует код

Чё, прям любой? И вообще, в лицензии не указано, что компилировать нужно компилятором, компилировать можно и на бумажке, и в голове...

а значит изменяет его в сторону повышения понятности

Зачем? Вот как раз форматирование и сахар всякий может повырезать, чтобы комплировать проще было. А Lint делать — ни-ни.

MiniRoboDancer ★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.