J'utilise très lourdement guake et ssh dans plus de 3 ordinateurs à tout moment. J'ai aussi des démons en cours d'exécution sur certains onglets (terminaux). Ce que je veux savoir, est-il possible d’avoir le nom de la commande en cours comme nom du terminal? Si vous cliquez à droite sur un onglet et changez son nom, ceci provoque: (Regardez l'onglet après le Terminal 5)
Merci.
C'est un bug de guake (0.4.1). Je viens de voir et de résoudre ce problème via ce rapport de bogue bien que l'auteur dise que ce n'est pas la meilleure méthode: https://github.com/Guake/guake/issues/205
j'ai découvert que déplacer le code de destruction de la boîte de dialogue (ligne 983 de guake.py) vers le bas après le code qui définit l'étiquette de l'onglet (ligne 986) résout réellement le problème. Le code qui fonctionne pour moi ressemble à ceci:
response = dialog.run() # dialog.destroy() if response == gtk.RESPONSE_ACCEPT: self.selected_tab.set_label(entry.get_text()) dialog.destroy()
il y a peut-être un problème avec gtk et les dialogues, mais je n'ai trouvé aucun changement de code lié à gtk dans la version 0.4.1 diff.
EDIT: guake 0.4.2 peut changer le nom de l'onglet correctement
Je ne suis pas sûr que cela fonctionne pour guake, cela fonctionne pour la plupart des émulateurs de terminaux. Vous pouvez inclure un écho sur vos scripts pour changer le titre du terminal:
echo -ne "\033]0;your_title_here\007"
C'est un peu un bidouillage, mais cela renommera le terminal actuel en ce que vous voudrez.
function ssh() {
guake -r "$@";
/usr/bin/ssh $@
}
De plus, si vous mettez à jour votre Prompt_COMMAND, vous pouvez avoir une fonction pour mettre à jour le nom du terminal à chaque fois. Bien que cela ne fonctionne pas pour votre problème ssh car il ne change que le nom une fois la commande exécutée.
par exemple.
export Prompt_COMMAND=renameTerminal
function renameTerminal() {
guake -r "$SOMENAME";
}
Lorsque je veux changer le nom de l'onglet dans guake, je clique simplement sur le nom de l'onglet et cliquez sur renommer. Une fenêtre contextuelle s'ouvre pour saisir le nouveau nom.
Vous pouvez simplement changer le nom de tabulation avec
guake -r newtabname
Si vous voulez obtenir la dernière commande en cours d'exécution, utilisez par exemple
echo "!!" | cut -f 1 -d " "
!!
est développé par bash lorsque vous le tapez. Il n'est pas étendu par la substitution d'alias. Donc, vous devez utiliser le history
intégré pour faire l'expansion afin de le mettre dans un alias:
alias setguaketitle='guake -r $(echo "$(history -p !! )"| cut -f 1 -d " ")'
quand ta dernière commande était
echo this is a test
puis en appelant
setguaketitle
mettra le titre sur "echo".
Si vous changez votre shell en zsh, vous pouvez ajouter ceci à votre ~/.zshrc
:
preexec() {
echo -n '\e]0;'
echo -nE "$1"
print -nP ' (%~)'
echo -n '\a'
}
et il montrera la commande en cours et le répertoire de travail en cours. Cela fonctionne pour tous les émulateurs de terminaux, pas seulement pour Guake.
Pour installer zsh:
Sudo apt-get install zsh
pour l'essayer juste dire
zsh
pour en faire votre valeur par défaut pour les nouveaux terminaux:
chsh -s /bin/zsh