Этот инструмент для клавиатуры ЛУЧШЕ, чем Karabiner (и вот почему)
BBetter Stack
Computing/SoftwareVideo & Computer GamesConsumer Electronics
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?
Community Posts
No posts yet. Be the first to write about this video!
Write about this video