Gnome 터미널 사용자 정의 명령 및 동적 작업 디렉토리

Gnome 터미널 사용자 정의 명령 및 동적 작업 디렉토리

이것은다른 질문으로 후속 조치.

gnome-terminal 구성 파일에서 사용자 정의 command()를 사용하고 있습니다 /usr/bin/fish. Ubuntu 14.04를 사용하는 경우 Ctrl-Shift-N을 누르십시오.동일한디렉터리를 현재 터미널로 사용합니다. 16.04에서는 상황이 바뀌었고 이제는 항상 끝납니다 $HOME. 이전 동작을 원합니다.

이는 조달과는 아무런 관련이 없습니다 /etc/profile.d/vte.sh. Fish는 제목 표시줄에서 디렉토리 변경 사항을 관찰할 수 있으므로 이 작업을 올바르게 수행합니다. gnome-terminal 구성 파일에서 사용자 정의 명령 상자를 선택 취소하면 새 터미널 창에서 현재 디렉터리를 올바르게 사용합니다. 그러나 내 시스템의 기본 셸인 bash를 사용합니다.

chsh내 시스템 쉘( )은 다른 시스템에서 공유되고 Fish는 해당 시스템에서 사용할 수 없기 때문에 변경할 수 없습니다 .

현재 디렉토리를 터미널에서 사용할 수 없기 때문에 Fish에서 이 문제를 해결할 방법을 찾지 못했습니다.

편집: 이것은 우분투에서의 회귀이기 때문에 나도우분투에 #1609342로 보고하세요..

답변1

Gilles가 의견에서 언급했듯이 SHELL 변수 설정도 작동합니다. 다른 답변의 단점이 없습니다. 세부사항은 다음과 같습니다:

  1. .xsessionrc홈 디렉터리에 콘텐츠를 만듭니다.

    SHELL=/usr/bin/fish
    
  2. gnome-terminal 구성 파일 옵션에서 사용자 정의 명령을 비활성화합니다.

  3. 로그아웃했다가 다시 로그인하세요.

Gnome 터미널은 이 변수를 존중하고 이 사용자 정의 명령을 사용해야 합니다. Ubuntu 16.04.1에서 저에게 효과적이었고 작업 디렉토리 문제를 해결했습니다.

답변2

Wayland 세션을 운영하는 분들을 위해,이 솔루션SHELL 변수 설정을 기반으로 한 접근 방식은 Wayland가 .xsessionc, .profile 또는 .bashrc를 포함한 쉘 파일을 얻지 못하기 때문에 작동하지 않습니다.

나에게 도움이 된 해결 방법의 변형은 GNOME 터미널용 사용자 정의 실행 프로그램을 만들고 env를 사용하여 SHELL 환경 변수를 설정하는 것이었습니다.

env SHELL=/usr/bin/fish gnome-terminal

답변3

한 가지 해결 방법은 다음을 추가하는 것입니다 .bashrc.

if [ -f /usr/bin/fish ]; then
    exec /usr/bin/fish
fi

단점: Fish 사용자로서 POSIX 호환 쉘이 필요한 경우가 있습니다. 위의 해킹을 수행하면 bash또 다른 물고기 껍질을 얻을 수 있습니다.

관련 정보