rutoの日記: グラフィカルな、コマンド入力支援インターフェースを妄想
以前から言っているグラフィカルなコマンドラインインターフェースは、入力はテキストで、出力はグラフィックスというものだった。
しかし、コマンドラインが敬遠される理由としては、学習コストの高さが挙げられる。実際私もLinuxのコマンドの細かいオプションまでは覚えきれない。
そこで、入力の方にもグラフィカルな、入力の補助インターフェースを付けてみてはどうかと思い、例によって絵を描いてみた。
ムービーの再生が終了して、grep的なコマンドを入力しているところという設定。
以下説明兼アイデアメモ
- コマンドを簡単にコピペしたり、ファイルに保存できることは重要なので、下には生のコマンドが表示される。
- 入力はキーボードで生のコマンドを直接書いても良いし、GUIで操作しても良い。当然両者は連動している。
- 最初に左のボタンで、コマンドを選び、次に引数を決定する。
- 実行するとその下に結果が出力され、終了すると新しい入力GUIが出てくる。
- バックグラウンドで実行する場合即座に次の入力GUIが出てくる。バックグラウンドの出力は対応する入力GUIの下の領域に追加されていくので、複数のジョブの出力が混ざることはない。
- パイプやヒストリーをどう表すかは未定。
ただ、このインターフェースはプログラマーに負担をかけるので良くない。古き良きUNIX的な環境を作りたいのにWIMPを使ったGUIを構築しないといけないのは良くない。
ちなみに、入力がテキストで出力がグラフィカルなやつはFirefoxの拡張としてプロトタイプを作成中。Firefoxの拡張作るのめどい。
XULはインターフェースだけで、シェルとしての処理はRubyで書いたサーバーで実行。今のところ、dateと入力するとカレンダーが出力される程度。将来的にはコマンドを任意の言語で書けるようにしたい。パイプの中はMultipart風な構造でJSONのストリームが流れる予定。
PowerShellみたいにコマンドを実装する側にいろいろ制約をかけてしまうのはありだけど、あんまりやりたくない。それで得られるものもあるからある程度は制約をかけないといけないんだろうけど、ほとんどのプログラミング言語で、特別なライブラリ無しでもコマンドを書けるようにしたい。
もし公開する場合はシェルとしてではなくファイラーというカテゴリで出す予定。そっちのほうが使う側の心理的な障壁や要求が低いイメージがあるので。
グラフィカルな、コマンド入力支援インターフェースを妄想 More ログイン