Como eu defino o título de Terminal.app com o fish shell?

2

Estou experimentando o fish shell no Mac OS X, usando MacPorts. Eu gostaria de ter o título da minha janela do Terminal como meu diretório atual. Atualmente, o título apenas diz

Terminal - fish - 80x24

De acordo com a documentação do fish, a função fish_title padrão deve fornecer esse comportamento. Não faz a coisa certa no Terminal.app, embora funcione com o iTerm . Definir minha própria função fish_title não resolve o problema.

Alguém conseguiu fazer isso funcionar?

    
por Lorin Hochstein 15.12.2009 / 18:41

3 respostas

2

Eu instalei peixes (1.23.1) para investigar isso. O peixe só atualiza o título se $TERM for um dos seguintes: xterm , screen , nxterm , rxvt . Caso contrário, nunca chama a função fish_title .

O valor padrão do terminal é xterm-256color e, antes do Mac OS X Lion 10.7, era xterm-color , nenhum dos quais é reconhecido pelo peixe. Fish está simplesmente sendo excessivamente conservador sobre quais valores terminfo ele acredita suportar esse recurso. fish_title não é chamado para qualquer xterm* variantes, por exemplo.

Para contornar essa limitação de peixes, você pode definir $TERM para xterm . A maneira mais simples de fazer isso é com uma configuração de preferência de terminal:

Terminal > Preferences > Settings > [profile] > Advanced > Declare terminal as

Selecione xterm no menu pop-up. Essa preferência controla o valor de $TERM (isso é tudo o que faz).

Observe que usar xterm em vez do padrão do Terminal pode desativar algumas funcionalidades do terminal ou, antes do Lion, causar mau comportamento devido a incompatibilidades entre a descrição xterm terminfo e versões mais antigas do Terminal.

Portanto, se o peixe não for seu shell padrão, talvez você queira alterar apenas $TERM ao invocar peixes. por exemplo, você pode invocar peixes com TERM=xterm fish de um shell ou criar um perfil de configurações do Terminal personalizado apenas para executar fish (você pode definir a preferência "Executar comando" para invocar fish, criando uma nova janela ou guia de terminal com este perfil irá executar automaticamente o peixe).

Ou, se você não tem vergonha de modificar o peixe: depois de instalar o MacPorts ou o Fink, você tem as fontes na sua máquina e pode estender sua lista de valores $ TERM reconhecidos ou até mesmo atualizar o código para permitir sufixos nos valores reconhecidos. Por exemplo, deve pelo menos permitir quaisquer valores que comecem com xterm ou screen . Caso contrário, nem funcionará com as variantes screen comuns. E se você fizer isso, por favor, contribua de volta para o projeto de peixe.

    
por 29.08.2011 / 12:33
6

Se você encontrou esta pergunta perguntando como alterar o título da janela / guia no peixe, e a função fish_title funciona para você (veja Resposta de Chris Page , então aqui está um exemplo que define o título para usar uma versão abreviada do seu diretório de trabalho.

$ funced fish_title

function fish_title
    if [ $_ = 'fish' ]
        echo (prompt_pwd)
    else
        echo $_
    end
end

$ funcsave fish_title
    
por 02.09.2013 / 07:15
-1

É provável que algo tenha a ver com a configuração de Terminal.app . Estou executando o Terminal 2.0.2 no Leopard, o que me permite configurar o título da janela por meio das preferências (consulte as configurações - > janela).

É possível que a ativação do 'nome do comando do shell' possa obter o resultado desejado. O padrão é apenas exibir Terminal - $process - $size provavelmente sobrepondo o ambiente de peixes.

    
por 16.12.2009 / 00:10