← XeFM English | 日本語 · crftwr/xefm on GitHub · craftware

XeFM デスクトップモードガイド

English | 日本語

概要

XeFM は、Windows と macOS で GPU アクセラレーションを使うネイティブのデスクトップアプリケーションとして動作できます。ターミナルモードでおなじみの強力なキーボード中心のインターフェースはそのままに、モダンなウィンドウ環境で使えます。

クイックスタート

使い始めるには

デスクトップ版のパッケージをインストールしてください。 これが XeFM をデスクトップアプリとして動かす正式な方法です。ネイティブの .app(macOS)または自己完結した XeFM.exe のフォルダー(Windows)で、Python が同梱されているので、自分で Python をインストールする必要はありません。Windows では Microsoft Store からインストールします。macOS の DMG(と Windows のポータブル zip)は GitHub の最新リリース で公開されています。手順は次のセクションで説明します。

あとはほかのアプリケーションと同じように起動します。macOS では Launchpad、Spotlight、Dock から、Windows ではスタートメニューやタスクバーにピン留めしたショートカットからです。

xefm --backend gui ではいけないのはなぜですか?

--backend gui フラグを使うと、同じウィンドウをターミナルから開けます。このフラグがあるのは、XeFM の開発にこの方法を使うためです。実際に XeFM を使う方法としては、次の 3 つの理由でおすすめできません。

ソースのチェックアウトから XeFM そのものを開発するときは、--backend gui がやはり適切な方法です。編集のたびにアプリバンドルを作り直していては時間がかかりすぎるからです。

python3 -m xefm --backend gui   # from a checkout
make run-gui                    # the same thing, through .venv

デスクトップアプリのパッケージのインストール

プラットフォーム インストール方法 署名
Windows 10/11 x64 Microsoft Store(推奨) あり — Microsoft による署名
Windows 10/11 x64 XeFM-<version>-win64.zip(ポータブル版の代替手段) なし — 一度だけブロックの解除が必要
macOS 12+(Apple Silicon) XeFM-<version>-macos.dmg あり — Apple Developer ID
macOS 12+(Apple Silicon) Homebrew:brew install --cask crftwr/tap/xefm(中身は同じ DMG) あり — Apple Developer ID

安定版のリリースには、すぐに実行できる DMG と zip が添付されます。ただし、1 つのプラットフォームの修正だけを含むリリースにはそのプラットフォームのビルドしか添付されないことがあるので、最新の zip や DMG がそれより前のタグにある場合があります。最新リリースのリンクは、常に最新の安定版リリースを指します。特定のリリースに直接リンクすることもできます(例:https://github.com/crftwr/xefm/releases/tag/v1.0.1)。

Windows — Microsoft Store のパッケージ

Store のページ から、またはシェルからインストールします。

winget install --id 9PK2X44W810V --source msstore

Store のパッケージは認定の過程で Microsoft が署名するので、SmartScreen の警告は出ません。スタートメニューに登録され、Store を通じて自動で更新され、設定 → アプリ からアンインストールできます。設定は %USERPROFILE%\.xefm\ に保存されて、ほかの方法でインストールした XeFM とも共有され、そのフォルダーを自分で削除しない限りアンインストール後も残ります。

macOS — DMG

  1. リリースのページから XeFM-<version>-macos.dmg をダウンロードします。
  2. ダブルクリックして、XeFM を アプリケーション のショートカットにドラッグします。
  3. ディスクイメージを取り出し、Launchpad か Spotlight から XeFM を起動します。

アプリは作者の Apple Developer ID で署名されているので、Gatekeeper は普通に開きます。もし macOS が 「開発元を検証できないため、XeFM を開けません」 と表示して開かない場合(普通でない経路でダウンロードして quarantine 属性が残ったときに起こります)は、アプリケーション のアプリを右クリックして 開く を選び、確認してください。以後はずっと許可されます。

削除するには、XeFM.app をゴミ箱にドラッグします。設定は ~/.xefm/ にあり、別に削除できます。

macOS — Homebrew

brew install --cask crftwr/tap/xefm

これで同じ公証済みの DMG が アプリケーション にインストールされ、brew upgrade --cask xefm で新しいリリースごとに更新できます。すでに DMG から手動でインストールしている場合は、--adopt を付けてください。Homebrew が上書きを拒否する代わりに、そのコピーを管理下に置きます。brew uninstall --cask xefm でアプリが削除されます。ターミナルアプリも ~/.xefm/ を読むので、--zap を付けてもこのフォルダーは残ります。

cask がインストールするのはデスクトップアプリだけです。--cask を付けない formula の brew install crftwr/tap/xefm はターミナルアプリです。モードの切り替えを参照してください。

Windows — ポータブル zip

zip は Store からのインストールに代わる手段で、インストーラーではなくポータブルなフォルダーです。展開して XeFM.exe を実行するだけです。MSI はなく、レジストリには何も書き込まれず、管理者権限も必要ありません。Store を使えないマシンで使う場合や、USB メモリやネットワーク共有から実行できるコピーが欲しい場合に使ってください。

認定の過程で Microsoft が署名する Store のパッケージとは違い、GitHub Releases の zip には署名がありません。下で説明する警告はこれが原因です。

  1. 最初に zip のブロックを解除します。 ダウンロードした XeFM-<version>-win64.zip を右クリック → Properties(プロパティ)→ General(全般)タブの下部にある Unblock(許可する)にチェック → OK。

    Windows はインターネットからダウンロードしたファイルに Mark of the Web を付けます。このマークが付いた zip を展開すると、中のすべてのファイルにマークがコピーされます。展開する前に zip のブロックを解除すれば、すべてのマークを一度に消せます。PowerShell では次のコマンドで同じことができます。

    Unblock-File .\XeFM-<version>-win64.zip
    
  2. XeFM フォルダーを使いやすい場所に展開します。
    • %LOCALAPPDATA%\Programs\XeFM — ユーザーごと。管理者への昇格は不要
    • C:\Program Files\XeFM — すべてのユーザー。管理者権限が必要
  3. XeFM.exe を実行します。 手順 1 を飛ばした場合は、SmartScreen が 「Windows によって PC が保護されました」 と表示します。More info(詳細情報)をクリックしてから Run anyway(実行)をクリックしてください。この警告はダウンロードしたコピーごとに一度だけ表示され、起動のたびには出ません。

  4. 省略可能: XeFM.exe を右クリック → Pin to Start(スタートにピン留めする)/Create shortcut(ショートカットの作成)で、すぐに起動できるようにします。

削除するには、展開したフォルダーを削除します(設定も消したい場合は %USERPROFILE%\.xefm\ も削除します)。

ダウンロードできる .msix がないのはなぜですか? リポジトリでは .msix をビルドできます(make windows-msix)。しかし、MSIX は署名されていないと Windows がインストールしません。署名なしのビルドは Microsoft Store に提出するためだけのもので、Microsoft が認定の過程で署名します。そのため、ダウンロードできる .msix を用意してもインストールできないだけです。Store 以外では、ポータブル zip がインストールできる形式です。

署名なしのバイナリを実行したくない場合は? Microsoft Store からインストールするか(Store のパッケージは Microsoft が署名しています)、PyPI からインストールして(pipx install xefm)XeFM をターミナルモードで使ってください。

初回起動

XeFM をデスクトップモードで起動すると、次のようになります。

  1. ネイティブのウィンドウが表示されます
  2. インターフェースはターミナルモードとまったく同じです
  3. キーボードショートカットはすべて同じように動作します
  4. ウィンドウのサイズを変えたり、フルスクリーンにしたりできます

機能

ネイティブの macOS 環境

パフォーマンス上の利点

表示の改善

設定

バックエンドの選択

インストールしたデスクトップ版のパッケージは、常にデスクトップモードで起動します。ランチャーがネイティブのバックエンドを選ぶので、引数を渡す必要も設定する必要もありません。

--backend フラグが意味を持つのは、Python 環境にインストールした XeFM やソースのチェックアウトから実行する場合だけです。その場合の既定はターミナルモードで、それを変える設定ファイルのキーはありません。デスクトップモードは --backend gui(別名 macos/windows)ですが、上の Why not xefm --backend gui? で説明した注意点があります。

外観のカスタマイズ

フォントの設定は ~/.xefm/config.py にあります(デスクトップ/GUI モードでのみ有効です)。

MONO_FONT_NAME = 'Menlo'   # monospaced face for aligned columns (None = bundled default)
UI_FONT_NAME  = None       # proportional face for names/labels (None = bundled/OS default)
FONT_SIZE     = 12         # point size applied to both faces (8–72)

ウィンドウのサイズと位置は、実行をまたいで自動的に記憶されます(macOS ネイティブのウィンドウ自動保存を使います)。ウィンドウの位置やサイズを指定する設定キーはありません。

使えるフォント

macOS でよく使われる等幅フォントは次のとおりです。

内蔵フォント:

追加のフォント(インストールされている場合):

インストールされているフォントを確認するには、Font Book.app を開き、「固定幅」(等幅)で絞り込みます。

フォントサイズの目安

使い方

デスクトップモードの起動

Launchpad、Spotlight、Dock(macOS)、またはスタートメニューやピン留めしたショートカット(Windows)から XeFM を開きます。インストールしたパッケージにはフラグは必要ありません。

開発中にソースのチェックアウトから実行する場合は、--backend で描画方式を選びます。

# Terminal mode (the default)
python3 -m xefm

# Desktop mode — development only, see "Why not xefm --backend gui?"
python3 -m xefm --backend gui

モードの切り替え

ターミナルモードは、PyPI からのインストール(pipx install xefm)、Homebrew の formula(brew install crftwr/tap/xefm)、またはソースのチェックアウトで使えます。デスクトップ版のパッケージは自己完結したアプリケーションで、PATH に xefm コマンドを置かないので、2 つのインストールは互いに置き換わることなく共存します。

xefm                        # terminal mode
xefm --backend tui          # the same thing, stated explicitly

設定、お気に入り、履歴はすべて ~/.xefm/ にあり、デスクトップアプリとターミナルモードで共有されます。

キーボードショートカット

デスクトップモードでも、すべてのキーバインドが同じように動作します。同じキーマップだからです。デスクトップのウィンドウでは、2 つのアクション(OS のアプリでファイルを開く操作と、macOS でのテキストのコピー)に、プラットフォーム標準のキーの組み合わせがもう 1 つ割り当てられます。それ以外はすべてターミナルと共通です。~/.xefm/config.py の “Three cases” を参照してください。

F1 を押せば、いつでも設定で使われているキーを確認できます。

ウィンドウの管理

サイズ変更:

フルスクリーン:

複数のウィンドウ:

終了:

トラブルシューティング

デスクトップモードが起動しない

問題:デスクトップモードが起動しない、またはターミナルモードで起動してしまう。

解決方法:

  1. Windows か macOS で実行しているか確認します。Linux にはデスクトップのバックエンドがありません。
    uname -s  # macOS shows "Darwin"
    
  2. macOS では、PyObjC がインストール後も残っているか確認します(PyObjC は XeFM と一緒にインストールされるので、ここで失敗する場合は環境が壊れています。XeFM をインストールし直してください)。
    python3 -c "import objc; print('PyObjC OK')"
    
  3. Python のバージョンを確認します。
    python3 --version  # Should be 3.10 or higher
    

ウィンドウが表示されない

問題:デスクトップモードは起動するが、ウィンドウが表示されない。

解決方法:

  1. コンソールの出力にエラーメッセージがないか確認します
  2. まずターミナルモードで XeFM が動作するか確認します。
    python3 -m xefm --backend tui
    
  3. macOS のバージョンを確認します(26 以降が必要です)
  4. Mac を再起動してからもう一度試します

フォントが見つからない

問題:フォントが利用できないというエラーメッセージが表示される。

解決方法:

  1. フォント名のつづりを確認します(大文字と小文字を区別します)。
    MONO_FONT_NAME = 'Menlo'  # Correct
    MONO_FONT_NAME = 'menlo'  # Wrong - case matters
    
  2. フォントがインストールされているか確認します。
    • Font Book.app を開きます
    • フォント名で検索します
    • 等幅フォントは「固定幅」のカテゴリーで確認します
  3. 既定のフォントを使います。
    MONO_FONT_NAME = 'Menlo'  # Always available on macOS
    
  4. フォントの設定を削除して既定を使います。
    # Comment out or remove this line
    # MONO_FONT_NAME = 'CustomFont'
    

パフォーマンスの問題

問題:デスクトップモードの動作が遅い、または引っかかる。

解決方法:

  1. アクティビティモニタを確認します。
    • アクティビティモニタを開きます
    • XeFM のプロセスを探します
    • CPU と GPU の使用率を確認します
  2. ウィンドウのサイズを変えて小さくします(サイズは次回のために記憶されます)。

  3. 別のフォントを試します。
    MONO_FONT_NAME = 'Monaco'  # Simpler font
    
  4. ほかのアプリケーションを閉じてリソースを空けます

  5. デスクトップモードは 60 FPS で動作するはずです。そうでない場合は、次の点を確認します。
    • GPU に負荷をかけるほかのアプリケーション
    • macOS のバージョン(古いバージョンでは遅くなることがあります)
    • 使用できるシステムメモリ

色がおかしい

問題:色がターミナルモードと違って見える。

説明:デスクトップモードは True RGB カラーを使うので、色数の限られたターミナルモードのパレットとは違って見えることがあります。これは想定どおりの動作で、より正確な色が表示されています。

解決方法:

  1. 設定で配色を調整します
  2. View → Next Theme でテーマを順に切り替えるか、View → Theme から選びます
  3. デスクトップモードの色はより正確になるはずで、悪くなることはありません

テキストの描画の問題

問題:テキストがぼやける、または位置がずれる。

解決方法:

  1. 別のフォントサイズを試します。
    FONT_SIZE = 14  # Try different sizes
    
  2. 別のフォントを使います。
    MONO_FONT_NAME = 'Monaco'  # Try different fonts
    
  3. macOS のシステム環境設定で、ディスプレイの拡大縮小の設定を確認します

  4. 等幅(固定幅)のフォントを使っていることを確認します

比較:ターミナルモードとデスクトップモード

項目 ターミナルモード デスクトップモード
プラットフォーム すべて(macOS、Linux、Windows) Windows と macOS
依存関係 Python のみ Python(macOS では PyObjC も。自動でインストールされます)
ウィンドウ ターミナルのウィンドウ ネイティブのデスクトップウィンドウ
描画 ターミナルによる描画 GPU アクセラレーション
パフォーマンス 良好 非常に良好(60 FPS)
色 ターミナルのパレット True RGB
フォント ターミナルのフォント カスタマイズ可能
サイズ変更 ターミナルのサイズ変更 ネイティブのウィンドウのサイズ変更
フルスクリーン ターミナルのフルスクリーン ネイティブのフルスクリーン
キーボード 同じ 同じ
機能 すべての機能 すべての機能

おすすめの使い方

デスクトップモードが向いている場面

おすすめの用途:

ターミナルモードが向いている場面

おすすめの用途:

使い分けの方法

柔軟な使い方:

実行ごとに選ぶ:デスクトップモードではインストールした XeFM アプリを開き、ターミナルモードではターミナルで xefm を実行します。2 つは共存し、~/.xefm/ を共有するので、切り替える操作は何もありません。作業に合うほうを選んでください。

高度なトピック

macOS との統合

デスクトップとの統合は、XeFM.app をインストールすることで機能します。すべてアプリバンドルによるもので、ランチャースクリプトや Automator のラッパーは必要ありません。

このガイドの古い版では、Dock や Spotlight に項目を作るために、python3 -m xefm --backend gui をシェルスクリプトや Automator のアプリケーションで包む方法を紹介していました。その方法は使わないでください。それこそが、Why not xefm --backend gui? で説明した、Python の汎用アイコンが表示されたり、アクセス権限の確認が別のアプリのものとして扱われたりする構成です。代わりに .app をインストールしてください。

起動時のディレクトリ

パッケージ版のアプリはコマンドラインの引数を取りません。ランチャーはネイティブのバックエンドで XeFM を起動するだけなので、--left/--right はコマンドラインから実行するときにしか使えません。

コマンドラインでも、これらが必要になることはあまりありません。各ペインのディレクトリは終了時に ~/.xefm/state.db に保存され、次の起動時に復元されるので、デスクトップアプリは前回の続きから開きます。別の場所に移動するには、お気に入りのダイアログ(Go → Go to Favorite…)を使ってください。

ヘルプ

ここに載っていない問題が起きた場合は、次のようにしてください。

  1. コンソールの出力にエラーメッセージがないか確認します
  2. ターミナルモードを試して、デスクトップ特有の問題かどうかを切り分けます
  3. ユーザーガイドを確認します
  4. 次の情報を添えて GitHub で問題を報告します。
    • macOS のバージョン
    • Python のバージョン
    • PyObjC のバージョン
    • コンソールの出力
    • 再現手順

まとめ

デスクトップモードは、XeFM の強力なキーボード中心のインターフェースはそのままに、モダンでネイティブな macOS 環境を提供します。GPU アクセラレーション、True RGB カラー、フォントのカスタマイズにより、ターミナルモードとの完全な互換性を保ちながら、macOS ユーザーにより快適な環境を提供します。

主な利点:

ぜひデスクトップモードを試して、まったく新しい XeFM を体験してください!