Rangerファイルマネージャ - xtermの代わりにgnome端末を開く

Rangerファイルマネージャ - xtermの代わりにgnome端末を開く

私は最近Rangerをデフォルトのファイルマネージャとして使い始めましたが、本当に気に入りました。 Rangerでオーディオやビデオを再生すると、mpvが新しいxtermウィンドウで開き、メディアの再生が開始されるようにRifle.confを変更しました。

しかし、可能であれば、Rangerにxtermの代わりにgnome-terminalを開くようにしたいと思います。そこには、このフラグを使用すると、プログラムが新しい端末で実行されることが/.config/ranger/rifle.confわかります。t

If $TERMCMD is not defined, rifle will attempt to extract it from $TERM

$TERMCMD.profileファイルと.bashrcファイルで設定しようとしましたが、echo $TERMCMDRangerは "gnome-terminal"を印刷してもxtermを開きます。 「gnome-terminal」の設定もめちゃくちゃにしましたが、$TERM混乱してそのままにすることにしました。

どんな提案がありますか?ありがとうございます!

ベストアンサー1

2017年現在のソースコード(ランナー.py) そうしました:

        term = os.environ.get('TERMCMD', os.environ.get('TERM'))
        if term not in get_executables():
            term = 'x-terminal-emulator'
        if term not in get_executables():
            term = 'xterm'
        if isinstance(action, str):
            action = term + ' -e ' + action
        else:
            action = [term, '-e'] + action

TERMCMDしたがって、xterm互換のプログラム名を-e。 Debian / Ubuntu / etcを使用している場合、Debianパッケージ作成者はこれらの機能の違いを隠すためにラッパーを提供しようとしましたx-terminal-emulator。これに該当する場合TERMCMDに設定できますx-terminal-emulator

フォローアップ - この機能のデザインはTERMCMD2016年半ば以降大きく変わりませんでしたが、ソースコードの場所は変更されました。

この時間はget_term:

def get_term():
    """Get the user terminal executable name.
    Either $TERMCMD, $TERM, "x-terminal-emulator" or "xterm", in this order.
    """
    command = environ.get('TERMCMD', environ.get('TERM'))
    if shlex.split(command)[0] not in get_executables():
        command = 'x-terminal-emulator'
        if command not in get_executables():
            command = 'xterm'
    return command

以前と同じように使用してくださいx-terminal-emulator

一つある関連TERMCMD使用rifle.py、(質問のように)端末を開くのではなく、コマンドを実行するために使用されます。とにかくレンジャーを使用する理由は、x-terminal-emulatorGNOME端末開発者がコマンドラインインターフェースを文書化していないため、Debian開発者がこの回避策を提供したことです。

から引用バグ701691 - -eは1つの用語のみを受け入れます。他のすべての端末エミュレータは複数の用語を受け入れます。(開発者は修正を拒否し、「バグではない」とマークしました):

クリスチャン・パッシュ2013-06-06 16:02:54 UTC

gnome-terminalコマンドラインオプションのドキュメントはありません。

おすすめ記事