Macのファイル管理をオープンソースで揃える|候補と限界
mac ファイル管理オープンソースという条件で探し始めるとき、動機はたいてい2つ重なっています。中身を読めて、ライセンスが切れず、月額もかからない道具がよいという方針。そしてFinderに対する具体的な不満です。この2つは似て見えて別物で、方針を満たす候補と不満を解消する候補は一致しないことがあります。この記事では、その2つを先に切り分けたうえで、候補と限界を並べます。
選ぶ理由が費用だけなら、判断を誤りやすい
無料であることは、オープンソースを選ぶ理由の中では最も弱い部類に入ります。使い始めて1週間を過ぎたあとに効いてくるのは別の点です。
ひとつは中身を確認できることです。ファイル管理の道具は、機密の資料も私的な書類も含めて、そのMac上のほぼ全部のファイルを見る位置にあります。何を外部へ送っているかを自分で確かめられる状態には、費用とは別の意味があります。
もうひとつは寿命です。商用のアプリは販売が終わると、最後の版のままOSの更新で動かなくなるまで使い続けることになります。ソースが公開されていれば、開発が止まっても引き継ぎが起きます。この記事で挙げる候補にも、開発の交代を経て続いているものが含まれます。
用語の範囲については、Open Source Initiativeの定義が基準になります。
Open source doesn't just mean access to the source code. The distribution terms of open source software must comply with the following criteria. 出典: opensource.org
ソースが見えるだけでは足りず、再配布や改変の条件まで含めて満たす必要がある、という趣旨です。Macのファイル管理アプリには「無料だがソースは非公開」という製品がいくつもあります。目的が監査可能性なら、価格ではなくライセンスの欄を最初に見ることになります。
なお、費用が完全にゼロになるとは限りません。オープンソースの側は、Appleの開発者プログラムへの登録と署名や公証の費用を毎回負担できるとは限らず、その差が初回起動時に表れます。ここで削除してしまう人が最も多いところです。
最初につまずくのはアプリの出来ではなく権限
macOSはファイル管理アプリを特別扱いしません。デスクトップ、書類、ダウンロード、ネットワークボリューム、iCloud Driveへのアクセスは明示的な許可が要る扱いになっており、許可のないアプリではそれらのフォルダが空に見えたり、原因の分からないエラーが出たりします。
対処はシステム設定のプライバシーとセキュリティです。「ファイルとフォルダ」でフォルダごとに許可するか、「フルディスクアクセス」でまとめて許可します。Finder以外のファイル管理アプリは、オープンソースか有料かにかかわらずこの作業が必要です。
見落としやすいのがサンドボックスの扱いです。同じプロジェクトがMac App Store版と直接ダウンロード版の両方を出しているとき、その2つは同じアプリではありません。Nimble Commanderは公開ドキュメントでこの差を明示しており、サンドボックス版では管理者モード、ネットワーク共有のマウント、そして統合ターミナルが使えないと書かれています。理由は、サンドボックス化されたアプリが他のプロセスへ終了シグナルを送れないためです。
つまり、探していた機能そのものがApp Store版だけ抜けている場合があります。プロジェクトのサイトかHomebrewから入れれば戻りますが、その代わり初回起動時にGatekeeperの警告を解除する手順が入ります。署名のない配布物なら、副ボタンのクリックから開くか、ブロックされた直後にプライバシーとセキュリティで許可します。
ターミナル常駐型が最も手厚い
Macで活発に保守されているオープンソースのファイル管理は、ターミナルの中で動くものに偏っています。これは偶然ではありません。複数のOSで同じものが動き、署名や公証を必要とせず、SSH越しでも手元と同じ操作になるためです。
| 名前 | ライセンス | 画面構成 | 導入 |
|---|---|---|---|
| Midnight Commander | GPL-3.0以降 | 2画面、ファンクションキーのメニュー | brew install midnight-commander |
| ranger | GPL-3.0以降 | 3列、vi風のキー操作 | brew install ranger |
| nnn | BSD 2条項 | 1画面、プラグインで拡張 | brew install nnn |
| lf | MIT | 3列、Goで実装 | brew install lf |
| yazi | MIT | 3列、Rustで実装 | brew install yazi |
Midnight Commanderはこの中で最も古く、画面下部にコマンド行を持つ2画面型です。rangerは3列構成を広めた存在で、左が親フォルダ、中央が現在地、右が選択中の項目のプレビューになります。lfとyaziは同じ構成のまま依存を減らし、起動を速くした系統です。
引き換えに手放すのは、ターミナルの外で起きること全部です。ブラウザのアップロード欄へファイルを放り込む、チャットの入力欄へ落とす、Dockのアイコンへ重ねる、といった操作はFinderに戻ります。クイックルックに相当するプレビューは端末上の描画で代用するため、テキストは十分でも動画では差が出ます。Finderのタグもほぼ使えません。
1日の大半を既にターミナルの中で過ごしている人にとっては、これらは損失になりません。逆にGUIのアプリを行き来する時間が半分を占めるなら、この系統は置き換えではなく2つ目のファイル管理として増えることになります。道具を2つ併用する状態は、1つで我慢するより悪くなります。
GUI型の候補は3つに絞られる
画面付きの候補は数が少なく、その分だけ選択の軸がはっきりします。
Nimble Commanderは、広く使われている中では唯一のmacOSネイティブのオープンソースです。ソースはGPL-3.0で、直接配布版は無料、Homebrewからも入ります。キーボード操作を前提にした2画面型で、直接配布版にはターミナルの機能が組み込まれています。ターミナル側で cd を実行すると一覧の表示位置が変わり、一覧側でフォルダを移動するとシェルの作業ディレクトリも変わる、という双方向の同期が入っています。フォルダとシェルの分断に対して、オープンソースの範囲で最も近いところまで来ている実装です。
muCommanderはGPLで、Javaで書かれた複数OS対応の2画面型です。書庫、FTP、SFTP、SMBをローカルのフォルダと同じように扱える点が主な利点になります。引き換えに、Javaの実行環境の上で動くため見た目と操作感がMacのアプリとは異なり、起動も速くはありません。
Double CommanderはGPL-2.0で、Free PascalとLazarusで作られています。プロジェクトのサイトからmacOS向けの配布物が入手できます。Windowsの2画面型の系譜に最も忠実で、一括リネームとファイル操作のキュー管理が強い一方、macOSの流儀に合わせる作りにはなっていません。
この3つのいずれにもAIの機能はなく、シェルを内側に持つのは1つだけです。これは批判ではなく、有志の開発力がどこに向いているかの反映です。有料のAPIが前提になる機能は、寄付と無償の労力で回る体制とは相性がよくありません。
オープンソースの候補が届かない3つ
事前に知っておくと、拡張機能を探し回る2週間を節約できます。
1つ目はフォルダとシェルの分断です。ターミナル型はシェルの中に住むことで解決し、GUI型は前述の1本を除いてほとんど解決していません。毎日の手間が「ファイルの窓からパスをコピーしてターミナルの窓へ貼る」ことなら、候補の大半はそこに効きません。
2つ目はAIの利用です。原理としてはローカルのモデルを動かすことは可能ですが、保守されているmacOS向けのオープンソースのファイル管理で、それを機能として同梱しているものは見当たりません。フォルダとターミナルとAIが同じ窓にある形を求める場合、現時点では商用の製品が対象になります。その形が具体的に何を含むのかはできることに機能として並んでいるので、拡張機能の一覧と読み比べると差が分かります。
3つ目はiPhoneやiPadとの続きです。デスクトップ向けのオープンソースはMacの中で完結しており、端末をまたいだ時点で対象外になります。作業の途中でファイルが端末間を移動する使い方では、ここが「どこへ置いたか分からなくなる」問題の発生源になります。端末をまたぐ側の考え方はiPhone・iPadから続きをで扱っています。
半日で決め切るための試し方
機能の一覧を読み比べても結論は出ません。次の手順なら3時間ほどで決まります。
候補は2つに絞ります。5つ入れると比較にならず、どれも中途半端に覚えたまま終わります。上の表からターミナル型を1つ、GUI型を1つ選びます。GUI型は評価に入る前にフルディスクアクセスを許可しておきます。権限不足の症状は、壊れたアプリの挙動と見分けがつきません。
そのうえで、実際の作業を3つ流します。ダウンロードのフォルダから整理済みのプロジェクトフォルダへ一式を移す作業。規則に沿った一括リネーム。フォルダを開き、その場所でコマンドを1つ実行し、結果を確認する作業。それぞれ所要時間を測り、Finderに戻った回数を数えます。
分かれ目は3つ目です。アプリを切り替えずに終わったなら、その道具は分断を埋めています。別の窓が必要になったなら、それは閲覧の道具であって作業場ではありません。ファイル操作の出来がどれだけよくても、この判定は変わりません。この観点で系統ごとに整理したものが他のファイル管理との比較にあります。
負けたほうはその日のうちに削除します。2つ残すと、どちらも半端なまま定着しません。
内部の閲覧データから見える分かれ目
比較の情報を読む人の動きには、はっきりした分かれ方があります。ライセンスと導入方法の説明で満足して離脱する層と、そこから対応環境や費用の情報へ進む層です。前者はオープンソースであること自体が目的で、後者は既に具体的な不便を抱えています。
前者に必要なのは候補の一覧で、この記事の表がそのまま使えます。後者に必要なのは、上の3時間の手順です。動機を混ぜたまま探し続けると、方針は満たすが不便は消えない道具を選ぶことになります。実際、ターミナル型を導入したあとにGUI型を追加で入れる動きは珍しくなく、これは最初の切り分けが済んでいなかった結果です。
最後に確認する条件は、表示や操作の言語、対応するmacOSの版、費用の3つです。機能の検討が終わってから見ると比較が単純になります。それぞれ対応言語と料金に条件が並んでいます。導入前に出やすい疑問はよくある質問に集まっているので、判断が残っている箇所だけ拾う読み方が向いています。
順序としては、動機を切り分ける、権限を先に許可する、2つだけ試す、3つ目の作業で判定する、最後に環境と費用を見る、の5段階です。この順序を守れば、選び直しは起きにくくなります。
よくある質問
Finderを完全に置き換えられるオープンソースはありますか?
Finderの機能を全部置き換えるものはありません。タグ、iCloud Driveとの連携、OS標準のファイル選択画面などはmacOS側に組み込まれているためです。Nimble Commander、muCommander、Double CommanderはGPL系のライセンスで閲覧とファイル操作の層を置き換えますが、システム寄りの部分はFinderが担当し続けます。
導入したのにフォルダが空に見えるのはなぜですか?
不具合ではなく権限の問題であることがほとんどです。macOSはデスクトップ、書類、ダウンロード、ネットワークボリューム、iCloud Driveへのアクセスに明示的な許可を求めます。システム設定のプライバシーとセキュリティで、ファイルとフォルダから個別に許可するか、フルディスクアクセスでまとめて許可してください。
Mac App Store版と公式サイト版は同じものですか?
同じとは限りません。App Store版はサンドボックスが必須で、広い権限を要する機能が外れます。Nimble Commanderの場合、サンドボックス版には統合ターミナル、管理者モード、ネットワーク共有のマウントがないと公開ドキュメントに明記されています。導入前にプロジェクトの説明を確認してください。
オープンソースのファイル管理にAIの機能はありますか?
保守されているmacOS向けの選択肢で、AIの機能を同梱しているものは見当たりません。モデルの利用には有料のAPIか相応のローカル環境が要るためです。ファイルの閲覧とシェルとAIを1つの窓にまとめる形は、現時点では商用の製品が対象になります。