grundleborg

open source stuff

Posts Tagged ‘Plasma’

KDE-Telepathy – A Vision for Integration

Posted by grundleborg on April 26, 2011

The first preview release for KDE-Telepathy is getting closer. Our release-tracker bug now only has 9 bugs blocking it and many of these already have patches on reviewboard. Our first release will be made separately from the KDE Software Compilation, and should be compatible with installs of 4.6.x or trunk. It will be suitable only for people who like to try out new technologies before they are ready for the mainstream. It will not be feature complete (although we hope many of the basic features will be implemented). It will not be polished (although we do want to know about any bugs or issues you find – that’s why we’re making this release). It will also not be especially deeply integrated with the rest of the KDE S.C. or the Plasma workspaces. There will be a plasma applet for bringing accounts on and offline, but the rest of it is much like a traditional Instant Messaging application.

With expectation management out of the way, let’s take a look at how KDE-Telepathy is going to be in a few releases time. The biggest change from traditional IM clients is that Telepathy is all about Integration. Why should you have a standalone IM client? Real-time Communication and Collaboration features should be available where you want them regardless of the artificial boundaries between applications. Telepathy’s modular architecture of components communicating over DBus enables this to an extent never before possible.

Let’s take a look at the typical uses of Telepathy’s features and how they will work with KDE-Telepathy (not all of what you see below is being implemented presently):

  • Bringing Accounts on/offline, setting presence and status messages: this will by default be handled by a Plasma applet, although integration with other parts of the workspace could be carried out as appropriate (I’m thinking of that “me menu” concept from Ubuntu as an example).
  • “Currently Listening To: Foo” in the status message: this would be set by a plugin for the music player being used which updates the Telepathy presence message.
  • Configuring your Jabber/MSN/SIP/etc accounts: handled centrally in some kind of “My Identity” SystemSettings KCM.
  • Starting a chat/call: can be done anywhere that knows about people – plasma applets/KAddressBook/Tradtional “Buddy List” app/etc. There is a Summer of Code project to do some work on this stuff in Plasma and another one to make it possible in KAddressBook.
  • Collaborating on a Text Document: inside Calligra, or any other document editing software.

The key point of all this is that there will be no KDE-Telepathy Application as a single point of interaction for users. In reality, the features of KDE-Telepathy will be integrated with the rest of the KDE experience. The end result – features in more natural and useful places and a more seemless experience for our users.

Once our users stop knowing the name of KDE-Telepathy and start to see it as simply some communication/collaboration features that are always there, that’s when I’ll consider the KDE-Telepathy project to be a success.

Posted in Collabora Planet, Collabora Web Site, KDE, Nepomuk, Plasma, Telepathy | Tagged: , , , , , , | 17 Comments »

Announcing the KDE Real-time Communication and Collaboration Project

Posted by grundleborg on February 23, 2010

Hello World! It’s been a long time since I last wrote anything here, and for that I’m sorry. The autumn was consumed by university work, and the last few weeks I’ve been discreetly coding and writing to get everything ready for this announcement. Anyway, without further irrelevance, let me present the KDE Real-time Communication and Collaboration Project. You’ve probably heard me blathering about Telepathy before, but now for the first time we have a coherent plan for world domination, concocted by Abner Silva, Matt Rogers and myself (with help from many other people).

Let me briefly introduce the project and our aims:

  • Fully integrate real-time communication (think VoIP, IM, Video etc) into the KDE Plasma Workspace (do I have the branding correct?)
  • Provide a fully-featured Telepathy-based real-time communication experience in the KDE SC. (loving the double-barreled words)
  • Provide infrastructure for collaborative features in KDE SC applications.

So, if any of this interests you, we’d love your help. Hop in to #kde-telepathy on freenode IRC, or join our mailing list.

And, while you’re at it, why not take a look at our code so far.

The Code So Far…

Warning: this is highly experimental code which may cause all kinds of side effects, especially the Nepomuk related stuff, which is likely to make a complete mess of your Nepomuk database, so use with care.

If you’ve read the above warning and want to take a look at what we’ve done so far, here are some instructions. For the first phase of this project, our attentions are focused on building Telepathy based components for basic IM usage on top of the existing Kopete codebase. So far, you can create an account (Jabber is the only kind tested, so expect minor bugs with other protocols), set its presence and see a list of your contacts. Not the most exciting stuff ever, but with this core stuff in place, more features should arrive very soon.

Prerequisites

You need recent telepathy-mission-control-5, telepathy-gabble and telepathy-qt4. Best to install these from your distribution. If telepathy-qt4 is not provided, or older than 0.2.0, then download the source here.

The Account Management GUI

Checkout and build the account management gui from svn here:

svn://anonsvn.kde.org/home/kde/trunk/playground/network/telepathy-accounts-kcm

Also install its plugins from

svn://anonsvn.kde.org/home/kde/trunk/playground/network/telepathy-accounts-kcm-plugins

You can launch it by running:

kcmshell4 kcm_telepathy_accounts

And then follow the wizard to set up your Jabber account.

Setting the Account Presence

To set the account presence through a GUI (ie. bring the account on/offline), you will need the presence plasma dataengine and applet, available again from svn:

svn://anonsvn.kde.org/home/kde/trunk/playground/base/plasma/applets/presence
svn://anonsvn.kde.org/home/kde/trunk/playground/base/plasma/dataengines/presence

You can then add the applet to your Plasma workspace and use it to bring the account(s) created with the GUI in the previous section on/offline.

Nepomuk Integration

Your contact list is integrated into Nepomuk by means of the telepathy-integration-daemon. Best to install it and launch it before bringing any accounts online. Code, again is in svn.

svn://anonsvn.kde.org/home/kde/trunk/playground/network/telepathy-integration-daemon

You can run it by calling telepathy-integration-daemon on the command line.

Contact List App

Finally, in order to see our contact list, we need a contact list app installed. Currently, this is in the very early stages of development, but you can at least see a list of contacts in it (although you can’t interact with that list yet). Source code is at:

svn://anonsvn.kde.org/home/kde/trunk/playground/network/telepathy-contactlist (corrected)

and you can run it by calling telepathy_contactlist_prototype on a command line.

If you like what you see or have any problems with getting it working, come talk to us in #kde-telepathy. We’re very happy to help out 🙂

Posted in Collabora Planet, Collabora Web Site, KDE, Nepomuk, Telepathy | Tagged: , , , , | 21 Comments »

Telepathy Update – End of February/Start of March

Posted by grundleborg on March 7, 2009

A couple of weeks ago, I started an attempt to give regular updates on what’s going on with Telepathy development in KDE. Unfortunately, I’ve fallen behind already (thanks to a insanely busy fortnight), but hopefully I can catch up, so here’s a list of what’s going on at the moment:

  1. Porting of existing Telepathy stuff in KDE to use the new library, telepathy-qt4.
  2. Some work on the presence plasma applet and dataengine
  3. Work on a protocol plugin for Kopete to be able to use Telepathy.

Now some more detail on those three things:

Number one is annoying but necessary. Although it doesn’t get us any closer to having full-blown Telepathy awesomeness in KDE, it needs to be done. The old telepathy-qt library (and tapioca-qt, which it was used in conjunction with) is unmaintained and seriously showing its age. It also has a horrible flaw – it is a synchronous API. Although synchronous API’s are nice to work with, they end up driving you mad in a situation where many API calls require slow network roundtrips behind the scenes. The result was slow applications with regularly blocking GUI’s. eugh. telepathy-qt4 is a new library that is currently under heavy development. It is fully asynchronous and designed with future extensibility in mind. Its got a fair way to go yet, but given the current pace of development that shouldn’t be long in terms of time. So, back to how this affects KDE. We are porting all existing Telepathy stuff inside KDE to use this new library.

On point number two,  Siraj Razick has done some great work on the Presence plasma applet and dataengine. They now allow you to set your presence as well as show it. The presence applet is still rather ugly, but work is ongoing to make it truly beautiful. Expect an update with pictures as soon as this work is complete.

Number three: Dariusz Mikulski (Polish only) has been working to bring the bit-rotted Telepathy plugin for Kopete up to date. Work is progressing fast with that – last time I tried it, I could create accounts, and bring them on and offline, and see my buddies list. Again, expect more updates on that as it evolves, hopefully with screenshots too next time.

So, in summary – lots going on, lots of busy people, but still loads more to do. And just in case you missed my post last week – if all this sounds really cool, why not join in the fun by applying for a Google Summer of Code project.

[Disclaimer: This blog post talks about applications that are incomplete and not available in released versions of KDE – in other words – the stuff being talked about here may break or disappear at any time… you have been warned]

Posted in KDE, Telepathy | Tagged: , , , , | 2 Comments »

Getting back to regular posts

Posted by grundleborg on February 20, 2009

I haven’t been writing here regularly since last Summer but I think its finally time to get back to regular updates on what I’m doing in KDE. However, this long absence from the planet doesn’t mean I haven’t been contributing.

I’ve been working madly for the last couple of months on getting the infrastructure in place in KDE for widespread use of Telepathy. Nothing exciting to show off yet, but I will be posting regular updates on the progress of this work, starting imminently.

It’s great to see the plasma browser plugin being mentioned and played with again. I plan to work on making it more than just a proof-of-concept again soon, but not just yet. I’m waiting until a secure ecmascript API is in place for plasmoids. Otherwise, as people rightly pointed out on the original blog post comments, it would be a security disaster. Perhaps the KDE 4.4 timeframe will be the right time to resume development of it.

Also, I’m really happy to see the Bugsquad still going strong… This incarnation is rapidly approaching its first anniversary – perhaps we should find some bug-tastic way of celebrating…

Posted in Bugsquad, KDE, Plasma | Tagged: , , , , , | 1 Comment »

Return of the Plasma Browser Plugin

Posted by grundleborg on September 5, 2008

You might remember some months ago that I posted a proof-of-concept plasma plugin for Mozilla Firefox on Linux. Well, a lot of tweaking later, we can now see a wide assortment of clocks in Mozilla Firefox on another platform (no prizes for guessing which one).

The most time consuming part of getting this up and running on Windows was actually just getting KDE compiled in the first place (emerge hates me). After that, it took about 10 lines of code and a few tweaks to CMakeLists.txt and it works.

Well, I say it works, but if I were more honest I’d say I managed to get the clocks to appear once out of many attempts in Firefox, and to grab a quick screenshot before I started trying to interact with them and brought everything crashing down. So, if you want to try this out yourself, be warned: you’ll need a lot of patience to do all the tweaking needed to get it working, and then it’ll still eat your babies.

Source code is in the same git repository as last time. See the README file included for barely-comprehensible instructions on how to destroy your soul.

When I blogged about this originally, there were lots of comments from people worrying about the security implications. I’d like to write about that in more detail, but I don’t have enough time, so it will have to wait for another day. For now I’ll just point out one thing: it is only a proof-of-concept at this stage. Obviously if this ever becomes a finished product, there will be security in place to stop plasmoids from the web interacting with your local computer in inappropriate ways – it will not work like Microsoft’s ActiveX, but much more like Adobe Flash.

Posted in KDE, Plasma | Tagged: , , , , | 7 Comments »

Plasmoids in a web page

Posted by grundleborg on May 30, 2008

After refactoring the core of decibel to be independent of KDE, I’ve decided to take a little break from my summer of code project while my mentor reviews all the changes I’ve made so far. So, instead of taking a holiday from KDE and computers for the last two days I’ve been working on a little project that I’ve wanted to do since I saw the idea mentioned by Aaron in an interview some time ago (when I googled for it this evening, I couldn’t find it again, so forgive me for not linking). I interpreted what he said as meaning “plasma doesn’t just need to revolutionise the desktop but could even spread into the internet space by having plasmoids on web pages”.

So, I set about making this possible. It was easier than I thought thanks to the wonderful trolls who recently released an Open Source QT addon that wraps the Netscape Plugin API. In fact, most of the two days I’ve spent getting this basic browser plugin made were spent tracking down the reason why adding a dependency on KDE stopped mozilla loading it – it turned out to be “-fvisibility=hidden” that is added to the CXX_COMPILER_FLAGS by FindKDE4.cmake.

Now, don’t get excited yet – this really is rudimentary, but there is now a plugin that works with firefox (not tested with anything else yet) and allows web pages to contain plasmoids. It uses the plasmoids already installed on your computer, but in the future I can envision it allowing scripted plasmoids provided by the web site you are visiting. Also, at the moment it only allows embedding of individual plasmoids, but again in future it could allow embedding of containments – you could even have a page that allows rearranging of plasmoids much like how you can rearrange the boxes on your Facebook profile. You could even perhaps drag plasmoids from a web page to your desktop! The posibilites seem endless… (Apologies to Aaron and other plasma devs for any ideas here that are not original and that I poached from them and then forgot about!)

Anyway, bringing my imagination back down to earth, here’s a screenshot of what’s already possible.

Large version

The clocks all work, honest 🙂 (The only major known bug is that the right click menu text doesn’t show up, but I have a feeling that someone with more KDE-fu than me will fix that in a heartbeat).

If you want to have a look for yourself, the code is currently in available here in a git repo. Check out the master branch, then compile it in you KDE4 build environment (you will need very recent trunk), and it should Just Work (TM). See the README file for random ramblings about how to debug when it doesn’t :).

Enough of that sidetrack! Tomorrow I return to Decibel (which I will blog about again shortly as a huge amount has and is happening on that front). Also, there’s a bug day this Sunday… you know the drill by now, and if you don’t, watch the planet for a dedicated blog about that soon.

UPDATE: This approach currently does not work for Konqueror, but it has been pointed out to me that it is already possible to embed local plasmoids in Konqueror via a kpart. Details on Harri Porten’s blog.

Posted in KDE, Plasma | Tagged: , , , , | 26 Comments »