Этот инструмент для клавиатуры ЛУЧШЕ, чем Karabiner (и вот почему)

BBetter Stack
컴퓨터/소프트웨어게임/e스포츠가전제품/카메라

Transcript

00:00:00Это Kanata — инструмент с открытым исходным кодом, раскрывающий потенциал вашей клавиатуры.
00:00:03Он позволяет, например, назначать разные действия на нажатие и удерживание клавиши,
00:00:08использовать одну клавишу для целой комбинации нажатий
00:00:10или создавать разные слои для кастомных раскладок.
00:00:12Это находка для таких людей, как я, которые стараются работать в основном на клавиатуре.
00:00:16Но что не так с этим странным синтаксисом конфигурации?
00:00:19И почему стоит выбрать именно его, а не Karabiner или другие инструменты на букву К?
00:00:24Подписывайтесь, и давайте во всем разберемся.
00:00:27Kanata — это индейское название деревни на языке ирокезов,
00:00:30что вообще никак не связано с клавиатурами.
00:00:33Но если вы фанат механики, то наверняка слышали о QMK —
00:00:37популярной открытой прошивке,
00:00:39которая переназначает клавиши прямо в контроллере до отправки сигнала в систему.
00:00:42Kanata работает так же, как QMK, но на программном уровне,
00:00:46поэтому поддерживает любые клавиатуры, даже встроенные в ноутбук.
00:00:49Благодаря тому, что она написана на Rust, программа работает очень быстро,
00:00:52и задержка при вводе практически не ощущается.
00:00:55Правда, настройка здесь не самая простая.
00:00:57Установив Kanata вместе с Karabiner для Mac (об этом я расскажу позже),
00:01:00вам придется писать конфиг, используя S-выражения в духе Lisp.
00:01:02Это, пожалуй, самый странный синтаксис, который я когда-либо видел.
00:01:07Вместо того чтобы писать имя функции перед скобками, как все привыкли,
00:01:11здесь оно пишется внутри скобок, сразу перед аргументами.
00:01:16Всё становится еще запутаннее, когда начинаешь использовать вложенные функции,
00:01:21а это в конфигурации встречается постоянно.
00:01:24Из-за того что названия функций находятся внутри скобок,
00:01:26код поначалу кажется очень сложным для восприятия.
00:01:30Но со временем к этому привыкаешь.
00:01:35Возьмем простой пример: допустим, я хочу, чтобы клавиша A работала как X.
00:01:36Я использую функцию «defsource», чтобы указать исходную клавишу A,
00:01:41и как минимум одну функцию «deflayer» для выходных значений.
00:01:46Назову этот слой «base» и передам аргумент X.
00:01:50Любая клавиша, не указанная в конфиге, работает как обычно.
00:01:53Добавление клавиш B и C с привязкой к X и Z выглядит вот так.
00:01:57К счастью, пробелы и табуляция не имеют значения,
00:02:02так что можно расставить клавиши так, чтобы код был читаемым.
00:02:04Вот еще несколько крутых фишек этого конфига.
00:02:08Можно настроить «tap-hold»: короткое нажатие делает одно, а удержание — другое.
00:02:10Указываем таймаут и клавиши, которые хотим привязать.
00:02:15В данном случае нажатие A выдаст X, а удержание сработает как левый Shift.
00:02:19Для удобства можно использовать «defvar», чтобы задать переменные,
00:02:24которые часто встречаются в коде, и обращаться к ним через знак доллара.
00:02:28Это идеально для «home row mods», когда клавиши среднего ряда становятся модификаторами.
00:02:32Честно говоря, сначала это кажется дикостью,
00:02:36но я настолько привык, что уже не представляю работу на обычной клавиатуре.
00:02:39Также можно создать новый слой «deflayer», например, под названием «editor»,
00:02:42специально для монтажа видео, с совершенно другой раскладкой,
00:02:46и переключаться на него отдельной клавишей.
00:02:51А если вы хотите чего-то совсем продвинутого при смене слоев,
00:02:54можно включить TCP-сервер Kanata, чтобы другие приложения могли его слушать.
00:02:58У меня, например, SketchyBar следит за Kanata,
00:03:03и при смене слоя информация об этом выводится в верхней части экрана.
00:03:06Да, пришлось написать немало строк кода, чтобы всё это настроить,
00:03:10но с этим вполне может помочь нейросеть.
00:03:13И всё же, зачем использовать Kanata, если есть Karabiner-Elements?
00:03:16Ведь он умеет всё то же самое и даже больше,
00:03:21включая привязку клавиш к конкретным приложениям и устройствам,
00:03:24наглядный просмотр событий для тестирования
00:03:28и удобный графический интерфейс для тех, кто не любит терминал.
00:03:30Лично для меня в Karabiner функция «tap-hold» работала очень плохо.
00:03:35Мне стоило больших усилий и долгого изучения документации, чтобы хоть как-то её настроить.
00:03:40Но даже тогда она работала нестабильно по сравнению с Kanata.
00:03:45Она постоянно путала удержания с обычными нажатиями.
00:03:49Kanata же идеально справляется с этим «из коробки» вообще без правок,
00:03:51и у меня нет никакого желания возвращаться на Karabiner.
00:03:56Так что, если вам нужны «home row mods», я советую Kanata.
00:03:59Но и у нее есть свои минусы.
00:04:03Для разных клавиатур с разными раскладками нужны отдельные файлы конфигурации.
00:04:05Это неудобно: при отключении клавиатуры
00:04:09нужно вручную вводить команду для переключения маппинга.
00:04:12Я также не нашел способа переназначить кнопку play/pause на F8,
00:04:15хотя в Karabiner это делалось элементарно.
00:04:20И пришлось немного повозиться, чтобы подружить Kanata с мышкой MX Master.
00:04:22К счастью, большинство проблем я решил с помощью нейросетей («vibe coding»),
00:04:26и, возможно, выложу эти решения в открытый доступ.
00:04:30Но мне бы очень хотелось, чтобы сообщество вокруг Kanata росло.
00:04:31И это видео может помочь, если вы поделитесь им с друзьями и коллегами, верно?
00:04:34which this video could help do if more people share it with their friends and colleagues, right?

Key Takeaway

Kanata представляет собой мощную кроссплатформенную альтернативу Karabiner-Elements, которая превосходит конкурентов в точности обработки сложных нажатий, несмотря на специфический синтаксис конфигурации.

Highlights

Kanata — это программный инструмент с открытым исходным кодом, работающий по принципу прошивки QMK.

Программа написана на Rust, что обеспечивает высокую скорость работы и минимальную задержку ввода.

Использование S-выражений (синтаксис Lisp) для конфигурации является основным барьером для новичков.

Функция «tap-hold» в Kanata работает стабильнее и точнее, чем в популярном Karabiner-Elements.

Возможность интеграции с внешними приложениями через TCP-сервер для визуализации активных слоев.

Поддержка «home row mods» позволяет превратить клавиши основного ряда в мощные модификаторы.

Несмотря на сложность настройки, инструмент идеально подходит для продвинутых пользователей и энтузиастов.

Timeline

Введение в возможности Kanata

Автор представляет Kanata как мощный инструмент для раскрытия потенциала любой клавиатуры, включая встроенные решения в ноутбуках. Программа позволяет настраивать сложные действия, такие как разные реакции на нажатие и удержание, а также создание многослойных раскладок. Основная целевая аудитория проекта — это пользователи, стремящиеся к максимальной эффективности работы без использования мыши. В начале видео задается главный вопрос о целесообразности использования этого инструмента по сравнению с Karabiner-Elements. Это вступление подчеркивает практическую ценность Kanata для профессионалов.

Технические основы и сравнение с QMK

Разбирается происхождение названия Kanata и его связь с философией открытого программного обеспечения. Автор сравнивает работу приложения с популярной прошивкой QMK, отмечая, что Kanata эмулирует те же функции на программном уровне. Использование языка программирования Rust гарантирует высокую производительность и отсутствие ощутимых задержек при вводе текста. Это критически важно для пользователей механических клавиатур, привыкших к мгновенному отклику. Данный раздел объясняет архитектурное преимущество инструмента перед аналогами.

Сложности и особенности синтаксиса конфигурации

В этом сегменте подробно описывается процесс настройки, который базируется на использовании S-выражений, характерных для языка Lisp. Автор признает, что синтаксис со скобками и необычным расположением функций может поначалу отпугнуть пользователей. Рассматриваются базовые функции управления, такие как «defsource» для определения исходных клавиш и «deflayer» для создания слоев. Важным моментом является то, что пробелы и табуляция не влияют на работу кода, позволяя визуально структурировать конфиг. Этот раздел помогает понять логику написания скриптов для управления раскладкой.

Продвинутые функции: Tap-Hold и переменные

Автор переходит к демонстрации продвинутых возможностей, таких как функция «tap-hold», позволяющая одной клавише выполнять разные роли. Рассматривается использование переменных через «defvar» для упрощения кода и настройки популярных «home row mods». Упоминается возможность создания специализированных слоев, например, для видеомонтажа, с быстрым переключением между ними. Уникальной фишкой является активация TCP-сервера, который позволяет сторонним утилитам вроде SketchyBar отслеживать состояние слоев в реальном времени. В завершение секции упоминается помощь нейросетей в написании сложного кода конфигурации.

Сравнение с Karabiner и финальные выводы

Заключительная часть посвящена прямому сравнению Kanata с Karabiner-Elements, выделяя как плюсы, так и минусы. Главным преимуществом Kanata называется безупречная работа функции удержания клавиш, которая в Karabiner часто дает сбои. Тем не менее, признаются недостатки: отсутствие простого графического интерфейса и сложности с автоматическим переключением профилей для разных устройств. Автор делится личным опытом решения проблем с мышью MX Master через подход «vibe coding». Видео завершается призывом к развитию сообщества вокруг этого перспективного инструмента.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video