Konversation/Scripts/Ghosttrick

From KDE Wiki Sandbox
Other languages:

The settings of a network contain a "Commands" field which can be used to run input line commands upon a connection to that network being established. In that field, there's a special "%nick" variable available which expands into the current nickname. This can be combined with the /exec command to run an external script that evaluates whether the nickname is the desired nick, and if not, use Konversation's DCOP IPC interface to make it send the ghost command to nickserv.

Hence, you would have to put something like this into the user-local scripts folder (KDE3 & KDE4: ~/.kde/share/apps/konversation/scripts, KF5: ~/.local/share/konversation/scripts), under the name "getnickback", and mark it as executable:

For KDE 3.5 use this here
#!/bin/sh

nick=********           # your desired nickanme
pass=********           # the according password

# don't edit below #

PORT=$1
SERVER=$2
NICK=$4

# if your current assigned nick isn't the same as your desired one, ghost yourself and change nick
if [ "$NICK" != "$nick" ]
then
  dcop $PORT default raw $SERVER "PRIVMSG nickserv :GHOST $nick $pass"
  dcop $PORT default raw $SERVER "/nick $nick"
fi

# now identify yourself at the server
dcop $PORT default raw $SERVER "PRIVMSG nickserv :IDENTIFY $pass"
As KDE 4 and later has changed to use D-Bus instead of DCOP, use this variant for versions based on kdelibs4 or KF5
#!/bin/sh

nick=********           # your desired nickanme
pass=********           # the according password

# don't edit below #

CONNECTION=$1
NICK=$3

# if your current assigned nick isn't the same as your desired one, ghost yourself and change nick
if [ "$NICK" != "$nick" ]
then
  qdbus org.kde.konversation /irc raw $CONNECTION "PRIVMSG nickserv :GHOST $nick $pass"
  qdbus org.kde.konversation /irc raw $CONNECTION "NICK $nick"
fi

# now identify yourself at the server
qdbus org.kde.konversation /irc raw $CONNECTION "PRIVMSG nickserv :IDENTIFY $pass"

Notice the nick and password settings you need to fill in as you need them to be. Then, into the network's "Commands" field put /exec getnickback %nick