SMS messaging with Telepathy – GSoC update

So it’s been quite some time since the start of GSoC, and with just over four weeks to go now, I’d like to to show off the stuff that’s working so far. Something screenshot-worthy finally works, hence the update now.

TL;DR : Scroll down for the screenshots.

A short recap of what we’ve been aiming to achieve as a part of this GSoC : We wanted to have the ability to send SMSs through datacards/internet dongles/USB modems and (a limited set of) phones. This is to be implemented in a way that allows users to send SMSs through KDE Telepathy, just like we already can have IM conversations over GTalk or Facebook chat using KTp.
The actual low level SMS functionality is implemented in ModemManager, which has Qt bindings in the form of ModemManagerQt (formerly libmm-qt).

David and Martin suggested that I start off by creating a basic connection manager in TpQt that wouldn’t really interact with a real modem/phone but instead just return hardcoded contacts and messages, before integrating the real bits.

That was obviously a good idea, given the decent amount of time it took me to even get this working perfectly (with ample help from David 🙂 ). Since this dummy CM has been done a while ago, the ModemManager integration is ongoing, to send actual SMSs, to real phone numbers.
We decided to use the old version of ModemManager ( 0.6 ) and MMQt for now (to get things working quickly), since work on upgrading MMQt to support the revamped, latest version of MM (1.0) which was released a few weeks ago, is ongoing.

So far, the connection manager, works with actual modems and sends SMSs. It also scans the received SMSs and adds contacts it finds (senders’ phone numbers).

Of course, screenshots! :


Screenshot of a message sent to a phone


Contacts from my SIM card

So far the only way to add a new account is via the command line (mc-tool), so the next target would be to add a gui plugin for this connection manager for ktp-accounts-kcm, which will allow users to pick a connected modem and create a new “account” to start sending/receiving SMSs.


Till my next update.

Tagged , , , , , ,

GSoC 2013 with KDE

Yesterday the accepted projects for Google Summer of Code 2013 came out, and my proposal, Send SMS messages using ModemManagerQt and Telepathy has been accepted; I’m going to be  hacking on KDE as a part of GSoC again!

My main goals are upgrading ModemManagerQt (or libmm-qt) to use the newer version of ModemManager, and creating a Telepathy connection manager for sending SMSs using ModemManagerQt.
My mentors this year for this project are going to be Martin Klapetek for the Telepathy part and Lamarque Souza for the ModemManager portion of the project.

Here’s anticipating another great summer with KDE!

Tagged ,

A minimal clock plasmoid

Recently I’d been hankering for a really minimal date/time display on my KDE desktop, à la one of those ridiculously beautiful widgets available for Rainmeter on my Windoze install.

A bit of googling and dozens of deviantArt desktop screenshots later, I considered what appeared to be the most popular system monitor for Linux desktops, conky.

Well conky looked promising, but it soon proved to be a real pain to configure, and after repeated attempts to install some scripts from the internet, I kept running into problems like transparent areas being rendered opaque-black, and perhaps most importantly not being able to move the ‘widget’ by dragging it.

So this evening I had a bit of free time and thought I’d try my hand at making a minimal clock plasmoid. This isn’t the first time I’m making a QML plasmoid( my first one – ), so in an hour or so I managed to come up with this :


Download it here :

This perhaps still doesn’t come close in terms of elegance to some of the widgets for Rainmeter or maybe conky, but I’m happy with the result; it’s pretty close to what I wanted.

The font and text colour are configurable through the plasmoid settings menu.
I’ve used the Geo Sans Light font (get it here) in the screenshot. Here’s the wallpaper.

Tagged , , , , , , ,

Valgrind is awesome !

Over the past few weeks that I’ve been working on my GSoC, one fantastic tool has proven to be a lifesaver of sorts, or at least a very quick way to trace segmentation faults and memory leaks : Valgrind.

Valgrind is a full suite of tools for testing, debugging and profiling programs, but the only tool from this suite that I’ve used is Memcheck. As the name suggests, memcheck pinpoints the exact line numbers in source files where invalid read/writes are taking place or uninitialized values are being used, and also reports memory leaks in a similar fashion.

You can have a look at all of memcheck’s capabilities here.

To test a program with valgrind, you simply have to run :

valgrind ./myprogram

This will return a list of invalid read/writes and other instances of misuse of pointers.

To additionally check for memory leaks, use

valgrind --leak-check=yes ./myprogram

Note that when testing a program with valgrind, the program may run slower than usual.

Tagged ,

GSoC {SMART Harddisk Monitoring} Status Update

Its been 52 days since (yes!) since the May 21 coding period for my project began, and here is what I’ve completed so far:

The SMART library, libsolidsmart, is complete, and essential API docs are done. It has a structure that is abstracted to allow multiple backends, and currently the udisks2 backend is complete.

The SMART hard disk health monitoring tool, KSmart is also complete, with only minor UI improvements (read beautification) remaining.

Here are some screenshots of KSmart in action :

As for the latter part of my GSoC project, which deals with improving ISO file management features in KDE, I’ve already begun working and a dolphin service to mount ISOs should be done this weekend.  Related to that, I recently committed a tiny patch to Solid so that it correctly returns the optical disk icon for mounted ISOs.

You can have a look at the solidsmart and ksmart sources here :

Tagged , , ,

GSoC 2012 – I made the cut!

After the agonizing wait, Google finally released it’s list of accepted projects for Google Summer of Code 2012 today, and my proposal for KDE,  Implementing hard disk health monitoring and improving ISO file management features in KDE, has been accepted ! My mentor for this project is Alex Fiestas.

Looking forward to a very exciting summer coding for KDE !

That said, I’ve been working on a whole lot of things since my last post (yes, the inaugural and only post), including an automatic proxy changer for use in the BITS Goa campus, and a [WIP] python wrapper for libatasmart. Have a look : .

Tagged , ,

Beeconf released

Beeconf is a graphical utility for Bumblebee (for Nvidia Optimus users) which allows you to set the default GPU (nvidia or intel) for running a particular application. It is still under development, and this is my first working release.

Screenshot of beeconf in action

Screenshot of beeconf in action

How to get the app:

For non-git users:

Download the application here : (Choose tar or zip)

For git users:


1) First install the required dependencies:

If you are a KDE user, you only need to download PyKDE4 (~7 MB)

Gnome users and those using other DEs need both PyKDE4 and PyQt4

2) After installing the dependencies extract the downloaded tar or zip file and cd into the extracted folder. Then run python


Tagged , , , , ,