前回からけっこう間が空いちゃいましたが、Textboxの開発は地味に続けております。むしろ、さまざまなデジタルツールから学んだコンセプトを取り組んで、魔人ブウのように成長しています。
で、今回はぜんぜん違う話。操作に関しての新しい考え方を紹介します。
かなり初期の頃から「home」に相当するページを持っていました。そのときどきでページの内容は違っているのですが、全体の起点となるという役割は共通しています。
で、command+ h でそのページを表示させるショートカットキーを実装していました。
というかたぶん話は逆で、command + h を押したら表示されるそのページが「home」ということです。Textboxには、現状サイドバーやパンくずリストなどページ構造の階層表現を持たないので、キー操作が「起点」の感覚を作っているというイメージ。
で、あるとき、ぜんぜん別の機能を実装していたらふと閃きました。
「循環したら、面白いんじゃないか?」
どういうことかというと、他のどんなページを表示していても、command + h を押せば home に戻ってくる。では、homeで command + h を押したら?
そのとき「次のページ」にいけたらどうでしょうか。たとえば手帳やノートのページをめくるみたいに。
図であらわすとこんな感じです。
どのページにいても、command + h を押せばhome(A)が表示される。homeで command + h を押すとBが表示され、Bで command + h を押すとCが表示され、Cでcommand + hを押すと、再びAが表示される。
こんな感じで市内循環バスのようにくるくると回っていくのです。
とは言え、こうしてしまうと、「command + hをおせば、homeが表示される」という設定が崩れてしまいます。なにせ、Bでそれを押したらCが表示されるわけですから。でも、もう一度同じコマンドを押せばAが表示されます。
もし、BとCの間に別のページを挟んでステップが増えても同じです。command + hを何回か押せば、必ずAにたどり着ける。そういう状態は維持できるわけです。
このようにすると、常に起点となる最上位のページAを home 扱いしながら、それに準じる強めのページもショートカットキーだけで移動できるようになります。
もちろん、メインのhomeは、command + hで、次のホームはcommand + kで、なんてやりはじめた覚えきれなくなるのは必死です。同じキーを使い続ける、というのがこの場合のポイント。
Emcasのように、あるキーを押してから、別のキーを押すという操作を許容すれば、h→1、とかh→2とかで似たような表現は可能でしょうが、それでも同じキーを連続でポンポン押している方がラクチンですね。
で、仮に上記をページの「横移動」だと考えたら、「縦移動」も可能になり、キー操作だけでかなりの数のページに移動できるというアイデアも思いつきました。
横にいって、上にいって、さらに横にいって、……。
実際に実装してみたのですが、あまりに複雑過ぎて自分自身で管理できなくなったのでこのアイデアはボツにしました。
今はもっと単純に「横方向の循環」と「縦方向の循環」の二種類だけを設定しています。
command +h が左回り(あくまでイメージ)、command + l が右回り。
command + kが下回り、command + jが上回り。
となっていて、横方向は、home→list→todo→memo→home、縦方向はhome→総合index→books→home、となっています。
結局、ある程度使ってみると頻繁にアクセスするページは限定的で、上記を押さえているだけで十分機能するとわかった次第です。
ちなみに、実装に関してはそれぞれのページに「次のページはこれ、前のページはこれ」という情報をフロントマターで書き込んでおき、それをTextboxの本体が読み取ってショートカットキーの移動先に割り当てる、という形になっています。
まあ、このままの形で実装される方は少ないでしょうが、「同一のキー操作でページが移動していくのは、アナログノートをめくっているみたいでなかなか楽しい」ということだけを知っていただければツール開発の役に立つかと思います。