私は最近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 $TERMCMD
Rangerは "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
。
フォローアップ - この機能のデザインはTERMCMD
2016年半ば以降大きく変わりませんでしたが、ソースコードの場所は変更されました。
この時間は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-emulator
GNOME端末開発者がコマンドラインインターフェースを文書化していないため、Debian開発者がこの回避策を提供したことです。
から引用バグ701691 - -eは1つの用語のみを受け入れます。他のすべての端末エミュレータは複数の用語を受け入れます。(開発者は修正を拒否し、「バグではない」とマークしました):
クリスチャン・パッシュ2013-06-06 16:02:54 UTC
gnome-terminalコマンドラインオプションのドキュメントはありません。
答え2
runner.py
私はそれが関係ないと確信しています。rifle.py
変更するファイルです。
375行目の周りに次の行があります。
cmd = [os.environ['TERMCMD'], '-e'] + cmd
'-e'
$ TERMCMDが何であるかによって、フラグを別のものに変更してみてください。私はいくつかの異なる端末をテストしましたが、これは私にとって効果的でした。
- gnome-terminal:
'--'
または に変更'-x'
- xfce4-ターミナル:
'-x'
- LXターミナル:
'-e'
- ペアリング端子:
'-x'
- ターミネーター:
'-x'
他の方々には確認してみませんでしたが、 の'--'
一つ'-e'
かもしれません'-x'
。