web-dev-qa-db-fra.com

Puis-je changer le nom de l'onglet guake pour afficher la commande en cours?

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)

Look at the tab after Terminal 5

Merci.

13
theTuxRacer

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

4
hutushen222

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"
3
João Pinto

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";
}
3
user257818

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.

2
charlie-tca

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".

1
rubo77

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 
0
poolie