FileTypeGuard — ファイルタイプ関連付けの保護ツール
概要
FileTypeGuardは「Your files, always opening your way.」を掲げるmacOS向けの小さなユーティリティです。ユーザーが指定した既定のアプリ(例:PDFはPreview)をロックして監視し、他のアプリによって関連付けが書き換えられた場合に、元の設定を自動的に復元します。インストールやアップデートで知らないうちに関連付けが変わってしまう問題を繰り返し修正する手間を減らすことを目的とし、Swiftで実装されたシンプルな設計が特徴です。
リポジトリの統計情報
- スター数: 9
- フォーク数: 0
- ウォッチャー数: 9
- コミット数: 2
- ファイル数: 7
- メインの言語: Swift
主な特徴
- ファイルタイプ(拡張子/UTI)ごとの関連付けを「ロック」して保持
- 他アプリによる変更を検知すると自動で元に戻す復元機能
- 軽量かつネイティブなSwift製でSwift Package Managerに対応
- テストコード(Tests)を含み、基本的な振る舞いを検証
技術的なポイント
FileTypeGuardはmacOSのファイル関連付け(Launch Servicesに管理されるデフォルトアプリ設定)を扱うユーティリティです。技術的には「現在の関連付けをスナップショットして保存」し、「変化を検知した際に保存しておいた望ましい状態を再適用する」というシンプルなワークフローになります。検知手段としては、Launch Servicesの設定ファイルやシステムAPIをポーリングする方法、もしくは関連するPreferenceファイルやシステム通知を監視するアプローチが考えられます。復元処理はmacOSのLaunch Services API(Content Type / UTIに対する既定ハンドラの設定)や公開コマンドラインツールを呼び出して行うのが一般的で、FileTypeGuardも同様の手段でデフォルトハンドラを書き戻している想定です。
設計面ではSwift Packageとして構成されているため、モジュール性が高く、他プロジェクトへの組み込みや配布が容易です。軽量化を優先した設計のため、常駐プロセスとしては最小限の監視ループまたはユーザー起動時のエージェント的な動作で済ませる実装が想定されます。権限面では、ユーザーのLaunch Services設定を書き換える操作はユーザーコンテキストで実行可能ですが、サンドボックスや権限制約に注意が必要です。さらに、関連付けの復元は複数のアプリやUTIが絡むため競合状態が発生し得ます。FileTypeGuardは「望ましい設定の記録」と「競合時の再適用」を繰り返すことで、継続的にユーザーの期待する挙動を保つ点が評価できます。
テストフォルダを持ち、自動化された振る舞い検証が整備されているため、将来的な機能追加や修正の信頼性が高められます。一方で、macOSの内部仕様変更(Launch Servicesの挙動やAPIの非推奨化)には継続的なメンテナンスが必要です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- FileTypeGuard: dir
- Package.swift: file
- README.md: file
- Tests: dir
…他 2 ファイル
まとめ
関連付けの乗っ取りを自動で防ぐ、シンプルで実用的なmacOSユーティリティです。
リポジトリ情報:
- 名前: FileTypeGuard
- 説明: Keep your files opening your way.
- スター数: 9
- 言語: Swift
- URL: https://github.com/yibie/FileTypeGuard
- オーナー: yibie
- アバター: https://avatars.githubusercontent.com/u/365484?v=4
READMEの抜粋:
FileTypeGuard
Your files, always opening your way.
A lightweight macOS utility that locks your file type associations and automatically restores them when third-party apps change them without your permission.
FileTypeGuard Demo
The Problem
Many apps silently hijack your default file associations during installation or updates. You set Preview as your PDF reader, then one day Adobe Acrobat takes over. You fix it, and it happens again. FileTypeGuard puts an end to …