Я давно зачитываюсь статьями про эксперименты авторов со своими рабочими местами: про кастомные кресла, клавиатуры, раскладки. Целый год мне очень хотелось улучшить своё рабочее пространство. Но я боялся даже начать думать об этом по существу, потому что все авторы рассказывали, как поиск удобства отнимал у них 4-5-значные суммы в долларах, долгие месяцы настройки и привыкания к новой реальности. Главным образом, эта статья ‒ про то, как я уменьшил своё рабочее место с 5 м² до 3 м², избавился от мозоли на запястье, боли в спине и шее, трудностей с набором текстов на русском, английском и немецком; и потратил на это 4 дня и ≈150 €! Но также мне хочется выразить мысль, что эргономика ‒ это не идеальный стол, кресло или клавиатура. Это, скорее, организация пространства так, чтобы в нём было комфортно во всех сценариях его использования. В этот раз я поменял: Стол ‒ я взял прикроватный столик для ноутбука. Расскажу, почему для меня решение оказалось оптимальным. А также собрал из говна и палок аккуратную подставку под монитор, до тех пор, пока не уговорю жабу купить кронштейн. Клавиатуру ‒ покажу на дешёвую эргономичную модель и поделюсь раскладкой для XKB, которая объединяет в себе русский, английский, немецкий и спецсимволы. А также укажу на тулзу для облегчения редактирования раскладки. Оконный менеджер ‒ переход на i3 оказался очень быстрым и лёгким, решил проблемы расположения окон, которые расстраивали меня годами. Расскажу, что я настроил для себя, и, надеюсь, это сэкономит вам несколько часов разборок в нескольких пакетах. Стол для музыкальной студии ‒ обширная тема для обсуждения. Большая часть решений ‒ кастомные, капитальные, и баснословно дорогие. В студиях звукозаписи на рабочее место режиссёра нередко ставят микшерные консоли с моторизированными фейдерами, чтобы легко управлять большим количеством дорожек одновременно.  Композиторские рабочие места строятся вокруг главной MIDI-клавиатуры. «Клавиши» действительно занимают бескомпромиссное центральное место на рабочем месте любого композитора или аранжировщика. Потому что без правильного контакта с клавишами нормально сыграть очень сложно. Мне, как пианисту, клавиши важны вдвойне, потому что больше половины моей работы ‒ виртуозные фортепианные партии. Проблема в том, что клавиши стоят ровно на том месте, где должна стоять компьютерная клавиатура. Каждый выбирает, как решить эту проблему. Можно убрать клавиатуру ниже на салазки. + в том, что клавиатура будет доступна по требованию, и не будет стоять между пузом и клавишами.- в том, что клавиатура тогда стоит ниже удобного положения, и долго работать на ней не получится Вариант Ханса Циммера: клавиши там, где должны быть, клавиатура за ними.+ Клавиатура стоит примерно на удобной высоте, возможно немного выше, клавишам ничего не мешает.- К клавиатуре с мышкой надо наклоняться. Долгая работа → боль в спине.  Обратный вариант ‒ клавиатура впереди, клавиши ‒ за ними.+ клавиатура и мышка в удобном положении: хорошо тем, кто много пользуется компьютером помимо работы.- Для удобного положения клавиш их надо утопить в стол, что удорожает конструкцию, для мышки места маловато, на клавишах играть можно, но не фортепианную классику. Последние полгода у меня было де-факто два рабочих места: для аранжировки и для всего остального. Когда аранжирую ‒ поворачиваю монитор с клавиатурой к клавишам, мучаюсь больной спиной, но играю с комфортом. Когда долго сижу с клавиатурой и мышкой ‒ сажусь с торца стола. Стол для моего стула высоковат, поэтому за полгода я посадил на обеих запястьях суровые мозоли На правой ‒ вообще ахтунг. Потом попробовал поставить клавиши слева вдоль стены. Но тоже было совсем неудобно. Сидел я и думал: «Вот, сидеть бы за клавишами, смотреть в монитор. Руку направо положил ‒ там мышка, налево ‒ клавиатура…». Изначальная мысль была ‒ купить пару тумбочек на колёсиках подешёвке, и заиметь раздельную клавиатуру без проводов. Но, оказалось, что раздельные клавиатуры без проводов стоят недёшево. Вспомнил статью про эргономичное кресло. Вариант автора показался чересчур дорогим. Погуглил AliExpress ‒ нагуглил обвесы для офисного кресла. Но с обвесами проблемы:  во-первых, всё ещё дорого, во-вторых, не понятно, насколько надёжно, в-третьих, намертво прибито к креслу, в-четвёртых, надо купить ещё и кресло. Прикольно. Пока сейчас гуглил ссылку на статью про кресло, а наткнулся на куда более полезную и созвучную тому, что сейчас использую я. В  итоге я набрёл, кажется, на идеальный для меня вариант: прикроватный столик для ноутбука с настраиваемым углом поворота и высотой. На амазоне продаются по цене от ~ 40€ до ~ 200€. Мой обошёлся в 50€. Самое главное ‒ этот столик не заставляет меня выбирать между клавиатурой и «клавишами»! Если мне нужна клавиатура ‒ я ставлю стол перед собой, и полноценно живу компьютерную жизнь: пишу статью, гамаю в доту, дизайню. Если нужны клавиши ‒ столик уезжает вбок, не стесняя движений за клавиатурой. Могу выбирать, насколько тесно я хочу с ним взаимодействовать: просто тапнуть на пробел, или пододвинуть поближе и что-то поредактировать ‒ тоже получается достаточно удобно! В целом ‒ ничего не мешает взять пару нот на клавишах, если я занимался до этого плотной редактурой: Кронштейн для микрофона ‒ приятная мелочь, которую я себе долго не позволял. А зря ‒ сколько раз мы, ещё дома, запинались о большой «журавль». Обошёлся в 15€. Параллельно со сборкой стола, мы решили поменяться спальнями с дочкой: у неё холодная комната с плохой батареей, и она постоянно кашляет. Разбирали кровать ‒ и обнаружили под матрасом сюрприз от предыдущих жильцов: поверх лаг лежали какие-то доски. Я сначала подумал ‒ для того, чтобы дыры в лагах залатать, но те были в отличном состоянии. Так что большая часть досок отправилась на балкон, а из четырёх я собрал на уголках узкий столик для монитора и всякой фигни. Этот столик решил ещё четыре проблемы: У жены появился свой стол в спальне, и мы теперь друг другу не мешаем. Кронштейн для микрофона не крепился к старому столу, в силу конструкции последнего. Монитор получался далековато, т.к. клавиши упирались в столешницу И стоял низковато, затекала шея. Доски были старые и подгнившие, поэтому придал столу устойчивость, прикрутив снизу ограничители для ноутбука, которые открутил со столика на колёсах. Мне всегда казалось, что Linux, это, в первую голову ‒ про удобство. Ведь по-настоящему удобные вещи обычно подогнаны специально под тебя. Был период, около года, когда мы семьёй жили в dual-boot: вся наша нормальная жизнь: фильмы, игры, хобби ‒ жили на Ubuntu. А вот для работы: музыкальной аранжировки, набора нот и т.п. приходилось перезагружаться в „окошки“. Окончательный переезд на Linux произошёл как раз из-за клавиатуры. В 2019-м я поехал работать в Китай, и три языка, включая pinyin на окошках уже стали для меня и Punto Switcher кошмаром.  Но, что интересно, на настройке ациклического переключения раскладок и подключения типографского слоя мои вопросы к клавиатуре закончились, и я к ней не возвращался, вплоть до последних дней. Сейчас, напротив, клавиатуру и раскладку я поменял в качестве логичного продолжения реорганизации рабочего места. Вообще, ещё с Китая у нас стояла дешёвенькая китайская Langtu с одной латиницей. Пару раз я порывался купить на неё наклейки, но оба раза ‒ неудачно. Меня отсутствие русских букв на клавиатуре особо не беспокоило, дочка тоже как-то пользовалась, а жена в итоге почти полностью переехала на телефон. Поскольку маячил переезд на беспроводные клавиши и мышь ‒ хотелось двинуться немного ближе к эргономике, чем это было на старой китайской Langtu, купленной, кажется, за смешные ~ 20元 (около 200₽). Купил, в итоге, беспроводной комплект Perix за 50€. Клавиатура не без недостатков: очень много пустого пространства под большие пальцы, и очень нагруженные безымянные и мизинцы.  Но модели с зонами под большие пальцы, вроде Iris ‒ уже заметно бьют по карману. Особенно, учитывая то, что я не был уверен, что мне вообще зайдёт сплит и смена раскладки. Но, в этом случае я как раз хочу  всех колеблющихся гиков успокоить: это действительно удобно, и почти не требует усилий для переезда. С одним «но» ‒ стоит всё-таки не полениться, и напечатать на клавишах раскладку ‒ это здорово помогает. Кстати, в варианте клавиатуры с немецкой раскладкой на одну клавишу больше, на которую я повесил знаки пунктуации. Ещё за 10€ можно докупить пин-пад, с которым я активно работаю: допустим в MuseScore или в Blender. Но пока переезд шёл под эгидой минимальных затрат 😉 Во многом, из-за необходимости обеспечить себе пин-пад, во многом из жажды отвлечься от текучки ‒ стал курить тему раскладок. Разумеется, по большей части натыкался на разные статьи про QMK и KMK, которые недоступны нищебродам со стандартными клавиатурами. Но, мало-помалу, начал подбираться и к конфигам XKB. XKB, опять же, не так страшен, как его малюют. На самом деле, для меня до сих пор самая сложная часть всей истории ‒ набрать хорошую строчку для localectl или для setxkbmap. Кастомная же раскладка с нуля ‒ оказалась штукой очень простой, если к этому подходить прямолинейно. Нашёл отличную программу для редактирования раскладки XKB. Правда, она написана на Java8+JavaFX. Поэтому людям непосвящённым сборка даётся с трудом. Зато добрый человек в issues подсказал, как собрать всё, пользуясь SDKMan. А я сейчас на всякий случай, тоже залил билд. Для себя я выработал такой способ работы: набираем через setxkbmap нужные нам символы, потом экспортируем в отдельный файл, который интегрируем в нашу раскладку. Дело это достаточно быстрое, и свою раскладку я собрал где-то за 3 часа. Допустим: setxkbmap -layout "en+typo"  -option "" -verbose Очень не рекомендую добавлять только русскую раскладку! Потом в терминале будет очень неприятно. Поэтому русские символы достаём такой командой: setxkbmap -layout "en+typo,ru"  -option "grp:shift_caps_switch" -verbose Из редактора экспортируем символы в промежуточный файл, допустим: my_temp Потом делаем финальный файл, где-нибудь, где не потеряется. Допустим ~/.config/my И линкуем в папку назначения: sudo ln -s ~/.config/my /usr/share/X11/xkb/symbols Можно описать геометрию своей клавиатуры для редактора в JSON, чтобы не путаться. Опять-таки, ничего сложного, но я случайно удалил папку сборки вместе со своим JSON… Из неприятных ограничений программы ‒ позволяет разложить в GUI только 4 слоя, поэтому пятый слой я прописывал уже ручками. В целом, понятно как редактировать файл, который из редактора выходит. Но есть некоторые неочевидные вещи, которые мне пришлось усвоить, прежде чем раскладка заработала. После сохранения файла раскладки, я прогоняю две команды: setxkbmap -layout "my"  -option "" -print | xkbcomp -I. - $DISPLAY Так мы скомпилируем раскладку и получим понятный вывод, если налажали. Попутно, в иксах он будет ругаться на кейсуммы больше 255, даже если мы их в раскладке не использовали. Потом уже: setxkbmap -layout "my"  -option "" -verbose Можно указать просто значения, тогда клавиша будет одинаковой во всех группах. Но если указывать разные группы, например, для латиницы/кириллицы ‒ то и все символьные слои, а также типы клавиш надо прописывать для обеих групп. Explicity is better than implicity. Лучше прямо указать тип для каждой кнопки. Благо, редактор это делает, если попросить. ALPHABETIC ‒ два слоя букв SEMIALPHABETIC ‒ два слоя с символами FOUR_LEVEL_SEMIALPHABETIC ‒ 4 слоя с символами FOUR_LEVEL‒ 4 слоя символов EIGHT_LEVEL_SEMIALPHABETIC ‒ 8 слоёв с символами EIGHT_LEVEL ‒ 8 слоёв символов CTRL+ALT ‒ 5 уровней, пятый из которых включается через ctrl+alt (ctrl+alt+f2) ONE_LEVEL ‒ системные кнопки вроде shift и esc TWO_LEVEL ‒ полезно для функциональных клавиш с двумя слоями. У меня, допустим, двухуровневый капс. С одной стороны, мне было бы интересно попробовать для латиницы dvorak или colemak. С другой ‒ я научен горьким опытом пользования знакомым до боли софтом на немецкой раскладке. Главная её особенность ‒ Z и Y поменялись местами, отчего я ежедневно ловил много лулзов. Поэтому буквенный слой подчиняется простой логике: стандартные раскладки, но с умляутами на третьем слое. Мне хотелось унифицировать символы на обеих раскладках, поэтому надо было освободить две верхние кнопки для скобок. Я всегда путался в верхних четырёх буквах: ш щ з ъ. Поэтому мне показалось естественным убрать ш и щ на одну кнопку, тем более, что они не используются подряд. Точно также поступить с ь и ъ, е и ё. Однако оказалось, что для буквы з и ш у меня уже достаточно серьёзные мышечные стереотипы, равно как и для буквы ё. Поэтому приходится привыкать. Собственно, статью я пишу, в том числе и для того, чтобы привыкнуть к новой русской раскладке. Переключаюсь между группами ациклично через Caps и Shift+Caps. В немецкой клавиатуре есть дополнительная кнопка для <|. Я её приспособил для точки, запятой, ударе́ния и •. Из «типографской» раскладки взял кавычки, знаки € и §, ‒ ≠ ± © ° ≈ … , добавил ¢. Для меня довольно важно иметь все цифры в верхнем и нижнем регистрах, поэтому 3-е и 4-е слои цифр полностью дублированы регистрами. Пин-пад разместился на 5-м слое. Поскольку я почти никогда не пользовался клавишей Menu, она превратилась в «Num Lock», или «Num Shift», если нажать через shift. Получившуюся раскладку можно посмотреть здесь. Раньше жена довольствовалась телефоном, и, по большим праздникам, вроде дипломной работы, садилась за ноутбук 😎 Но ноутбук мы с дочкой оставили в аэропорту Хельсинки, и жена стала часто жаловаться, что на клавиатуре без накладок печатать неудобно. К тому же, уже в первый день пользования новой раскладкой на новой клавиатуре я понял, что мне тоже нужна поддержка. Поскольку раскладку я готовил в то время, пока клавиатура ехала ‒ заготовки для наклеек уже тоже были. Опять-таки, есть много вариантов, начиная с относительно недорогих, но непригодных, заканчивая печатью у типографии, специализирующейся на накладках, но ещё за 50€. Взял фотографию производителя сверху, подогнал под физический размер клавиатуры, и разметил клавиши в inkscape. Получилось два листа формата A5. В свободное утро пришёл в единственный в городе фото салон, и попросил распечатать на самоклейке и придумать сверху ламинат. Обошлось в 12 €, и результатом я доволен как слон! Ещё один алмаз, которым я начал пользоваться спустя два года после зародившегося интереса. Из-за совершенно беспочвенных страхов адаптации. Более дружелюбной оболочки, чем i3 я и представить не могу! 90% настроек в одном config-файле весит мало очень удобно таскать окна! Допустим, мне всегда было сложно разместить на экране Arrange view, микшер, ноты и приблуду для преобразования штрихов графического планшета в MIDI. У Reaper есть свой неплохой докер, но в него не засунешь сторонние окна. И в XFCE меня напрягало каждый раз подгонять размеры под необходимые. Здесь же, на работу с окнами не отвлекаешься в принципе: Ребята решили быть по-настоящему минималистичными поэтому по умолчанию в дистрибутиве нет pulse audio. Установить его несложно, но вот на то, чтобы подобрать хороший контроллер в трей у меня ушло 40 минут. Выбор остановил на pasystray. exec --no-startup-id pasystray -g --notify=all Я как-то не раскусил uxvrt, и прочие популярные у ребят терминалы. Поэтому поставил привычный XFCE terminal, который поддерживает DnD, и вообще няшка. Вроде бы прикольная штука, но постоянно скрывает приложения, которые не прописывают desired_category, или вообще не прописывают категорию. Надо это иметь в виду, и я так и не разобрался как сделать по-нормальному. Вообще дело нужное, т.к. список «софта» не заканчивается на /bin. По умолчанию не любят кириллицу, и, к сожалению, как раз нельзя поменять шрифты в одном месте. Для терминала меняется в ~/.Xresources , для i3status. вроде бы, в ~/.i3/config , для conky ‒ в каждом отдельном виджете и каждой отдельной строчке. Вообще мне немного обидно за PC-клавиатуру. Когда-то это был бескомпромиссно быстрый и удобный способ выражения своих мыслей символами. Но сейчас я просто вожу пальцем по экрану андроида и он пишет почти без ошибок немецкие слова, в правописании которых я совсем не уверен. Даже в деле написания русскоязычных текстов андроид начинает выигрывать моё внимание у клавиатуры: в андроиде можно легко поставить символ, за которым на клавиатуре я буду тянуться через мануал по compose-key. И мне бы очень хотелось иметь под пальцами несколько классных хелперов для разных текстовых фишек, вроде письма в верхнем регистре, или з̶а̶ч̶ё̶р̶к̶н̶у̶т̶ы̶м̶и̶ буквами. Но я начал хотя бы с интеграции в клавиатуру смайлов 😅 bindsym $mod+slash exec "splatmoji copypaste" На то, чтобы написать эту статью, я потратил целый день, часов 12. Всего раза в 2 меньше, чем у меня отняла кардинальная перестройка своего пространства, как в комнате, так и внутри системы. Я поражён, как всё оказалось легко, доступно и дёшево, поэтому делюсь с вами своей радостью 🙃 Вообще приятно это ‒ настраивать свою среду под себя. Даже немного приятнее, чем потом ей пользоваться. Хотя, кстати, уже 5 лет на Linux, а до сих пор кайфую и радуюсь от взаимодействия со своим компом! На винде такого не было… P.S. Кто-нибудь знает лёгкий способ написать драйвер для графического планшета? Хочу, чтобы он только слал свои координаты и силу нажатия, но не двигал курсором по экрану.  Пианист-оркестровщик-быдлокодер