Quero poder nomear uma guia de terminal para poder saber qual é qual. Encontrei esta função (aqui) e coloquei no meu .bashrc
:
function set-title() {
if [[ -z "$ORIG" ]]; then
ORIG=$PS1
fi
TITLE="\[\e]2;$*\a\]"
PS1=${ORIG}${TITLE}
}
e agora, quando eu chamo, set-title my new tab name
o nome da guia é alterado conforme esperado para "nome da minha nova guia". O problema é que quero abrir uma nova aba e nomeá-la usando set-title
. A maneira que tentei fazer isso é assim:
gnome-terminal --geometry=261x25-0+0 --tab -e "bash -c 'set-title tab1; sleep 10'" --tab -e "bash -c 'set-title tab2; sleep 10"
No entanto, agora recebo a seguinte mensagem de erro:
bash: set-title: command not found
E acho que isso tem a ver com a nova aba do gnome .bashrc
ainda não saber sobre a função.
Como posso fazer isso funcionar?
Responder1
Instantâneo de usar a função, set-title
você pode criar um comando com esta funcionalidade, então remova a função set-title()
que você adicionou ~/.bashrc
e crie um arquivo /usr/local/bin/set-title
:
#!/bin/bash
echo -ne "\033]0;$1\007"
Adicione chmod: chmod +x /usr/local/bin/set-title
. E depois de reabrir o terminal você pode usar este comando: set-title TEST
(se você tiver /usr/local/bin/
em seu arquivo $PATH
).
E então você pode usá-lo ao criar uma nova guia desta forma:
gnome-terminal --geometry=261x25-0+0 \
--tab -e "bash -c 'set-title TAB1; sleep 10'" \
--tab -e "bash -c 'set-title TAB2; sleep 10'"
Se de alguma forma você não tiver /usr/local/bin/
no seu arquivo $PATH
, você pode tentar com o caminho absoluto para o comando set-title:
--tab -e "bash -c '/usr/local/bin/set-title TAB1; sleep 10'"
Responder2
Se você deseja que seus scripts de inicialização .bashrc, .bash_profile, .profile, etc. sejam executados, inicie o gnome-terminal com --login
a opção.