Some Fun with ktp-text-ui Plugins

KDE Telepathy 0.5 was released last month, introducing a brand new filtering plugin system for the text-ui. I didn’t have much time to work on KTp recently, due to my new job and to my new wife (no I don’t have an old one) but since in Randa people are slacking (evil grin), someone has to do some real work (laughing hard), so I’ve being playing a little with the text-ui and with the plugins.

Formatting Plugin

First of all, I fixed the formatting plugin. This allow you to format plain text, like Thunderbird Structured Text:

  • *this is bold*
  • _this is underlined_ (and not italics!)
  • /this is italics/
  • -this is strikethrough-

The plugin was disabled in 0.5 because it was broken (the regular expression detecting the tags to replace was not detecting correctly).
Beside fixing it, I modified it to avoid changing the text by removing the tags (i.e. ‘*’ or ‘/’). In this way, even though it might format some parts that user is probably not expecting to see formatted (for example some /*C comments*/), copy and paste will still work.
Moreover, I made it so that it will be very easy to add a configuration dialog to change its behaviour, so if you _really want this to be italics_, you will probably be able to configure it according to your needs in the future.

This plugin will be enabled by default in 0.6.

Syntax Highlighting Plugin

We often think about the final users, but sometimes we have to think about the developers 😉
So I wrote a syntax highlighting plugin using jquery-snippet

A few screenshots are better than thousand words, so…



Meanwhile David had another cool idea for the syntax highlighting plugin: include a kate part into the qtwebkit view (You can find some details about how he did that here). This is his result:

Both approaches work great, my approach is more integrated in the chat, but David’s approach is also quite interesting. We don’t know yet whether release just one of them or both… Opinions?

Anyway, in order not to try to highlight all the messages, at the moment code must be included in a block like [code lang='cpp']...[/code]. This can be a bit annoying. Moreover copying and pasting code in the chat-ui is boring. Something like pastebinit would be really useful. That’s why I started writing…

ktp-paste-contact

This a very simple tool but it is something I’m really proud of, and that shows the potential of Telepathy…
It is a simple command line tool that reads from stdin and sends everything as a single message to a telepathy contact.
it takes as parameters, the account to use, the contact to send it to, and an optional parameter --format <language>.
If this parameter is specified, then the message is automatically included in a [code lang='cpp']...[/code] block using the syntax specified.

A few ideas for using it…

  • git show | ktp-paste-contact --format diff --account <account> --contact <contact>
  • cat file.cpp | ktp-paste-contact --format cpp --account <account> --contact <contact>
  • echo "Hey dude, I'm so geek that I'm texting you from the command line" | ktp-paste-contact --account <account> --contact <contact>

You can find the code for the code-highlighting plugin in my clone repository for ktp-text-ui (kde:clones/ktp-text-ui/ddomenichelli/ktp-text-ui branch plugin-code) and for ktp-paste-contact on my brand new scratch repository (kde:scratch/ddomenichelli/ktp-paste-contact.git)

Enjoy it!


EDIT: I found a great way to convince your friend to block you! Perhaps it can be used against spammers 😛

while true; do echo "MUAHAHAHAHAHA" | ktp-paste-contact --account <account> --contact <contact>; sleep 5; done