Хотелось бы надеяться, что я придумал велосипед, ибо идея до боли проста. По сути, нормализация старых-добрых нумпада и полу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