disk-insight v0.6.0 を GitHub に初公開しました

Rust + Tauri で作っている Windows 向けディスク使用量ビューア disk-insight を、ようやく GitHub に公開しました。

今回公開したのは正式版ではなく、v0.6.0 pre-release です。
まだ常用ツールとして完成したわけではありませんが、自分で使いながら改善していくための、最初の公開地点として区切りを付けました。

Repository:

https://github.com/iwadjp/disk-insight

Release:

v0.6.0 Pre-release

目次

disk-insight とは

disk-insight は、Windows のディスク容量を素早く確認するためのデスクトップアプリです。

目的は、単に「容量の大きいファイルを一覧する」ことではなく、TreeView を中心にして、

  • どのフォルダが容量を使っているのか
  • どこを詳しく確認すべきか
  • 削除や移動の前に、どの候補をレビューすべきか

を見つけやすくすることです。

自分の中では、WizTree のような高速ディスク使用量ビューアを強く意識しています。
ただし、WizTree のコピーを作りたいわけではなく、TreeView を中心にしつつ、ブックマーク、レビューリスト、Explorer への受け渡し、安全寄りの操作設計などを組み合わせた、自分が使いやすい形を探っています。

なぜ作ったのか

きっかけは、Cドライブの容量不足でした。

Windows 環境では、いつの間にか容量を使っているフォルダが増えます。
特に開発用 PC では、以下のようなものが溜まりやすいです。

  • node_modules
  • Rust / Cargo / target 配下
  • Gradle cache
  • Android / IDE / ブラウザ cache
  • VM や古いビルド成果物
  • 一時フォルダ
  • Recycle Bin

既存ツールでも容量は確認できます。
ただ、自分が本当に欲しいのは、次のような流れでした。

  1. 高速にスキャンする
  2. TreeView で大きい場所を見つける
  3. 気になる候補を Review list に入れる
  4. 必要なら Explorer で確認する
  5. 安全性を保ちながら、少しずつ整理する
  6. 再スキャンして容量の変化を見る

この流れを、自分の感覚に合わせて作りたかったのが disk-insight の出発点です。

v0.6.0 で公開した内容

v0.6.0 は、first public pre-release です。
主な機能は以下です。

  • TreeView-first のディスク使用量ナビゲーション
  • 容量比率を直感的に見る occupancy bar
  • All / Large review / Reviewable areas / Caution areas の表示切替
  • ブックマーク機能
  • セッション限定の Review list
  • Review list からのパス一括コピー
  • Explorer への handoff
  • public-safe demo data
  • Normal + Advanced の二層安全モデル
  • Advanced Mode 限定の Move to Recycle Bin
  • Settings ダイアログ
  • Refresh scan 後の TreeView 位置復元
  • Refresh scan 後の Review list サイズ更新
  • Drive / Used / Free / 使用率の見やすい compact summary

特に v0.6.0 公開直前では、見た目や日常操作の邪魔になる部分をかなり整理しました。

当初は Font size、Content width、Top N、Size metric、Load demo などをツールバー上に並べていました。
しかし、使ってみると通常操作時には邪魔でした。

そこで、ツールバーには日常的に触るものだけを残しました。

Drive / Advanced Mode / Settings / Scan

それ以外の設定項目は Settings ダイアログに移動しました。

この変更で、画面の主役が TreeView に戻った感覚があります。

安全モデル

disk-insight は、最初から「削除を強く勧めるツール」にはしない方針です。

通常は Normal Mode で使います。
Normal Mode では、破壊的なファイル操作は表示されません。

一方で、実際に容量整理をしていると「この場で Recycle Bin に移したい」と感じることもあります。
そのため、明示的に Advanced Mode を ON にした場合のみ、Move to Recycle Bin を使えるようにしています。

Advanced Mode はセッション限定です。
状態は保存しません。

さらに、Recycle Bin への移動時も確認ダイアログを出します。

このあたりは、便利さよりも安全側に寄せています。
特に会社 PC で使う場合は、既定の Normal Mode を使い、組織のセキュリティポリシーを優先する前提です。

また、アプリ自体は以下の方針です。

  • ネットワーク通信なし
  • テレメトリなし
  • 自動アップデータなし

公開前に悩んだこと

今回の first release までで、何度も方向性を見直しました。

最初は、表示パネルを増やせば便利になると思っていました。
Direct children、Largest items、Search inside、Bookmarks、Review list など、いろいろな部品を足していきました。

しかし、使ってみると、画面が複雑になりすぎました。

WizTree が強いのは、ほぼ TreeView だけで作業が完結するところです。
disk-insight でも、最終的には TreeView を主役に戻す必要がありました。

そのため、v0.6.0 までに以下のような整理をしました。

  • TreeView を大きくする
  • 右ペインは補助情報にする
  • Insights は折りたたむ
  • Bookmarks は右側に置く
  • Direct children は通常表示から外す
  • Settings は隠す
  • ツールバーは最小限にする

この整理を経て、ようやく「公開してもよい最低ライン」には近づいたと思います。

Refresh scan の改善

公開前の最後の polish で重視したのが、Refresh scan 後の違和感です。

ディスク整理では、スキャン後に Explorer などでファイルを消したり移動したりして、再スキャンすることがよくあります。

その時に TreeView が初期状態に戻ると、今どこを見ていたのか分からなくなります。

そこで v0.6.0 では、Refresh scan 後に、直前にフォーカスしていた path を使って TreeView の位置を復元するようにしました。

当初は、展開していた複数ノードをできるだけ復元する実装にしました。
しかし、複数ノードを戻すと画面が微妙に動き、かえって違和感がありました。

最終的には、以下の方針に落ち着きました。

  • 最後にフォーカスしていた path を優先する
  • なければ選択中 path を使う
  • その path の ancestor chain だけ展開する
  • target 自体は勝手に展開しない
  • target が削除済みなら、見つかる親フォルダまで fallback する

この方が、TreeView の作業感覚が安定しました。

Review list の改善

Review list は、後で確認したい候補を一時的に集めるためのリストです。

v0.6.0 では、Refresh scan 後に Review list の項目サイズも更新するようにしました。

以前は、再スキャンしても Review list 上のサイズが古いままでした。
これだと、容量整理をした後に「本当に減ったのか」が分かりにくくなります。

現在は、Refresh scan 後に path を再解決し、

  • 見つかった項目は最新サイズへ更新
  • 見つからない項目は not found 表示
  • unavailable な項目は unavailable 表示

にしています。

削除済みの項目を勝手にリストから消さないようにしたのもポイントです。
消えてしまうと、何が起きたか追いにくくなるためです。

Release package

今回の release package は以下です。

disk-insight-v0.6.0-windows-x64.zip

ZIP SHA256:

ec08abd9f4cdb8110374d1f16fd60d0b09c45126635d2f3d4500a80090a80f38

内容は以下です。

  • disk-insight-ui.exe
  • README.md
  • LICENSE
  • SECURITY-OVERVIEW.md
  • BUILD-INFO.txt
  • SHA256SUMS.txt

バイナリは未署名です。
そのため、SmartScreen や社内セキュリティ製品で警告される可能性があります。

無理に回避せず、組織や環境のルールを優先してください。

まだできていないこと

v0.6.0 は pre-release であり、完成版ではありません。

既知の制限も多くあります。

  • 未署名バイナリ
  • Windows / NTFS に強く依存
  • フルスキャンには管理者権限推奨
  • cleanup 分類は path-based heuristic
  • Large review は top scan results ベース
  • Reviewable / Caution areas は loaded tree rows ベース
  • 自動 cleanup はしない
  • move-to-folder は未実装
  • multi-select file operation は未実装
  • Explorer shell context menu 相当ではない
  • dark mode は未実装
  • サイズ表示は allocation-oriented で Explorer と一致しない場合がある

まだ、WizTree から完全に乗り換えられる段階ではありません。
ただ、自分が dogfooding しながら改善する土台としては、ここまで来られたと思います。

今後

今後は、まず自分で使い続けます。

次に見るポイントは以下です。

  • 実際に容量整理の場面で使いたくなるか
  • TreeView の読みやすさは十分か
  • Review list が本当に役に立つか
  • Bookmarks が日常的に便利か
  • Advanced Mode の操作は安全かつ実用的か
  • GitHub 公開後の README / Release 表示に違和感がないか

v0.6.0 は、完成というより、ようやく外に出せる形になった最初の節目です。

ここからは、実際の使用感を見ながら、v0.6.1 以降で少しずつ直していく予定です。