Comando customizado do Gnome-terminal e diretório de trabalho dinâmico

2

Isso é uma espécie de acompanhamento de outra pergunta .

Eu uso um comando personalizado no meu perfil do gnome-terminal ( /usr/bin/fish ). Ao usar o Ubuntu 14.04, um Ctrl-Shift-N abriu uma nova janela do terminal gnome no diretório mesmo como o terminal atual. Com 16.04 isso mudou e agora ele sempre abre em $HOME . Eu quero o velho comportamento.

Isso não tem nada a ver com o fornecimento de /etc/profile.d/vte.sh . Fish faz isso corretamente, pois eu posso observar as mudanças de diretório na barra de título. Se eu desmarcar a caixa de comando personalizada no meu perfil do gnome-terminal, a nova janela do terminal usará corretamente o diretório atual. No entanto, ele usa o shell padrão do meu sistema: bash.

Não consigo alterar o shell do meu sistema ( chsh ) porque ele é compartilhado entre outras máquinas, nas quais o peixe não está disponível.

Eu não vejo uma maneira de corrigir isso do peixe, já que o diretório atual dos terminais não está disponível.

Edit: Como isso é uma regressão no Ubuntu, eu também relatei isso como # 1609342 para Ubuntu .

    
por qznc 03.08.2016 / 11:30

3 respostas

2

Como Gilles mencionou em um comentário, a configuração da variável SHELL também funciona. Não tem desvantagem da minha outra resposta. Aqui estão os detalhes:

  1. Crie .xsessionrc no seu diretório pessoal com o conteúdo:

    SHELL=/usr/bin/fish
    
  2. Desative o comando personalizado nas opções de perfil do terminal gnome.

  3. Faça logout e novamente.

O terminal Gnome deve respeitar a variável e usar esse comando personalizado. Faz para mim no Ubuntu 16.04.1 e resolve o problema do diretório de trabalho.

    
por 04.08.2016 / 09:17
0

Uma solução alternativa seria adicionar o seguinte a .bashrc :

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

A desvantagem: Como usuário de peixes, às vezes você precisa de um shell compatível com POSIX. Se você executar bash , o hack acima lhe dará outra concha de peixe.

    
por 03.08.2016 / 12:28
0

Para aqueles que estão executando uma sessão do Wayland, esta solução alternativa com base na configuração da variável SHELL não funcionará porque o Wayland não faz a origem quaisquer arquivos de shell, incluindo .xsessionc, .profile ou .bashrc.

Uma variação da solução alternativa que funcionou para mim foi criar um lançador personalizado para o Terminal do GNOME que define a variável de ambiente SHELL com env:

env SHELL=/usr/bin/fish gnome-terminal
    
por 29.04.2018 / 06:38