Перейти к содержимому

Раскладка для биологов

Длинный и не самый захва­ты­ва­ющий рассказ о том, как полу­чи­лась Раскладка.

Предисловие

Одним январ­ским вечером я сгорел с того, что снова копирую грече­ские буквы для своих биоло­ги­че­ских текстов и начал фанта­зи­ро­вать о том, как бы моди­фи­ци­ровал раскладку Бирмана под свои нужды, будь у меня возмож­но­сть.

Заскрин­шотив обои своего рабо­чего стола, на которых был постер бирма­нов­ской раскладки, я начал мале­вать. Да мне нужны-­то были всего-­то подстрочные и надстрочные цифры, немного грече­ского и поддержка 4 языков — вы знаете, коро­тенький квест по касто­ми­зации на пару вече­ров.

Жёлтый — символы, которые я хотел оставить; фиолетовый — то, от чего собирался избавиться; красный — минимум значков для поддержки языков.

Другим вечером я погуг­лил, как вообще делают кастомные раскладки под Винду? Оказа­лось, go-to решение это исполь­зо­вать Microsoft Keyboard Layout Creator — чудом поддер­жи­ва­емую до наших времён программу с дизайном Windows XP.

Тут тяжело разгля­деть, но первым делом я моди­фи­ци­ровал раскладку Бирмана, заполнив цифровой ряд в Альт и Альт-­Шифт реги­страх индек­сами. Моди­фи­ци­ро­вал, уста­новил и забил  — серьёзно думать над расста­новкой остальных символов у меня в тот день не было сил.


Через месяц я случайно наткнулся на исход­ники постера раскладки Бирмана для Smashing Magazine. 2009 год! Смот­реть и пере­став­лять символы в Иллю­стра­торе было в 500 раз прият­нее, чем в MSKLC — и всю работу по дизайну моей раскладки я провёл там.

Вокруг этого же скелета с разрешения Ильи Бирмана потом появилась первая версия постера.

v1

Европейские языки

Меня угораз­дило прочи­тать комменты к той статье на Smashing Mag — каждый третий чита­тель бухтел про то, что раскладка слишком зато­чена на амери­канцев и других поль­зо­ва­телей en-US раскладки. Мол, где наши ÆŒØ и прикольные акцен­тики, импе­рец?

Окей! Меня пере­кли­нило на том, чтобы засу­нуть в раскладку поддержку как можно боль­шего числа попу­лярных евро­пей­ских языков. Это оказа­лось очень запарным квестом, потому что любая альтер­на­тивная буква в двух ипостасях вроде Ł и ł зани­мала собой целую клавишу.

Alphabets, Letters and Diacritics in European Languages (As They Appear in Geography) by Vigleik Leira

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

В пике своей муль­ти­я­зыч­ности раскладка поддер­жи­вала фран­цуз­ский (со всеми æœ и кавычками), немецкий (без ново­мод­ного пропис­ного эсцета), испан­ский и порту­галь­ский, итальян­ский, скан­ди­нав­ские языки (с финским, без исланд­ского, саам­ского и фарерского), чешский и поль­ский, голланд­ский, ирланд­ский, албан­ский, эстон­ский, румын­ский и Бог знает какие ещё.

Оранжевым помечена диакритика. Запомните шрифт!

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

Обош­лось тем, что я уменьшил размеры шрифта, пере­красил и очень сильно забледнил всю языковую братию.

Polish Diacritics: how to?

В какой-­то момент я заме­тил, что в поль­ском языке исполь­зу­ется огонэк вместо цедили и решил отка­заться от него окон­ча­тельно, наконец осво­бодив клавишу Ш под штрихи, а место над ÷ под дробную черту ⁄ — вместе с цифро­ин­дек­сами этот символ даёт наби­рать ¹⁄₂ аб­со­лютно ⁷⁄₈ любые ¹³⁄₃₇ дроби ⁹⁹⁄₁₀₀.

Восточноевропейские языки

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

Я думал над всякими прико­лами с диакри­ти­кой: чтобы карон ˇ в комби­нации с Г возвращал Ґ, Ii встало дублем на букву I вместо штрихов и комби­ни­ро­ва­лось в Ïï умля­утом ¨, и так далее. Даже, о ужас!, хотел стоящий на У бреве ̆ заста­вить вести себя как кратку для полу­чения Ўў, хотя это вообще разные знаки!

Стр. 275 второго издания «Книги про буквы от Аа до Яя»» Юрия Гордона

Статистика языка - kvant1004.pdf

Были и грешные мысли отка­заться от каких-­то не самых попу­лярных букв:

Но в итоге я сдался и просто сделал неко­торые клавиши разными в русской и англий­ской раскладке. Ї встало на Й, Ў на W, Є на Э, а Ґ и І не смогли выбить себе места на Г и I потому, что там уже стояли более нужные знаки. Даже место под мой любимый меджусловјанскы језык нашлось.

Но теперь появи­лась проблема — как пока­зать то, что раскладка ведёт себя по разному на разных языках? Самым простым реше­нием было бы сделать два постера и поме­тить «неста­биль­ные» клавиши другим цветом вместо того, чтобы красить им все «язы­ко­вые».

Тут я наконец разобрался с цветами и сменил шрифт на свежевышедший Интер четвёртой версии. Ещё можно заметить то, что языковые символы бледноваты.

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


Очень быстро всё это чудо было успо­коено — сначала квад­ратный Рубик Моно был заменён просто моно­ши­ринным шриф­том, потом была убита и идея с точками вместо клавиш.

Пустующее место около ¡ вскоре будет забито прикольным вопроцательным знаком. Ну разве он не чудо‽

Следу­ющие два года мне аука­лось то, что я поставил Іі и Єє на место кавычек-­ІлапокЄ и засунул апостроф куда-­то на край строки.

Клавиша B и интерпункт

В один момент на место клавиши B претен­до­вали beta, bullet и похожий на B эсцет в двух ипостасях — и два из четырёх должны были уйти или спря­таться под какую-­нибудь чужую для них клавишу.

Окон­ча­тельно отка­зы­ваться от немец­кого я не хотел и оставил только строчной эсцет ß — один чёрт заглавный ẞ не имеет ника­кого смысла и должен быть заменён на SS. Эсцет это лига­тура с длинной s (ſ), а заглавной длинной s не суще­ствует.

Кстати, такой фаво­ри­тизм или непри­ятие отдельных грам­ма­ти­че­ских правил не огра­ни­чи­ва­лось одной буквой — я наглейшим образом сделал раскладку более удобной для тех, кто придер­жи­ва­ется англий­ских правил напи­сания кавычек — то бишь ‘оди­нар­ные’ лапки первого порядка, “двой­ные” второго. В этом плане раскладка Бирмана много удобнее — все кавычки в ней можно набрать, вообще не используя Альт+­Шифт.

От буллита, который в раскладке Бирмана подписан как mark для мнемо­ники, я в итоге тоже отка­зался — доста­точно было прочи­тать пост ex-­дизайнера Медиума Марцина Вишори для того, чтобы окон­ча­тельно забить на желания каких-­нибудь отдельных поль­зо­ва­те­лей.

My favourite glyphs

Собственно, life-­changing цитата:

• bullet point that I don’t really use. Get out of here, you stupid fat bullet point. No one invited you.

Теперь поль­зо­ва­тели Раскладки обязаны поль­зо­ваться интерпунктом на Альт+X, а на клавише B прекрасно ужива­ются бета и строчный эсцет.

Гречица

С грече­ским сначала всё было просто: берём самые попу­лярные в науке буквы, ставим их на клавиши, с которых начи­на­ется их англий­ское название (alpha на A), на шифт вешаем заглавные версии вроде Σ, Λ и Δ. Если первая буква названия уже была занята, как в случае phi, psi и pi, на клавишу стави­лась самая попу­ляр­ная, а остальные шли лесом — без исклю­че­ний.

Потом мне захо­те­лось знак пара­графа § и он встал на Альт+­Шифт+S вместо заглавной сигмы — для мате­ма­ти­че­ских формул с Σ все равно нужно исполь­зо­вать полно­ценный Латех.

О штрихах и истории кавычек-лапкок

Потом крутая прописная лямбда Λ усту­пила место парочке не менее крутых ‹одинарных ёлочек›. Можно сказать, что дедушка уступил место правнукам — потому что все кавычки произошли от значка >, назван­ного анти­лямбдой потому, что он выглядит как повер­нутая Λ.

Дельта Δ чуть не исчезла, уступая место degree sign °, но потом я вспом­нил, что в физхимии Δ и ° ходят парочкой и разлу­чать их никак нельзя — и знак gradusa уехал на G.

Когда Раскладка уже была почти готова, я отвлёкся на экзамен по моле­ку­лярной биологии и пожа­лел, что из-за своих глупых прин­ципов я не могу напе­ча­тать знак псев­до­ури­дина ψ — мол на P psi быть не может из-за pi, а на других клавишах полу­чится исклю­че­ние.

Чутка обду­мав, я забил на этот принцип и засунул ψ на Y, а φ на F — разбло­ки­ровав воспо­ми­нание о том, как в пятом классе учитель­ница мате­ма­тики попро­сила напи­сать меня на доске φ, ψχ! и только потом пояс­нила, что я такое напи­сал.

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

Постер

Для того, чтобы распро­стра­нять Раскладку среди далёких от типо­гра­фики биоло­гов, мне нужен был какой-­никакой постер, который бы пояснял бы, чем символы Раскладки круче тех, что уже есть на клави­а­туре.

Об альтернативе Таймз Нью Роман

Для этого мне нужен был шрифт, которым бы я набирал примеры — и конечно же, это должен был быть Таймз Нью Роман или его аналоги. Эдакий what you see is what you get (in your paper). Главным сопер­ником TNR был мой любимый Stix 2 Text — и в итоге я выбрал его, но исполь­зовал отдельные символы вроде цифро­ин­дексов из TNR для того, чтобы не обма­ны­вать чита­теля.

В остальном ничего инте­рес­ного — мне просто хоте­лось сделать такой постер, который я бы смог пове­сить под постером раскладки Бирмана. Отсюда и гранд-­цитата, над выду­мы­ва­нием которой я долго ломал голову, и большое название раскладки внизу. Илья Бирман был не против такой само­де­я­тель­но­сти, так что совесть моя была чиста.

Дальше оста­лось только сделать сайт (на Ворд­прессе, господи) и подклю­чить админ-­ресурс в виде долж­ности главреда своего студ­со­вета — и за 20 минут до вручения моего диплома Раскладка для биологов увидела свет.


v1.1

И снова постер

Я очень люблю, когда то, что я делаю, обре­тает физи­че­скую форму — поэтому когда орга­ни­за­торы Биоуни­вер­сиады МГУ, для которой я дизайнил всякое, разда­вали постеры с моей раскладкой участ­ни­кам, не смог не стащить один себе домой.

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

Сначала я разо­брался с крупным планом, сменив сетку из квад­ра­тиков на нечто более скево­морф­ное:

Посмотрев на эти трапе­ции, я вспомнил о шрифте, в котором все буквы заужа­лись кверху — Царге от Болдиталика. Посмотрел и поду­мал: мне нужен шрифт, буквы кото­рого займут собой всё простран­ство «тра­пеции клави­ши», примерно как буква М в Царге. Но не Царга — неко­торые буквы я видил другими, а моди­фи­кации чужих шрифтов это всегда скользкая дорожка.

Поэтому я решил сделать шрифт исклю­чи­тельно под новый постер под рабочим назва­нием KCap/Trapezoid. В первую очередь хоте­лось фана, поэтому я заранее запретил себе любую дотош­ность — иначе вышло бы как с Михеем и его годовой разра­бот­кой. Отсут­ствие элегант­ности я хотел ском­пен­си­ро­вать Гара­моном на переднем плане — свое­об­разный ремейк Краса­вицы и Чудо­вища.

И в этот раз я забил на исходник старого постера и пере­вер­стал всё с нуля в Фигме. С такими боль­шими буквами у клави­а­туры на постере наконец появился «средний план» — что-то для зацепа глаз на уровне метра от плаката.

Минорные апдейты

За два года с появ­ления первой версии у меня так и не нако­пи­лось весо­мого списка изме­не­ний.

Об интерпункте

Ин­тер­пунк­т: В какой-­то момент я заме­тил, что интер­пункт не экви­ва­лентен знаку умно­жения в виде точки. Меня это парило исклю­чи­тельно из-за конси­стент­ности — раз на Z нахо­дятся два знака деле­ния, на Х должно быть два знака умно­же­ния, а не × и какой-­то фран­цуз­ский гендергэп. Подумав ещё, я забил — приме­нений у интер­пункта явно больше, чем у multi­plic­a­tion dot.

Диа­кри­ти­че­ские пары: для диакри­тики в раскладке есть отдельный блок с прави­лами того, когда какой символ нужно подстав­лять. В русской раскладке не поддер­жи­ва­лась часть странных юнико­дов­ских символов вроде Ӝ, поэтому я пошёл и прописал их все. Ручками — только бы лишний раз не трогать Keyboard Layout Creator.

Значок ради­ка­ла˙ меня бесил лишь тем, что на самом деле это какая-­то китай­ская диакри­тика. Оставлен из уважения к редокс-­биологии.

Язы­ки: вот что действи­тельно меня бесило, так это i и є на месте англий­ских кавы­чек. Это как когда ты нажи­маешь Энтер, чтобы отпра­вить сооб­ще­ние, случайно заде­ваешь э и чувствуешь себя как гопник. Брр.

Но выки­ды­вать Іі и Єє я совсем не хотел, поэтому поле­тели головы у межсла­вян­ской Jj, интер­ро­банга ‽, дубля трубы | и ещё какой-­то мелочи — а Єє вместе с ¿¡ были сосланы на край клави­а­туры.

Порт на МакОС

Когда я релизил первую версию раскладки, я обещался выпу­стить версию для Мака «в течение пары меся­цев, если всё сложит­ся». Так вот, ничего не сложи­лось!

Для того, чтобы с удоб­ством делать раскладки для Мака, нужна программа Ukelele — и, разу­ме­ется, она тоже выглядит как нечто из нуле­вых.

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

Я в целом не хотел ничего делать руками — по­этому спустя год я таки наткнулся на самое low effort реше­ние: утилиту Keyboard Layout Files Creator, которая конвер­ти­ро­вала раскла­дочные файлы между Виндой, МакОС и Линук­сом.

Одна загводка: забро­шенная уже как 4 года утилита всё никак не могла сделать рабочую раскладку под самую неста­бильную и вечно меня­ю­щуюся опера­ци­онную систему из всех — МакОС. Поэтому мне приш­лось разво­ро­шить .bundle раскладки Бирмана и аугмен­ти­ро­вать в неё сгене­ри­ро­ванные klfc куски keylayout файла.

Справа то, что сгенерил klfc, справа раскладка Бирмана.

И это, кто бы мог поду­мать, не срабо­тало! Раскладка банально не появ­ля­лась в настройках и я понятия не имел, где искать ошибку. В расстро­енных чувствах я пошёл на форум Ukelele Users, где Джон Брауни, автор Ukelele, рассказал мне о klcom­piler: утилите, которая прове­ряет keylayout-­файлы на валид­ность и выплё­вы­вает чело­ве­ко­чи­та­емые ошибки в стиле «More than one key with keycode 48». Факт суще­ство­вания этой утилиты это настолько эзоте­ричное знание, что теперь при попытке загуг­лить «klcompiler» первой реле­вантной ссылкой выска­ки­вает ответ Джона мне.

Дальше — проще: я чинил ошибку, которую мне выплё­вывал klcom­piler, и отправлял вели­чай­шему альфа-­тестеру всех времён Дарье для того, чтобы она прогнала новую версию через klcom­piler и отпра­вила мне новую ошибку в ответ. И так до побед­ного экрана с кучей вопро­си­тельных знаков.

Нет явного сообщения об ошибке — значит, нет ошибок. Очевидно же.

Сайд-­квестом была долбёжка с икон­ками: мне нужен был рабочий онлайн-­конвертер в icns (и он нашёлся), чтобы иконка адап­ти­ви­лась под светлую и тёмную темы (открытый Никитой Проко­повым флаг TISIconIsTemplate) и чтобы она хорошо выгля­дела в боль­шин­стве подкур­сорных бабблов (для этого исходный файл приш­лось пере­кра­сить в белый).

Я ненавижу Эпл.

And the rest is history.