Предыстория
Немногим меньше года назад я открыл для себя такую вещь как тайловые оконные менеджеры. Если выражатся грубо, то это такой вариант графической оболочки, который подразумевает управление ПК преимущественно с помощью клавиатуры. Решил попробовать bspwm. Оказалось очень даже удобно. Скорость и удобство работы с компьютером ощутимо выросли.
Примерно так это выглядит:
Я начал предпочитать консольные приложения GUI’шным, стал много писать в виме. При этом, я все еще печатал неправильно — на клавиатуру не смотрел, но печатал буквально двумя-тремя пальцами. Решил, наконец, исправиться, но все упражнения на соответсвующих сайтах были тщетны — стоило мне начать печатать вне тренажера, как пальцы все забывали и работали по старинке. Такое положение дел меня не устраивало, и в какой-то момент я наткнулся на видео про сплит-клавиатуры. Сразу же загорелся идеей покупки — полезно для осанки (правильнее сказать, не вредит), печатаешь быстро, можно поставить доширак между половинками, очень гибкая настройка (вплоть до того, что, например, при быстром нажатии escape дважды закрывается открытая вкладка браузера), наконец буду печатать в 10 пальцев Если у кого-то возник вопрос: ‘где … (подставить название необходимой клавишы)’ — вам чтобы нажать … вам придется нажать условный FN, находящийся под большим пальцем, и … (подставить название удобной клавиши). Оказалось, что удовольствие это не самое дешевое (потому что не самое серийное): отдать придется, как минимум, 12000₽ Клавиатуру в 90% случаев придется собирать самому, но в этом нет ничего особенно сложного. «Комплектующие», как правило, будут такими: Платы (можно сказать основа, в которую мы воткнем свитчи и контроллеры) Контроллеры (мозги клавиатуры) Свитчи («кнопки») Кейкапы («крышечки для кнопок») Корпус Экраны, энкодеры и т.д. и т.п. (по желанию)Поиски и покупка
Контроллер, экран, свитч, кейкап, плата в акриловом корпусе
У меня было (и у вас, скорее всего, тоже) всего два варианта приобретения: заказывать с алиэкспресса или купить с рук. Мне не хотелось долго ждать, поэтому я сначала прошерстил авито, потом нашел чат по теме сплит-клавиатур, там же и барахолку.
Я хотел клавиатуру формата Sofle, беспроводную. На мой запрос ответил человек: у него была Софл в акриловом корпусе вместе с проводными и беспроводными контроллерами — то что надо.
Клавиатура у меня
И вот, я ее получил, вставил свитчи, кейкапы, врубил в ноутбук — красота:
Однако с подсветкой придется распрощаться — от проводов нужно избавлятся, а подсветка требует много тока. Я взял беспроводные контроллеры, припаял к ним аккумуляторы на 100 мА*ч, воткнул в сокеты. Теперь нужно было выбирать прошивку (одну из двух): bluemicro или zmk. Со сборкой bluemicro у меня не задалось, поэтому выбрал то, что осталось.
Сделал все в соответствии с документацией.
-
Склонировал их репозиторий
-
Подправил конфиг под себ.
-
Запушил, подождал и с вкладки actions скачал файл прошивки.
Отдельно для левой и правой половинки:
-
Подключил половинку, нажал кнопку reset
-
Перекинул файлы на контролле.
Готово! Начал пользоваться.
Вот так выглядят конфиги:
/*
* Copyright (c) 2020 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include
#include
#include
#include
/ {
keymap {
compatible = "zmk,keymap";
default_layer {
// ------------------------------------------------------------------------------------------------------------
// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
// | ESC | Q | W | E | R | T | | Y | U | I | O | P | BKSPC |
// | TAB | A | S | D | F | G | | H | J | K | L | ; | ' |
// | SHIFT | Z | X | C | V | B | MUTE | | | N | M | , | . | / | SHIFT |
// | GUI | ALT | CTRL | LOWER| ENTER | | SPACE | RAISE| CTRL | ALT | GUI |
bindings = <
&kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS
&kp ESC &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSPC
&kp TAB &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp C_MUTE &none &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
&kp LGUI &kp LALT &kp LCTRL &mo 1 &kp RET &kp SPACE &mo 2 &kp RCTRL &kp RALT &kp RGUI
>;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;
};
lower_layer {
// TODO: Some binds are waiting for shifted keycode support.
// ------------------------------------------------------------------------------------------------------------
// | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 |
// | | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | |
// | | = | - | + | { | } | | | | [ | ] | ; | : | \ | |
// | | | | | | | | | | | |
bindings = <
&trans &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11
&kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp F12 &trans &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp KP_MULTIPLY &kp LPAR &kp RPAR &kp PIPE &trans &kp EQUAL &kp MINUS &kp KP_PLUS &kp LBRC &kp RBRC &trans &trans &kp LBKT &kp RBKT &kp SEMI &kp COLON &kp BSLH &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
>;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;
};
raise_layer {
// ------------------------------------------------------------------------------------------------------------
// |BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 | | | | | | | |
// | | INS | PSCR | GUI | | | | PGUP | | ^ | | | |
// | | ALT | CTRL | SHIFT | | CAPS | | PGDN | <- | v | -> | DEL | BKSPC |
// | | UNDO | CUT | COPY | PASTE | | | | | | | | | | |
// | | | | | | | | | | | |
bindings = <
&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &ext_power EP_OFF &trans &trans &trans &trans &trans
&trans &kp INS &kp PSCRN &kp K_CMENU &trans &trans &trans &trans &trans &trans &kp N0 &trans
&trans &kp LALT &kp LCTRL &kp LSHFT &trans &kp CLCK &kp LEFT &kp DOWN &kp UP &kp RIGHT &kp DEL &kp BSPC
&trans &kp K_UNDO &kp K_CUT &kp K_COPY &kp K_PASTE &trans &trans &trans &trans &trans &trans &trans &trans &trans
&trans &kp INS &kp PSCRN &kp K_CMENU &trans &trans &trans &trans &kp UP &trans &kp N0 &trans
>;
sensor-bindings = <&inc_dec_kp PG_UP PG_DN &inc_dec_kp PG_UP PG_DN>;
};
};
};
# Copyright (c) 2020 Ryan Cross
# SPDX-License-Identifier: MIT
# Uncomment the following line to enable the Sofle OLED Display
#y CONFIG_ZMK_DISPLAY=y
CONFIG_ZMK_EXT_POWER=n
CONFIG_ZMK_IDLE_TIMEOUT=300000
CONFIG_ZMK_SLEEP=y
CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=1000000
CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
# Uncomment these two lines to add support for encoders
CONFIG_EC11=y
CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
Проблемы!
Начал проходить тренажер. Как бы сказать… Сложность была не в том, что клавиатура разделена на две части, а в том, что клавиши находятся ровно друг под другом (без небольшого сдвига в сторону, как на обычных клавах). В первые часы показатель WPM (слов в минуту) у меня был около 20-30, что кратно меньше, чем раньше. Но вспоминая, сколько я отдал за это удовольствие денег, я постепенно его повышал, проходя уровни тренажера снова и снова.
И тут я столкнулся с первой проблемой: некоторые клавиши за одно нажатие нажимаются (с точки зрения клавиатуры) по несколько раз, либо не нажимаются. Я начал искать проблему. Все оказалось очень просто: она была в несмытом с одной из плат флюсе… После этого случая я стал относится к смыванию флюса куда серьезнее.
Через два-три дня мой WPM был уже на уровне 50, что не могло не радовать.
Но я столкнулся с новой проблемой: клавиатура садится за пару часов, хотя должна держаться пару недель. Оказывается, контроллер отдавал ток на выключенную подсветку. Добавил в конфиг строчку:
CONFIG_ZMK_EXT_POWER=n
И ура! Автономность левой половинки у меня (которая садится гораздо быстрее правой, т.к. левая подключается к правой, а правая еще и к ПК) составляет около двух недель.
Идет время
Уже спустя неделю активного клацанья на monkeytype мой WPM стал выше, чем раньше.
На данный момент статистика выглядит так:
Сейчас мой WPM ~ 90-100. Я давно перестал заниматься его повышением — считаю, что мне такой скорости хватает.
Кстати, поначалу было трудно обратно переключаться (а иногда приходится) на обычную клавиатуру, но я нашел решение: на обычной клавиатуре пишу как раньше, двумя-четырмя пальцами, и все получается
Итог
За прошедшее время я ни разу не пожалел о своем приобретении..
Единственный небольшой недостаток для меня заключается в том, что при ношении клавы в рюкзаке из нее могут выпадать свитчи.
Очень рекомендую тем, кто много печатает!