나는 최근에 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 터미널 개발자가 명령줄 인터페이스를 문서화하지 않았기 때문에 데비안 개발자가 이 해결 방법을 제공했다는 것입니다.
에서 인용버그 701691 – -e는 하나의 용어만 허용합니다. 다른 모든 터미널 에뮬레이터는 여러 용어를 허용합니다.(개발자는 수정을 거부하고 "버그가 아님"으로 표시했습니다):
크리스티안 퍼쉬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'
.