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

13

J'utilise très fortement guake et ssh sur plus de 3 ordinateurs à tout moment. J'ai également des démons fonctionnant 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? Faire un clic droit sur un onglet et changer son nom provoque ceci: (Regardez l'onglet après le Terminal 5)

Regardez l'onglet après le Terminal 5

Merci.

theTuxRacer
la source
Voir ma réponse à une question connexe pour afficher une représentation abrégée du répertoire actuel sous forme de titre d'onglet.
krlmlr
Que voulez-vous dire par «commande actuelle»? y a-t-il toujours une commande en cours d'exécution dans chaque terminal? quel devrait être le titre quand rien ne tourne?
rubo77

Réponses:

4

Il s'agit d'un bug 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 le déplacement du code de destruction de boîte de dialogue (ligne 983 de guake.py) après le code qui définit l'étiquette de tabulation (ligne 986) résout en fait le problème. donc 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 boîtes de dialogue, 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

hutushen222
la source
1
cela ne répond pas à la question
phil294
3

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"
João Pinto
la source
cela n'a pas fonctionné, quand je l'ai tapé dans le terminal.
theTuxRacer
1
C'est parce que l'invite de votre shell le placera généralement dans le répertoire de travail actuel. Vérifiez la variable PS1.
ak2
Cela ne fonctionne pas non plus sur mon Ubuntu 15.10. J'ai vérifié echo $PS1ce qui montre quelque chose comme \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$qu'est-ce que cela m'aide à résoudre?
rubo77
3

Un peu de piratage, mais cela renommera le terminal actuel pour tout ce que vous avez choisi.

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 le nom qu'après l'exécution de la commande.

par exemple

export PROMPT_COMMAND=renameTerminal

function renameTerminal() {
    guake -r "$SOMENAME";
}
user257818
la source
2

Quand je veux changer le nom de l'onglet dans guake, je fais juste un clic droit sur le nom de l'onglet et un clic gauche sur renommer. Une fenêtre contextuelle s'ouvre pour taper le nouveau nom dans.

charlie-tca
la source
bien sûr, mais comment pouvez-vous ajouter cela à un script?
rubo77
1

Vous pouvez simplement changer le nom de l'onglet avec

guake -r newtabname

Si vous souhaitez 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 développé par la substitution d'alias. Vous devez donc utiliser le historyintégré pour faire l'expansion pour le mettre dans un alias:

alias setguaketitle='guake -r $(echo "$(history -p !! )"| cut -f 1 -d " ")'

quand votre dernière commande a été

echo this is a test

puis appeler

setguaketitle

définira le titre sur "écho".

rubo77
la source
0

Si vous changez votre shell en zsh, vous pouvez l'ajouter à votre ~/.zshrc:

preexec() {
    echo -n '\e]0;'
    echo -nE "$1"
    print -nP '  (%~)'
    echo -n '\a'
}

et il montrera la commande courante et le répertoire de travail courant. Cela fonctionne pour tous les émulateurs de terminaux, pas seulement pour Guake.

Pour installer zsh:

sudo apt-get install zsh

pour l'essayer il suffit de dire

zsh

pour en faire votre valeur par défaut pour les nouveaux terminaux:

chsh -s /bin/zsh 
poolie
la source
1
zsh ne fonctionne pas du tout avec guake :(
theTuxRacer
Oh, c'est vrai, je me souviens avoir déjà rencontré ce problème. Mais au moins certains des bogues qui s'y rapportent semblent maintenant être corrigés, par exemple < guake.org/ticket/49 >.
poolie