Clickable Terminal — クリックで移動できるターミナル
概要
Clickable Terminalは、ターミナル上のディレクトリやファイル名をアイコン付きで表示し、クリックでファイルツリーを辿れるようにする小さなセットアップです。READMEは短く、主にKittyターミナルとeza(lsの代替)を前提とした使い方を示しています。ユーザー体験は「ls風の一覧を視覚的に表示して、クリックで移動する」ことにフォーカスしており、ターミナル操作をキーボード中心からマウス操作を補完する形で高速化します。導入は少数の前提ツールのインストールと軽い設定のみで完了する想定です。
リポジトリの統計情報
- スター数: 6
- フォーク数: 0
- ウォッチャー数: 6
- コミット数: 4
- ファイル数: 1
- メインの言語: 未指定
主な特徴
- クリックでフォルダやファイルに移動できるターミナルUI(アイコン付き)
- Kittyターミナルとezaを前提とした軽量セットアップ
- シンプルな導入手順(必要最小限の依存のみ)
- READMEに動画やデモのスクリーンショットを含む視覚的説明
技術的なポイント
READMEには実装の全容までは記載されていませんが、記載されている前提(Kittyとeza)から、実現手法のおおよその技術的観点が読み取れます。まずezaはアイコンや色付き出力をサポートするls代替で、ファイル種別を視覚的に区別した一覧作成に使われます。Kittyは高度なグラフィック機能と制御プロトコル(グラフィックスプロトコル、remote control API)を持つため、ターミナル上でアイコンを描画したり、外部からコマンドを発行してウィンドウ操作を行うのに適しています。
クリック可能にする手法としては主に二通りが考えられます。1) OSC 8(端末ハイパーリンク)を用いて各ファイル名にURIを埋め込み、クリック時に外部ハンドラ(例えばカスタムURLスキーム)へ制御を渡す方法。2) Kitty固有のremote controlや「kitten」経由で、出力時にクリック可能領域を作り、クリックイベントに応じてkittyコマンドを実行させる方法です。いずれも注意点があり、端末依存性(Kitty以外では動かない/挙動が変わる)、セキュリティ(クリックで任意コマンドが実行され得る)、およびシェルとの連携(クリックでシェルのカレントディレクトリを直接変えるのは仕組みの工夫が必要)が挙げられます。
具体的実装のパターン例:
- ezaの出力整形を行い、各行にOSC 8で独自URI(例: clickable://cd?path=…)を付与。システムのURIハンドラをそのURIに紐づけ、ハンドラがアクティブシェルに対してディレクトリ変更を反映する仕組みをとる(ハンドラはtmux/kittyのremote APIやシェルソケットへ通知)。
- Kittyのremote controlを使い、クリックでkitty側が専用のコマンドを実行、それを受けて端末内でシェルの状態を書き換える補助スクリプトに橋渡しする方法。
- 単純にクリックで外部アプリ(ファイラーやエディタ)を開くユースケースに絞れば、OSC 8のみで完結させることも可能。
導入にあたっては、Kittyバイナリの入手(公式配布)、Homebrew等でのezaインストール、シェルプロファイル(bash/zsh/fish)へのエイリアスや関数追加が想定されます。互換性を高めるなら、Kitty非対応時にはフォールバックで通常のeza出力に戻る仕組みが望ましいでしょう。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file
まとめ
Kittyとezaを活用した、クリックでナビゲーションする軽量なターミナル補助ツールです。
リポジトリ情報:
- 名前: clickable-terminal
- 説明: 説明なし
- スター数: 6
- 言語: null
- URL: https://github.com/philfung/clickable-terminal
- オーナー: philfung
- アバター: https://avatars.githubusercontent.com/u/1054593?v=4
READMEの抜粋:
🖱️ Clickable Terminal
Navigate your directories like a pro. This setup lets you click icon-enhanced folders and filenames to move through your filesystem.
1. Prereqs
Ensure you have the necessary tools installed:
- Install Kitty Terminal.
- Install eza, a modern
lsreplacement.brew install eza