SpaceLauncher のストーリー
始まりは 2013 年、Alfred でした。
Alfred でアプリにホットキーを割り当てる記事を読んで、すぐにピンと来ました。キー 1 つでアプリに飛ぶのは、検索して探すよりはるかに速かったのです。
その頃、Caps Lock を「Hyper キー」にするのが流行っていましたが、私には合いませんでした。私はタイピングについては古風で、キーごとに担当の指を決めています。Caps Lock は 1、Q、A、Z と同じ左の小指の担当です。Caps Lock を押さえているとその小指がふさがり、組み合わせたいキーそのものに届かなくなります。Caps Lock + A のようなコンボは、私の手にはそもそも無理な動きでした。
その後 LaunchBar に移りましたが、この機能はありませんでした。そこで Karabiner に頼ることにしました。どうせキーをリマップするなら、快適なキーを選びたい——そして親指の下にすでにある、いちばん快適なキーがスペースでした。今日の SpaceLauncher に近いものを、すべて Karabiner の中で組み上げました。(当時の設定はここにあります——おそらくとっくに動かなくなっていますが。)そう、Karabiner でもできたのです。今でもできる人はいます。ただし誰にでもできるわけではない——その理由は後で述べます。
やがて macOS のアップデートが来て、Karabiner の対応が追いつかない時期がありました。この打ち方にすっかり馴染んでいた私は、それなしでは過ごせず、当時は Karabiner の開発は止まったのだと思い込んでいました。それなら自分で作ろう、と決めたのです。(実際には止まってなどいませんでした。何年も経った今も更新が続いています。ありがとう、Karabiner。)
見た目より難しかったところ
作り上げて人に渡してみると、思いもしなかったことを学びました。タイピングのリズムは人それぞれ違うのです。
実際のタイピングは重なり合います。前のキーが完全に上がる前に次のキーが下りることはよくあり、スペースの周りでは常に起きています。スペースをショートカットの起点と通常のスペースバーの両方として機能させるために、大量のロジックを書く羽目になりました——着手前の想像をはるかに超えていました。Karabiner、Hammerspoon、Keyboard Maestro のような汎用のリマップ・自動化ツールでも一部は近似できますが、SpaceLauncher はまさにこの「スペースのタイミング問題」を中心に作られています。この問題こそが、存在理由のすべてです。
正直に言うと、私は大したプログラマーではなく、絡み合ったタイミングロジックには何度も頭を抱えました。これほど難しいと知っていたら、Karabiner の更新を待つだけにしたかもしれません。続けられた理由は 2 つ。1 つは、自分が毎日使っていたこと。もう 1 つは、時折ユーザーから温かい言葉や、解く価値のある問題が届いたことです。
長い回り道
道がまっすぐだったとは言いません。
アプリが安定したところに到達するたびに、勢いが尽きました——新機能を足すのがとにかく大変だったのです。そんな中、2022 年頃に、修飾キーの単独タップをリーダーキーにできないかと尋ねるユーザーがいました。良いアイデアだと思いました。トリガーキーをウインドウ経由で受け取る、App Store に出せるくらいクリーンな方法を編み出し、それが keyseq になりました。これにも本気で取り組みました——修飾キーでもリーダーキーと通常利用を見分ける必要があり、中身は同じ種類の細かいパッチワークで、少しだけ単純なだけでした。
そして考えました。keyseq を SpaceLauncher の中核にできるのでは、と。それが SpaceLauncher 2 になり、今日のすべてのリーダーキーに対応しました——しかし土台の構造には根本的な欠陥があり(トリガーキーをウインドウ経由で受け取るのは、自分で自分の首を絞める素晴らしい方法だと判明しました)、その頃にはもつれすぎていて、もう開く気になれませんでした。私は keyseq の方へ流れていきました。SpaceLauncher、ごめん。
それでも続く
そして 2026 年の初め、AI がついに十分賢くなりました。
文字どおりの意味です——ちょうど今、ぎりぎり十分に。半年前の AI では、これほどこじれたロジックはほどけなかったでしょう。その助けを借りて、何年もやりたかったことにようやく戻れます。
だからこの物語に結末はありません。SpaceLauncher は完成していない——そしてそれこそが最高の部分です。もっと良いものが向かっています。さあ、行きますよ。