Swyftのユーザーインターフェイス その1

Swyftとはなんぞや?

Swiftではない。

Swyftは、ジェフ・ラスキンによって開発されたテキスト編集用のユーザーインターフェイスです。 Leapキーと呼ばれる2つのキーを使用した、逐次検索を主体とした操作体系が特徴です。

../../../_images/Canon_Cat.jpg

こんな画像のようなキーボードで操作します。(ウィキペディアのCanonCatより) もちろん私は使ったことはない。以下の文献を元に使用感を想像するだけ。

以下の文献をふんわりと心の目で見て妄想する。

ジェフ・ラスキン本人がSwyftについて解説している。第5章「統一化」で、Swyft特有のキーボード操作について解説している。

AppleII用のソフトウェアSwyftWareの使用レポート。日本語でSwyftの雰囲気がわかる貴重な文献です。 私にとっては、「ヒューメイン・インタフェース」より解りやすかった。

SwyftのUIを採用している、CanonCatの雰囲気がわかる。キー操作と画面の関係はこの動画を見ると腑に落ちる感じ。

そして、冬休みの工作の時間が始まる。

LEAPキーがないから作る

まずは、Leapキーがあるキーボードをデッチ上がる必要がある。

で、コレ。冬休みの工作としては良くできた。

../../../_images/IMG_1997.jpg

HHKと 英数/かなキーボード を2個位置しただけ。 英数/かなキーボードは、基盤だけ自作の傾斜台に釘で打ち付けた。

スペースキーの前にキーを置くのは想像以上に打ちやすい。ただし、キーボードの配置そのものよりもキーの高さが打ちやすさに関係していると思われる。

スペースキーを押したときの高さよりも、Leapキーの高さが低い必要がある。 そうしないと、スペースキーを押したときにLeapキーを誤って押してしまうことがあった。

LEAPキーの検索を日本語対応させる

逐次検索を主体としたUIなのに、日本語ではかな漢字変換が間に入るために、操作性が低下してしまう。 この問題の解決はすでに先人が解決していて、

逐次検索を行うには、 migemo を使用する。で解決。

以前、OSX内蔵の辞書を使ったmigemoもどきを作ったが、非公開APIを使った実装になってしまったので、素直に C/migemo を使うことにした。

が、なんか上手く行かない。

LEAPキーを押したときだけ、検索をするようにする

Leapキーを使った操作系なのだが、これもまだ上手く行かない。

../../../_images/ss1.png

右上のパレットは、Leapキーと関連するキーの状態を表している。

[NSEvent addLocalMonitorForEventsMatchingMask: handler:]

を使って、キーの変更を捉えている。

今日は、ここまで。