Posso definir um título padrão para uma janela do tmux?


38

No momento, o título padrão é reattach-to-user-namespace(OS X), o que é bastante irritante. Existe uma opção que eu possa colocar no meu tmux.confpara obter outro título padrão?

Caso contrário, como eu faria uma ligação de chave que cria uma nova janela e me solicita um nome?



É sobre desativar a renomeação automática (o que eu já fiz), não sobre nomes padrão, certo?
JS-codificador

Eu acho que você está certo, desculpe!
22713 Fredrik Pihl

Eu uso set-option -g default-command "reattach-to-user-namespace -l zsh"e na maioria das vezes acabo com uma janela chamada zsh, conforme desejado. Por razões desconhecidas, às vezes o nome não muda e a janela é chamada reattach-to-user-namespace. Ainda não notei um padrão de quando / por que isso acontece, mas parece que pode haver um bug sutil ou algo na minha configuração.
Jim Stewart

Qual é a melhor maneira de colocar o número da janela no nome?
DanCat 8/02

Respostas:


43

Não há um nome de janela padrão global que seja aplicado a todas as novas janelas; eles padronizam para (parte da) a primeira “palavra” do comando (ou o shell padrão, se não houver comando). Suas janelas provavelmente estão por padrão reattach-to-user-namespaceporque você é a primeira parte interessante do seu default-commandvalor.

Seria um pouco complicado, mas você poderia colocar seu comando padrão em um script de shell e apontar o seu default-commandpara esse script. Com essa configuração, o nome da janela padrão (para janelas criadas sem um comando explícito) seria o nome do script do shell.

Caso contrário, existem várias maneiras de nomear / renomear manualmente uma janela:

  • No momento da criação, com -n:

    new-window -n 'some name'
    

    Você pode reconectar c(a chave padrão usada para criar uma janela) para incorporar um "nome padrão" de sua escolha:

    bind-key c new-window -n 'default name'
    
  • Renomeie uma janela existente:

    rename-window 'new name'
    

    Há também uma ligação padrão (Prefixo ,) que solicitará um novo nome e renomeará a janela.

  • Renomeie uma janela por meio de uma "sequência de escape" enviada para o tty de um painel:

    # E.g. in a shell:
    printf '\033kWINDOW_NAME\033\\'
    

Seu "solicite um nome para uma nova janela" pode ser feito assim (solicitando antes ou depois da criação da janela):

bind-key C command-prompt -p "Name of new window: " "new-window -n '%%'"

bind-key C new-window \; command-prompt -p "Name for this new window: " "rename-window '%%'"

2
Uau, esta é uma resposta realmente épica, muito obrigado! :)
JS-codificador

7
Eu encontrei uma maneira de definir um título padrão: set-option -g default-command "tmux rename-window base; reattach-to-user-namespace -l zsh"define um título padrão de base. Você pode adicionar isso à sua resposta. :)
JS-codificador

sua solução quebra os gerentes do tmux como o tmuxinator. Nesse caso, as guias não são renomeadas
SystematicFrank

4

O tmux escolhe o primeiro comando como o nome da janela.

Digamos que você queira que "i" seja o título padrão, você pode enganá-lo assim.

set-option -g default-command "i > /dev/null 2>&1; reattach-to-user-namespace -l bash"

Isto é melhor que

set-option -g default-command "tmux rename-window i; reattach-to-user-namespace -l bash"

porque se você criar um painel depois de definir manualmente um título de janela, o título será renomeado novamente para "i" novamente.


1

Além da resposta de Chris sobre a configuração do título da janela new window -n 'somename', você também pode fornecer uma string vazia ''como o nome de uma janela. Dessa maneira, eu posso usar o atalho padrão (prefixo + c) e não preciso criar um nome para janelas temporárias, mas ainda posso renomeá-las quando necessário:

bind-key c new-window -n ''


1

Não é realmente uma resposta mais do que um hack:

Eu criei um link simbólico com

sudo ln -s /usr/local/bin/reattach-to-user-namespace /usr/local/bin/pbash

E agora aparece pbashcomo o título padrão.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.