yurikhan: (Default)

Окей, оно готово. За этот отпуск я сделал себе клавиатуру.

Клавиши — Matias Quiet Click. Реально стучат тише, а тактильный фидбек ярче, чем у Cherry MX Brown.

Корпус конструкции «бутерброд»: дно — нержавеющая сталь 1 мм, стенки — оргстекло 10 мм, монтажная пластина — снова нержавеющая сталь 1 мм, сверху рамка опять из оргстекла.

Электроника собрана методом бесплатного монтажа (то есть без печатной платы).

Подставки под ладони — от клавиатуры Matias Ergo Pro. Мягкие, гелевые, прикольные.

Внутри — микроконтроллер Freaduino Micro (аналог Arduino Micro), на чипе Atmel ATMega32U4. Его пинов ввода-вывода как раз хватает на матрицу из 12 полурядов по 8 клавиш и на три светодиода.

Прошивка — TMK Keyboard Firmware by Jun «hasu» Wako. Скомпилировалась, прошилась и заработала буквально с полпинка.

Раскладка по мотивам Truly Ergonomic и Keyboardio. Примерная логическая раскладка тут.

Потратил на всё это около 215 долларов США, вместе со всеми пересылками, лазерной резкой прототипа и деталей корпуса. То есть сравнимо со стоимостью массово производимых клавиатур такого класса. И ещё осталось полкоробки клавиш на второй экземпляр.

Со временем выложу все исходники как open source hardware.

yurikhan: (Default)

Тестируем ранний прототип.

yurikhan: (Default)

Нужно похакать XKB, чтобы символы ~!@#$%|QWFPGARSTDZXCVB набирались только с правым шифтом, а ^&*()+JLUY:{}HNEIOKM<>? — только с правымлевым. А то замечаю за собой вредную привычку нажимать преимущественно левый Shift.

yurikhan: (Default)

За пару недель по вечерам и две недели отпуска:

  • вспомнил детство, восьмибитные игрушки процессоры;
  • дизассемблировал/декомпилировал прошивку своей клавиатуры;
  • нашёл в ней недокументированную фичу (программируемые макросы) и баг в её реализации;
  • поверхностно познакомился со спецификациями USB и HID;
  • переделал обработку медиаклавиш, Num Lock’а и клавиши Fn на схему, более подходящую для кастомизации раскладок;
  • написал веб-приложение для кастомизации;
  • собрал, прошил и протестировал;
  • выложил всё на GitHub.

По мере прогресса описывал свои находки на форуме GeekHack (тут и далее в теме), в результате чего мне (в личку) написали разработчики Truly Ergonomic и предложили для них портировать прошивку ErgoDox (с Teensy на китайскую проприетарщину Megawin). (Я не взялся, под предлогом того, что прошивка ErgoDox по своей природе предполагает, что пользователь будет её дорабатывать, перекомпилировать и прошивать, а у них прошивающая программа только для Windows, что дискриминирует пользователей остальных систем. Но, кажется, они удовлетворятся уже сделанным.)

HTML+CSS+Javascript отлично подошли для написания конфигуратора. JSFiddle — отличная штука. Прошивать USB-устройства оказалось вполне возможно из Windows, работающей внутри VirtualBox’а — полной версии из оракловских репозиториев, с поддержкой USB.

yurikhan: (Default)

Примерно с год назад я решил наконец выучиться слепому набору. Естественно, встал вопрос раскладки. Мнения Интернета на этот счёт разделились. Одни говорят, что QWERTY стандарт де-факто и нечего раскачивать лодку. Другие настойчиво советуют Дворака — типа, спроектировано специально с учётом минимизации проходимого расстояния. И третьи указывают на Colemak как на возможный компромисс — небольшие изменения относительно QWERTY, дающие заметный эффект, хотя и меньший, чем Дворак.

QWERTY:

~   !   @   #   $   %   ^   &   *   (   )   _   +
`   1   2   3   4   5   6   7   8   9   0   -   =
      Q   W   E   R   T   Y   U   I   O   P   {   }
                                              [   ]
       A   S   D   F   G   H   J   K   L   :   "   |
                                           ;   '   \
         Z   X   C   V   B   N   M   <   >   ?
                                     ,   .   /

Programmer Dvorak:

~   %   7   5   3   1   9   0   2   4   6   8   `
$   &   [   {   }   (   =   *   )   +   ]   !   #
      :   <   >   P   Y   F   G   C   R   L   ?   ^
      ;   ,   .                               /   @
       A   O   E   U   I   D   H   T   N   S   _   |
                                               -   \
         "   Q   J   K   X   B   M   W   V   Z
         '

Colemak:

~   !   @   #   $   %   ^   &   *   (   )   _   +
`   1   2   3   4   5   6   7   8   9   0   -   =
      Q   W   F   P   G   J   L   U   Y   :   {   }
                                          ;   [   ]
       A   R   S   T   D   H   N   E   I   O   "   |
                                               '   \
         Z   X   C   V   B   K   M   <   >   ?
                                     ,   .   /

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

Какие выводы: Вероятно, раскладка Дворака действительно минимизирует какой-то функционал при наборе текстов на английском языке. Однако есть проблема: работа программиста включает не только и не столько набор на английском языке, но и набор команд шелла, идентификаторов стандартной библиотеки и т.п. Вот с шеллом всё плохо. Особенно с командой ls -l (правый мизинец такой весь FFFFUUUUUUUUU). И ещё с пространством имён C++ std. Очень трудно учится цифровой ряд, этому также не способствует то, что в каждой вариации раскладки он разный. И, наконец, в Двораке шорткаты Ctrl+ZXCV разбросаны по всей клавиатуре.

Поэтому в итоге я остановился на Colemak. Там ZXCV на своём месте и правый мизинец не перегружен.

Но это всё латиница. Кириллицу же я оставил на потом и занялся ей вплотную только в конце года, когда мне привезли купленные по предзаказу клавиатуры Truly Ergonomic, модель без маркировки клавиш. (Основные проектные решения, которые меня привлекли: (1) полностью симметричный дизайн, (2) отсутствие горизонтального сдвига рядов на [1/2, 1/4, 1/2] клавиши друг относительно друга.) Ясно, что на клаве без маркировки надо набирать вслепую; неясно, в какой раскладке.

Откуда взялся сдвиг рядов на компьютерной клавиатуре? Очевидно, с пишущей машинки. А откуда он на машинке? Там он был необходим, чтобы рычажки, идущие от клавиш к молоточкам литер, физически не пересекались в пространстве. Время машинок прошло и сдвиг уже ничем конструктивно не обусловлен, так какого же он остаётся на подавляющем большинстве моделей компьютерных клавиатур, заставляя нас крючить руки?

Среди существующих раскладок выбор невелик. Есть ЙЦУКЕН, о котором чуть дальше. Есть фонетическая, основанная на QWERTY — её брать не имеет смысла вообще, поскольку она костыль для тех, кто вообще не владеет слепой печатью и вынужден смотреть на клавиши, отмаркированные только латиницей. Ну и можно что-нибудь кастомное сочинить.

Что не так с ЙЦУКЕН? Казалось бы, некоторые называют её чуть ли не русским аналогом Дворака. А вот и нет. Если посчитать аккуратно, то получается, что в ЙЦУКЕНе 65% нажатий букв приходятся на указательные пальцы. О какой вообще скорости и о каком десятипальцевом наборе может идти речь?

Разочаровавшись в стандартных раскладках, попробовал сделать фонетическую на основе Colemak, поскольку замечал за собой позывы набирать ЕИО соответственно средним/безымянным/мизинцем правой руки в основной позиции. Ну что я могу сказать, эксперимент не удался — биграммы русского языка существенно другие, временами приходится вводить две буквы подряд одним пальцем.

И тут внезапно лентой приносит пост, где [personal profile] alexkuklin жалуется на то, что на болгарской клавиатуре кириллица размещена так, что каждый случайный взгляд вводит в ступор.

)   !   ?   +   "   %   =   :   /   —   №   $   €
(   1   2   3   4   5   6   7   8   9   0   -   .
      Ы   У   Е   И   Ш   Щ   К   С   Д   З   Ц   §
      ,                                           ;
       Ь   Я   А   О   Ж   Г   Т   Н   В   М   Ч   ”
                                                   „
         Ю   Й   Ъ   Э   Ф   Х   П   Р   Л   Б

Как вам нравится клавиатура, на которой практически написано «уе*ище»? Я вот с первого взгляда подумал, что у неё должны быть очень неплохие показатели по чередованию рук и достаточно равномерное распределение нагрузки по пальцам. Этого уже было достаточно, чтобы пробовать.

Испытания показали, что раскладку цифрового ряда я лучше оставлю от русской. Тогда у меня освобождается клавиша из-под точки с запятой. И типографские кавычки я лучше загоню в AltGr. Зато я бы предпочёл отдельные клавиши для Ё и Ы. И ещё в русском языке несколько другое распределение частот букв, поэтому имеют смысл небольшие перестановки редких букв:

  • Ъ в болгарском языке — одна из часто используемых гласных. Да у них даже Болгария пишется через Ъ. В русском языке — самая редкая буква. Жирно будет ей средний левый палец в нижнем ряду, лучше поставим туда Ы. А в освободившийся верхний регистр запятой отличнейше встанет точка. (См. также Лебедева о трагедии запятой.)
  • Ч и Ц в русском языке встречаются чаще, чем Ш и Щ. ЦЧ в центр верхнего ряда, ШЩ на периферию.
  • Буква Э пусть уступит место более частой Ё.
  • Ну и конструктивные особенности Truly Ergonomic: две из клавиш правой части во имя симметрии уезжают влево, на то место, где обычно Tab. Пусть там будут Э и Ъ.
    )   !   "   №   ;   %     :   ?   *   (   )   _   +
    (   1   2   3   4   5     6   7   8   9   0   -   =
Ъ   Э   .   У   Е   И   Ц     Ч   К   С   Д   З   Ш   Щ
        ,
        Ь   Я   А   О   Ж     Г   Т   Н   В   М

        Ю   Й   Ы   Ё   Ф     Х   П   Р   Л   Б

Вот эту раскладку теперь предстоит прошить в пальцы. Впрочем, уже со шпаргалкой скорость не сильно отличается от той, которая была с ЙЦУКЕН и подглядыванием на клавиши.

Profile

yurikhan: (Default)
Yuri Khan

August 2018

S M T W T F S
   1234
567891011
12131415161718
19202122232425
26 2728293031 

Links

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated 2025-06-06 22:56
Powered by Dreamwidth Studios