J'adore le terminal déroulant Guake, mais le problème est agaçant. Quand j'utilise beaucoup d'onglets, je déteste quand les noms d'onglets sont renommés chaque fois que j'exécute une commande ou que je navigue dans l'un d'entre eux. Je veux renommer n'importe quel onglet et conserver le nom dans toutes les sessions. Par exemple, lorsque j'utilise Midnight Commander et que j'entre dans un dossier de chemin long, l'onglet se développe et c'est horrible. Le nom de l'onglet mc [user@machine_name]:/weird/long/infinite/path
apparaît lorsque je navigue dans le dossier /weird/long/infinite/path
.
Puis-je toujours avoir le même nom pour chaque onglet, même en le renommant manuellement?
J'ai trouvé un moyen de désactiver le renommage ennuyeux. J'ai trouvé dans mon script guake Python (version 0.4.3-3) aux lignes 996 à 1002:
def on_terminal_title_changed(self, vte, box):
use_them = self.client.get_bool(KEY("/general/use_vte_titles"))
if not use_them:
return
page = self.notebook.page_num(box)
self.tabs.get_children()[page].set_label(vte.get_window_title())
Comme le montre le script, la touche /general/use_vte_titles
empêche la création automatique de nom. C'est Guake utilise GConf pour configurer ses options ( explication ). Je devais installer paquet gconf-editor pour éditer les options de Guake exécutant Sudo apt-get install gconf-editor
. Puis j’ai exécuté gconf-editor
, j’ai navigué jusqu’à la touche /apps/guake/general
et non marqué use_vte_titles
. Fermé l'éditeur. La prochaine fois que j'ai exécuté Guake, la fonctionnalité de changement de nom automatique était désactivée.
Maintenant, tous les onglets sont nommés Terminal
et si j'en renomme un, cela continue à nommer toute la session du même nom. Il serait utile d’ajouter cette clé dans le dialogue des préférences de Guake. Mais cette solution a quand même fonctionné.
juste courir
gconftool-2 --set /apps/guake/general/use_vte_titles --type boolean false
et redémarrez votre terminal,
facile comme bonjour (3.14)
Sur la ligne de commande:
vim ~/.gconf/apps/guake/general /% gconf.xml
Il devrait y avoir une entrée comme celle-ci:
<entry name="use_vte_titles" mtime="1404143215" type="bool" value="true"/>
Il suffit de le changer pour:
<entry name="use_vte_titles" mtime="1404143215" type="bool" value="false"/>
Enregistrez le fichier et redémarrez guake.
Envisagez simplement de raccourcir le titre du terminal. L'algorithme est défini dans .bashrc
, le titre du terminal sera respecté par Guake comme vous l'avez remarqué:
Mon .bashrc
contient les éléments suivants:
# If this is an xterm set the title to user@Host:dir
case "$TERM" in
xterm*|rxvt*)
Prompt_COMMAND='PS1X=$(pwd | sed -r "s-^$HOME/--;s-^$HOME-~-;s-^(.[^/]*)/.*/-\1/.../-")'
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}"'$PS1X'"\a\]$PS1"
;;
*)
;;
esac
Le nom d'hôte n'est plus affiché, et seuls les premier et dernier composants du chemin sont affichés:
$HOME
-> ~
$HOME/some/deep/sub/dir
-> some/.../dir
/usr/local/deeply/inside/there
-> /usr/.../there
Avec ce paramètre, les boutons d’onglet sont suffisamment étroits mais contiennent quand même des informations utiles.
Voir également:
Oui, j'ai eu ce problème aussi et je suis tellement surpris qu'il apparaisse toujours dans les versions récentes de Guake. Dans la dernière version, je pense qu’il existe une option permettant de nommer les terminaux sous la forme Terminal 1
, Terminal 2
etc., ce qui n’aide en rien non plus.
Ces dernières années, j'ai utilisé un script simple dans mon .zshrc
(j'utilise un terminal Zsh, mais vous pouvez appliquer quelque chose de similaire dans Bash).
function chpwd {
if [ -e ".guakerc" ]; then
setupguake
else
guake -r ${PWD##*/}
fi
}
function setupguake() {
. $(pwd)/.guakerc
if ((${+name})); then
guake -r ${name}
fi
}
Essentiellement, cela surveille tout changement de répertoire (via chpwd
) et si un fichier .guakerc
est trouvé, il l'exécute. Dans ce fichier, vous pouvez configurer le titre de guake et bien d’autres choses.
Si aucun fichier .guakerc
n'est trouvé (le cas le plus courant), il ne fait que définir le nom du dossier comme nom du terminal. Donc, si vous êtes dans un dossier nommé /home/username/Development/social-app
, le terminal sera renommé social-app
.
J'espère que ça aide!