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.

하나 있다관련된사용TERMCMDrifle.py, (질문에서 묻는 것처럼) 터미널을 여는 것이 아니라 명령을 실행하는 데 사용됩니다. 어쨌든 레인저를 사용하는 이유는 x-terminal-emulatorGNOME 터미널 개발자가 명령줄 인터페이스를 문서화하지 않았기 때문에 데비안 개발자가 이 해결 방법을 제공했다는 것입니다.

에서 인용버그 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'.

관련 정보