Je suis sous KDE 3.5. Je cherche à faire l'équivalent de ce qui est possible sous windows grâce à la commande TITLE (certains parmi vous connaissent, sûrement). Dans une console windows, la commande TITLE permet de changer le nom de la fenêtre en cours depuis la console elle-même (et ne fait rien si elle est appelée dans un autre contexte).
Je souhaite reproduire ce comportement dans un script shell pour le nom de l'onglet Konsole exécutant le script en question.
Je sais qu'on peut changer le nom d'un onglet konsole via un simple appel dcop :
dcop konsole-nnnn session-x renameSession "le nouveau nom"
Cela fonctionne très bien, sauf que le "nnnn" et le "x" sont variables suivant le contexte et que je ne sais pas les détecter de manière automatisée.
D'où le problème suivant :
- Comment détecter la konsole en cours ? Et dans celle-ci, comment détecter l'onglet en cours ? Sachant que je veux obtenir la konsole/l'onglet qui exécute le script, et non la konsole/l'onglet qui a le focus.
- Est-il possible de généraliser cela aux onglets konsole incorporés à d'autres applications KDE (kparts) ?
Merci d'avance.
# Ou la la
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 2.
Tout les terminaux (graphiques) ou presques reconnaissent une sequence d'echappement permettant de fixer le titre de la console.
Exemple dans mon .bashrc c'est fait via le paragraphe suivant:
if [ x"$MC_SID" == "x" ]; then
case "$TERM" in
xterm*|rxvt*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
;;
esac
fi
Le if et le case etant la pour eviter de merder dans MC (midnight commander) et
dans les VT
En resumé tu peut tester ainsi:
echo -ne "\033]0;Pr0t\007"
[^] # Re: Ou la la
Posté par Cali_Mero . Évalué à 2.
Dans quoi tu t'es lancé toi ...
Dans un truc à priori tout simple qui ne doit pas l'être tant que ça :-) L'astuce que tu donnes ne semble pas fonctionner dans mon cas. (cas tout simple : j'ouvre une konsole, ~ echo -ne "\033]0;Pr0t\007" , aucun résultat).
Je ne sais pas pourquoi ça ne marche pas... Mais merci quand même pour l'idée.
[^] # Re: Ou la la
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 2.
Le probleme vient surement du fait que tu as deja un prompt qui redefini le
texte.
essaye comme ceci:
export PROMPT_COMMAND=''
export PS1="\u@\h:\w $"
echo -ne "\033]0;Pr0t\007"
[^] # Re: Ou la la
Posté par Cali_Mero . Évalué à 2.
Qui rejoint l'astuce que tu me conseilles.
Et comme je ne connaissais pas PROMPT_COMMAND j'ai cherché un peu, car ce bout de script explique le comportement normal de konsole qui ne me satisfait pas pleinement ( le user@host: cwd de la barre de titre, mais qui a l'intéressante faculté d'être toujours exact même quand je change de répertoire via un cd ).
J'en déduis donc que ton astuce permet de modifier le titre de la fenêtre de konsole, ce qui n'est pas ce que je souhaite (je veux agir sur le nom de l'onglet). Mais ça m'aide quand même !
http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x264.html : PROMPT_COMMAND est une commande lancée par bash avant chaque affichage d'une invite de commande, d'où la mise à jour constante de l'information.
Pour référence, si d'autres curieux/bricoleurs passent par ici, j'aurai eu la puce à l'oreille sans poser de question si j'avais connu cette variable du shell ( voir le lien ci-dessus ) et surtout si j'avais connu la commande declare qui appelée de cette manière liste toutes les variables du shell courant, y compris PROMPT_COMMAND :-)
Merci pour ton aide !
[^] # Re: Ou la la
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 2.
# La réponse est la ;)
Posté par gnumdk (site web personnel) . Évalué à 5.
[^] # Re: La réponse est la ;)
Posté par Cali_Mero . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.