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

外部ターミナル(デスクトップモード)

English | 日本語

ターミナルモードでは、XeFM はターミナルを必要とするものに自分のターミナルを貸します。サブシェル(subshell、Shift-X)や、'options': {'terminal': True} を指定した PROGRAMS のエントリ(vim、less、REPL など)です。デスクトップアプリには自前のターミナルがないので、代わりにターミナルを開きます。現在のディレクトリで、シェルまたはそのプログラムを実行する新しいターミナルウィンドウです。

そのため、同じ config.py がどちらのモードでも動きます。違いは次のとおりです。

terminal: True のプログラムがエラーで終了した場合は、Enter を押すまでウィンドウが開いたままになり、最後の出力を読めるようにします。サブシェルは、シェルが終了したときにそのターミナルが普段するのと同じようにウィンドウを閉じます。

ターミナルを選ぶ

~/.xefm/config.py の TERMINAL でアプリケーションを選びます。その中で動くシェルはこれまでどおり SUBSHELL で選びます。プラットフォームの既定のものを使うには、TERMINAL を None のままにしておきます。

プラットフォーム 既定
macOS Terminal.app
Windows インストールされていれば Windows Terminal(wt.exe)、なければ新しいコンソールウィンドウ

別のターミナルを使うには、そのコマンドラインを指定します。XeFM が実行したいものは末尾の引数として付け加えられるので、ターミナルにコマンドを実行させるときと同じ形で指定してください。

TERMINAL = ['open', '-a', 'iTerm']        # macOS: an app that runs a script it opens
TERMINAL = ['wezterm', 'start', '--']     # takes the command as trailing arguments
TERMINAL = ['alacritty', '-e']
TERMINAL = ['wt.exe', '-w', '0', 'nt']    # Windows Terminal: a tab in the current window

文字列でもかまいません('wezterm start --')。シェルと同じように分割されます。スペースを含む Windows のパスにはリストを使ってください。

何も開かない場合

ログペインに理由が表示されます。

関連項目