Função para alterar o título não funciona quando executado no script

2

Eu tenho um comando simples que define o título do termo:

# Allow the user to set the title.
function title {
   PROMPT_COMMAND="echo -ne \"3]0;$1 ($PWD)
16:28 $ cat ./scripts/webserver.sh
#!/bin/bash
title 'webserver'
nodemon ./app/webserver.coffee 
7\"" } export -f title

Gostaria de acessar isso de um script:

# Allow the user to set the title.
function title {
   PROMPT_COMMAND="echo -ne \"3]0;$1 ($PWD)
16:28 $ cat ./scripts/webserver.sh
#!/bin/bash
title 'webserver'
nodemon ./app/webserver.coffee 
7\"" } export -f title

Coloquei title em .bashrc , .bash_profile e .profile e obtive todos esses arquivos depois. Eu posso executar a função title bem a partir da linha de comando. Independentemente do que eu faço, a função title não é executada quando eu executo meu arquivo de script. Não há erro, apenas nenhuma alteração no título. O que estou fazendo de errado?

Um pouco mais de informação: eu adicionei uma linha echo 'changing title' na função de título. O eco está sendo emitido, mas o título não está sendo alterado. Então deve haver um problema com a função title?

Relacionados: Como mudar o título do Gnome-Terminal?

    
por jcollum 09.07.2013 / 01:35

1 resposta

0

Se você precisar alterar o título do terminal, aconselho usar wmctrl que também funcionará dentro de um script (na verdade, sua solução falha porque o prompt não é usado ao executar scripts). Então, primeiro instale o pacote wmctrl , por exemplo, usando o apt:

sudo apt-get install wmctrl

O bom thin com bash é que ele tem uma variável chamada WINDOWID que contém um ID de janela (sem brincadeira!) que o wmctrl pode usar. No Bash ou em um script, tente:

wmctrl -ir $WINDOWID -N "A cool title"
  • A opção -i é informar wmctrl que a janela será especificada usando seu ID numérico (do echo $WINDOWID para verificar se WINDOWID é realmente um número e wmctrl -l para listar todas as janelas gerenciado pelo seu gerenciador de janelas e compare ... você provavelmente terá que converter de decimal para hexadecimal ou talvez usar printf '%#.8x\n' "$WINDOWID" ).
  • A opção -r é informar wmctrl de que a janela especificada estará pronta para a ação a seguir, ou seja, -N , altere seu título para o título especificado.

man wmctrl para mais informações sobre essa pequena ferramenta engraçada.

Aproveite!

    
por gniourf_gniourf 09.07.2013 / 21:46