LINUX.ORG.RU

ngram-keylogger: написал велосипед для анализа эффективности моего кнопкодавства

 , , ,


3

2

Пришли мне Dumang DK6 Mini — две чумовые полу-клавиатуры, на которых можно размещать клавиши произвольным образом. Kinesis мой не заменит, ясное дело, но в жанре прототипирования плоских клав равных ей нет. А мне бы что-нибудь для планшетов-ноутов было бы интересно собрать.

Решил попробовать сделать какую-нибудь раскладку с аккордами на популярные буквокомбинации и слова и понял, что понятия не имею, что я вообще жму и в комбинации с чем. Одно ясно — статистика, набранная по худлиту, мне точно не подойдет, я ж не наборщик, я в шелле команды правлю да в виме бултыхаюсь. Кажется.

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

Наиболее удививший меня пример (в README есть еще):

Хотя бы буквы у меня соответствуют английской частотности (ETAOIN…)?

# ngram-keylogger query --limit=5 keypresses '[a-z]'
4.095611% | t
4.042651% | e
3.964975% | i
3.424778% | o
3.216467% | n

OK, сойдет. А заглавные?

# ngram-keylogger query --limit=5 keypresses '[A-Z]'
1.062741% | S
0.430745% | L
0.353070% | C
0.338947% | A
0.314232% | T

Че? Как так вышло, что каждое сотое совершаемое мной действие — набор заглавной S?

Так, после чего я ее печатаю?

# ngram-keylogger query --limit=5 bigrams '*' 'S' --renormalize
40.199336% | S     | S
18.272425% | L     | S
 7.641196% | space | S
 6.976744% | o     | S
 5.980066% | ...   | S

Зашибись, спамлю еще S, или печатаю LS или oS. Супер-естественно… S после паузы и пробел + S еще куда ни шло.

Итак, где я долблю по S?

# ngram-keylogger query --limit 3 --by-context bigrams 'S' 'S' --renormalize
90.082645% | term:vi:magit:nrm | S | S
 4.958678% | term:vi:magit:ins | S | S
 3.305785% | browser           | S | S

Ффух, и правда. S это stage hunk в vimagit, и я реально много его жму, когда просматриваю, что собрался коммитить. Дело закрыто.

Другие находки: самая популярная с большим отрывом триграмма nnn, неприлично малое отношение точек с запятой к двоеточиям, популярность git, непопулярность h и нижнего подчеркивания. И это только начало, а сколько еще открытий чудных…

Как вы составляете/оптимизируете раскладки? Есть советы, истории успеха? Xah Lee уже читал. Особенно интересно послушать пользователей chording-раскладок и прочих стенографистов-программистов; за пользователей QWERTY не переживаю — что им будет, они же в танке.

★★★★★

Доска должна быть доской. Я максимум на пыхтоне накостылял зажигание светиков на всяких капсов/скрол/нам локах. Аж эти десять строчек вспомнил https://www.dropbox.com/s/p1700cuydxl69y6/img_20210518_051841_867.jpg?dl=0

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

сижу на colemak, хороший, годный лейаут, за несколько месяцев набилось 65 wpm само собой. О модификафии и мысли не было - печатается комфортнее и эыфективнее, если сравнивать с qwerty

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

Я тоже сижу Colemak, но расположение букв — это только пол-дела.

t184256 ★★★★★
() автор топика

Код, конечно, так себе. Но если поставленную задачу решил, то лайк.

qaqa ★★
()

vimagit

Спасибо за наводку, интересная штука.

pawnhearts ★★★★★
()

Ничё непонял :D

# ngram-keylogger query --limit=5 keypresses '[a-z]'
4.095611% | p
4.042651% | o
3.964975% | r
3.424778% | n
3.216467% | o
3.964975% | s
3.424778% | e
3.216467% | x
3.964975% | b
3.424778% | d
3.216467% | s
3.216467% | m
anonymous
()

С разморозкой! ☺

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