Karabinerより強力?このキーボード設定ツールが最高な理由

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

Transcript

00:00:00キーボードのポテンシャルを最大限に引き出す、オープンソースツールの「Kanata」を紹介します。
00:00:03短くタップした時と長押しした時で別のキーとして認識させたり、
00:00:081つのキーで複数のキー入力を実行したり、
00:00:10用途に合わせてキーマップのレイヤーを切り替えたりすることができます。
00:00:12私のように、操作のほとんどをキーボードで完結させたい人間には最高のツールです。
00:00:16でも、この独特な設定構文は何なんでしょうか?
00:00:19それに、Karabinerや他の「K」から始まるツールではなく、なぜこれを使うべきなのでしょうか?
00:00:24チャンネル登録をして、さっそく中身を見ていきましょう。
00:00:27「Kanata」はイロコイ族の言葉で「村」を意味しますが、
00:00:30キーボードとは全く関係ありません。
00:00:33自作キーボードが好きな方なら、「QMK」という名前を聞いたことがあるかもしれません。
00:00:37これは有名なオープンソースのキーボードファームウェアで、
00:00:39PCに信号が送られる前に、キーボード側でキーマップを変更できます。
00:00:42KanataはQMKのような機能をソフトウェアレベルで実現するため、
00:00:46ノートPCの内蔵キーボードを含む、あらゆるキーボードに対応しています。
00:00:49また、Rustで書かれているため非常に高速で、
00:00:52タイピング時の遅延もほとんど感じられません。
00:00:55ただ、セットアップはそれほど簡単ではありません。
00:00:57Macの場合はKarabiner経由でインストールした後に――
00:01:00これについては後で詳しく説明しますが、
00:01:02Lispにインスパイアされた「S式」という構文で設定ファイルを書く必要があります。
00:01:07これが、私が今まで見た中で最も奇妙な設定構文なんです。
00:01:11通常、関数名はカッコの外に書くものですが、
00:01:16この設定ファイルでは、カッコの中の引数のすぐ隣に関数名を書きます。
00:01:21さらに関数を入れ子にすると、もっと奇妙なことになります。
00:01:24設定ではよくあることなのですが、
00:01:26関数名がすべてカッコの内側にあるため、
00:01:30最初はかなり理解しづらく感じるでしょう。
00:01:35でも、しばらくすれば慣れてきます。
00:01:36簡単なキーマップの例として、AキーをXに割り当ててみましょう。
00:01:41まず `defsource` 関数でソースキーとして「A」を指定し、
00:01:46次に少なくとも1つの `deflayer` 関数で出力キーを指定します。
00:01:50ここでは名前を「base」とし、引数に「X」を渡します。
00:01:53設定ファイルに記載されていないキーは、通常通り動作します。
00:01:57BとCを追加してXとZにマッピングすると、このようになります。
00:02:02幸いなことに空白やタブは無視されるので、
00:02:04キーの間隔を空けて、読みやすいように調整できます。
00:02:08この設定ファイルでできる面白いことを、他にもいくつか紹介します。
00:02:10「タップ・ホールド」を設定すれば、タップと長押しで別々のアクションを割り当てられます。
00:02:15タイムアウト時間を指定してから、割り当てたいキーを追加します。
00:02:19この例では、Aをタップすると「X」、長押しすると「左Shift」として認識されます。
00:02:24また、`defvar` 関数を使って変数を登録すれば、
00:02:28設定内で何度も使う値を「$」記号で参照できるようになります。
00:02:32これは、ホームポジションのキーに修飾キーを割り当てる「ホームロー・モッド」に最適です。
00:02:36正直、最初はかなり違和感がありましたが、
00:02:39今ではすっかり慣れてしまい、これなしのキーボード操作は考えられません。
00:02:42また、「editor」といった名前で新しい `deflayer` を作成し、
00:02:46動画編集専用のキーマップをまるごと設定することも可能です。
00:02:51そして、レイヤー切り替えキーを設定するだけで簡単に切り替えられます。
00:02:54さらに凝ったことをしたいなら、
00:02:58KanataのTCPサーバー機能を有効にして、他のアプリと連携させることもできます。
00:03:03私の場合、SketchyBarでKanataの信号をリッスンし、
00:03:06レイヤーを切り替えた時にデスクトップの上部に表示されるようにしています。
00:03:10ここまでの環境を作るには、確かに大量の設定を書く必要がありますが、
00:03:13AIを活用すれば難しいことではありません。
00:03:16ところで、これほど多機能なKarabiner-Elementsがあるのに、なぜあえてKanataを使うのでしょうか?
00:03:21KarabinerはKanataができることはすべてカバーしていますし、それ以上のことも可能です。
00:03:24アプリやキーボードごとのマッピング切り替え、
00:03:28直感的なイベントビューアーによる動作確認、
00:03:30ターミナル操作を好まない人のためのGUIも備わっています。
00:03:35しかし私にとって、Karabinerのタップ・ホールド機能(ホームロー・モッド用)は不十分でした。
00:03:40まともに動作させるまでに、多大な調査と設定が必要だったんです。
00:03:45しかも、苦労して設定してもKanataほど直感的には動きませんでした。
00:03:49Karabinerでは、長押しがタップとして誤認識されることがよくありました。
00:03:51一方、Kanataはこの機能を微調整なしで完璧に処理してくれました。
00:03:56それ以来、Karabinerに戻る必要性は感じていません。
00:03:59ホームロー・モッドを本気で使いたいなら、Kanataをおすすめします。
00:04:03ただ、Kanataも完璧というわけではありません。
00:04:05キーボードごとに異なるマップを使う場合、複数の設定ファイルが必要になり、
00:04:09キーボードを抜くたびに、
00:04:12コマンドを実行して設定を切り替えなければならないのが少し面倒です。
00:04:15また、私のキーボードでは再生/一時停止ボタンをF8に割り当てることができませんでした。
00:04:20Karabinerではできていたことなのですが。
00:04:22MX MasterマウスでKanataを動作させるのにも、少しコツがいりました。
00:04:26幸い、こうした問題のほとんどはコードを書いて解決できました。
00:04:30それらは将来的にオープンソースとして公開するかもしれません。
00:04:31Kanataのコミュニティがもっと大きくなることを願っています。
00:04:34この動画を友人や同僚にシェアしてもらえれば、その助けになるはずです。

Key Takeaway

Kanataは、設定の習得難易度は高いものの、ホームロー・モッドや高度なレイヤー機能を求めるユーザーにとってKarabinerを超える精度と柔軟性を持つ最強のキーボードカスタマイズツールです。

Highlights

KanataはあらゆるキーボードでQMKのような高度なカスタマイズを可能にするRust製のオープンソースツールである

S式(Lisp構文)を採用した独特な設定方法により、複雑なキー入力を柔軟に定義できる

「タップ・ホールド」機能の精度が非常に高く、ホームロー・モッドの運用においてKarabiner-Elementsよりも優れている

TCPサーバー機能を介して他のアプリケーション(SketchyBarなど)と連携し、レイヤー状態を視覚化できる

Rustで記述されているため動作が極めて高速であり、タイピング時の遅延がほとんど発生しない

Timeline

Kanataの概要と特徴

このセクションでは、キーボードのポテンシャルを最大限に引き出すオープンソースツール「Kanata」の基本機能が紹介されています。タップと長押しの使い分けや、1つのキーへの複数入力の割り当て、レイヤー切り替えといった高度な操作がソフトウェアレベルで実現可能です。自作キーボードで有名なQMKファームウェアのような機能を、ノートPCの内蔵キーボードを含むあらゆるデバイスで利用できる点が大きな特徴です。Rustで書かれているため、タイピング時の遅延が極めて少なく、高速なレスポンスを求めるユーザーに最適です。「Kanata」という名称はイロコイ族の言葉で「村」を意味するという豆知識も語られています。

S式による独特な設定構文の解説

Kanataのセットアップにおける最大の壁である、Lispにインスパイアされた「S式」という設定構文について詳しく説明されています。関数名がカッコの内側に記述されるという非常に独特なルールがあり、スピーカーはこれを「今まで見た中で最も奇妙な構文」と評しています。特に関数を入れ子(ネスト)にした際の見え方が一般的ではないため、プログラミング経験者でも最初は理解に苦しむ可能性があります。しかし、この構造を理解し慣れてしまえば、非常に論理的かつ詳細な設定が可能になります。初心者に向けて、最初は戸惑うものの時間の経過とともに慣れるものであるとフォローされています。

基本的なキーマッピングの実践例

実際のコード例を用いて、AキーをXに割り当てるなどの基本的なマッピング方法が具体的に解説されています。設定はまず `defsource` でソースとなる物理キーを指定し、次に `deflayer` で出力するキーを定義するという2段階の手順で行われます。設定ファイルに記述されていないキーはデフォルトの挙動を維持するため、必要な部分だけをピンポイントで変更できる柔軟性があります。また、コード内の空白やタブは無視されるため、ユーザーが読みやすいようにレイアウトを整えることが推奨されています。このように、シンプルな置換から徐々に設定を拡張していく流れが示されています。

高度な機能:タップ・ホールドとレイヤー管理

Kanataの真骨頂である「タップ・ホールド」や変数定義、レイヤー切り替えの応用技術が紹介されています。例えば、Aキーを短く押せば「X」、長押しすれば「左Shift」として機能させる設定は、ホームロー・モッドの構築に不可欠です。`defvar` を活用することで、設定ファイル内で繰り返し使用する値を効率的に管理できるメリットも強調されています。動画編集などの用途に合わせて専用のレイヤーを作成し、キー一つで環境を丸ごと切り替えるデモも行われています。さらに、TCPサーバー機能を使って外部アプリのSketchyBarと連携し、現在のレイヤーを画面上に表示させるという高度なカスタマイズ例も提示されています。

Karabiner-Elementsとの比較とKanataの弱点

Macユーザーに人気のKarabiner-Elementsと比較し、なぜあえてKanataを選ぶのかという核心部分に触れています。KarabinerはGUIを備え多機能ですが、タップ・ホールドの判定精度においてはKanataの方が圧倒的に直感的で誤作動が少ないと主張されています。一方で、Kanataの弱点として、キーボードごとに個別の設定ファイルが必要な点や、メディアキーの割り当てが一部制限される点などが挙げられています。マウスとの相性問題などいくつかの課題はあるものの、それらはスクリプトの記述などで解決可能であり、コミュニティの発展への期待が述べられています。最終的には、特にホームロー・モッドを重視するユーザーに対して、Kanataへの移行を強く勧めて動画を締めくくっています。

Community Posts

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

Write about this video