Ce petit morceau de bash permet de changer le nom de l'onglet Konsole lorsque vous vous connectez à un hôte distant via ssh.
Il charge aussi automatiquement votre clé ssh par défaut dans ssh-agent si elle ne l'est pas déjà, pratique si votre clé est protégée par mot de passe et que vous devez l'utiliser plusieurs fois ;)
Ajouter ceci dans ~/.bashrc:
function konsole_ssh() {
OLDNAME=$(dcop $KONSOLE_DCOP_SESSION sessionName)
# On détermine le nom d'hôte en le cherchant dans l'argument $1.
HOST=$(echo "$1"|awk -F'@' '$0 ~ /@/ {print $2}; $0 !~ /@/ {print}')
# Commentez si vous n'utilisez pas les clés ssh
ssh-add -l > /dev/null
if [[ $? != 0 ]]; then
ssh-add
fi
# On renomme la session
dcop $KONSOLE_DCOP_SESSION renameSession "$HOST"
#On se connecte
$(which ssh) $@
#Lors de la déconnexion, le script reppart ici
#Si l'ancien nom était déjà le nom d'hôte, on met un autre nom
if [[ "$OLDNAME" == "$HOST" ]]; then
OLDNAME="Shell No. "`dcop $KONSOLE_DCOP_SESSION sessionPID`
fi
#On renomme avec l'ancien nom
dcop $KONSOLE_DCOP_SESSION renameSession "$OLDNAME"
}
alias ssh='konsole_ssh'
Recharger le bashrc:
. ~/.bashrc
Ensuite un
ssh moi@example.com
Renomme votre onglet Konsole en example.com :)
# la même avec le nom de la connection ssh du bookmark
Posté par sachaz . Évalué à 1.
j'ai ajouté quelques lignes a ton script pour avoir automatiquement le nom de la session ssh d'après celui utilisé dans le bookmark.
Le parsing xml est sale et marche (si le nom de l'host est identique à l'adresse de l'host... je met une majuscule au noms... je sais pas :).
Ajouter ceci dans ~/.bashrc:
function konsole_ssh() {
OLDNAME=$(dcop $KONSOLE_DCOP_SESSION sessionName)
# On détermine le nom d'hôte en le cherchant dans l'argument $5.
# => l'url dans le bookmark étant du type ssh://me@0.0.0.0:2222
# user et port renseignés sinon le numéro de l'argument change
# => ce script étant un fonction sur l'appel à la commande ssh locale
# ceci ne marche pas si l'on rebondit :( home:ssh host1: ssh host2 ):
HOSTURL=$(echo "$5")
HOSTLINE=$(grep -n $HOSTURL ~/.kde/share/apps/konsole/bookmarks.xml| cut -f1 -d:)
HOST=$(awk -F "" -v count=`expr $HOSTLINE + 1` 'NR==count {print $1}' ~/.kde/share/apps/konsole/bookmarks.xml| cut -d '>' -f 2)
# Commentez si vous n'utilisez pas les clés ssh
ssh-add -l > /dev/null
if [[ $? != 0 ]]; then
ssh-add
fi
# On renomme la session
dcop $KONSOLE_DCOP_SESSION renameSession "$HOST"
#On se connecte
$(which ssh) $@
#Lors de la déconnexion, le script reppart ici
#Si l'ancien nom était déjà le nom d'hôte, on met un autre nom
if [[ "$OLDNAME" == "$HOST" ]]; then
OLDNAME="Shell No. "`dcop $KONSOLE_DCOP_SESSION sessionPID`
fi
#On renomme avec l'ancien nom
dcop $KONSOLE_DCOP_SESSION renameSession "$OLDNAME"
}
alias ssh='konsole_ssh'
Merci andeus grâce à ton script j'ai exactement ce que je voulais depuis un petit moment !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.