You are using an obsolete web browser, or you have the page styles (CSS) disabled. You'll be able to access this site, but only a visually simplified version.

Encryption in KDE SC

Security in activities

There is something that a few people here and there have been requesting – having some automatic (UI) way to create encrypted folders to keep their sensitive data in.

The thing I’m going to talk about today is exactly that – starting with KDE SC 4.9 you’ll be able to decide to encrypt specific activities. When you do that, you’ll get a ~/Activities/Something folder that is password protected and encrypted using fuse/encfs.

The encryption/decription process will be done automatically on activity switching.

For example, lets say you have two activities – Leisure and MI5 – with the latter being an encrypted activity. When you switch to the MI5 activity, you’ll be asked for its password and you’ll be able to access the data. When you switch back to the Leisure activity, the system for the previous one will be automatically unmounted.

Plasma Active Three

One of the reasons behind this new feature is PA3. You’ll have a portable device that can be stolen, that could be used by your children (while being single-user) for fun etc. and you don’t want some data to be visible to them.

In the case of PA, since there is no file manager and we don’t want to expose the file-system to the user, every document that you link to the activity will be automatically moved to the encrypted folder.

Drawbacks

There are a couple features that will stop working with encrypted activities – you will not be able to search encrypted documents by contents since the contents will not be indexed by nepomuk, and documents will not be able to belong to multiple activities if one of them is encrypted.

Poll: Wi-Fi names

Edit: Cool, thanks for the input! I get the gist what is the common format. There are some unpredictable ones, but I think we could come up with some not-useless heuristic to deduce whether two wifis are at the same institution.

Hi all, I need the following information from out awesome users – what are the names of the wifi networks you are using when you are at some institution or something. I don’t need the exact names, just the format.

So, for example, at my faculty. we have names that follow this pattern: faculty_name-classroom_number (eg. Abcd-122). At the math institute, it is something and something2.

Please write your strange formats :)

Start Active

Not for the weak-hearted

My blog has been rather empty lately. It’s not because I haven’t had anything to report, but due to the fact that many things have happened and all sorts of cool things in Plasma Active’s “Activity world” started appearing that I didn’t have the time to write about them.

Today, I’m going to write about one of the smallest things I’ve done lately that will change the world :)

startkde

startkde script had served us quite well for a long time now, and it is still the best way to start your Plasma session. But it has some downsides that we needed fixed in Plasma Active, and some features that Plasma Active doesn’t need.

So, this post is about an alternative approach to start Plasma, a new application called startactive. It is *NOT* a replacement of startkde, but an alternative. Meaning that it doesn’t do all the things startkde does, while it does some work that startkde doesn’t.

The design

The main goal of startactive’s design was to create a dependency-based system that starts various workspace components.

You can see the dependencies of various systems that startactive invokes in the following graph.

Dependency graph

The blue items are meta-modules – they don’t start anything but they make it possible to keep the organization manageable.

Waiting and starting

The system starts all the free modules (modules that don’t depend on anything) at the same time (makes a nice performance boost on both single and multi-core systems), and then waits for some of them to finish until a new module becomes free. When it does, it is automatically started.

There are two ways to see when a dependency has finished its job – 1st – the usual – wait for the process to finish; and 2nd – wait for the program to register its D-Bus service. (org.kde.nepomuk.services.nepomukqueryservice for Nepomuk, org.kde.plasma-desktop for regular Plasma etc.).

Splash screen

Now, when you’re making something that doesn’t need to provide any compatibility with existing systems, you have the freedom to do the things as you see fit. So, I felt free to abandon the old splash screen engines that KDE Workspace used, but to focus only on the QML one I blogged about some time ago. It is now run in-process avoiding dirty ways of communication via X-events and such.

The missing features

startkde does a lot of things, from the initialization of the user’s .kde directory, to fonts, mouse cursors etc.

startactive doesn’t for one simple reason – all of that should be already set up on your Plasma device. All environment variables, Qt plugin locations, directory infrastructure…

Don’t try it

The code is currently located in kde:scratch/ivan/startactive and you shouldn’t use it. Unless you are a really brave soul who doesn’t care if startactive jumps out of the system and start killing kittens in your neighbourhood.

For me, it killed only two older felines, and now it has returned and manages my system with only a few smaller issues. So, if you are brave enough, then continue reading.

To test, you’ll first need to compile it and install with the same prefix as the rest of your kde system, which in turn needs to be in your PATH. Otherwise it will not work.

Then, you’ll need to adapt the module files to fit your setup and finally start the application in an empty X session.

An ordinary startactive will do – it will, by default, start the plasma active module, but if you want to run a desktop session, and change the splash screen theme, you can do something like this:

startactive --modules desktop --splash somethemename

Missing modules

If you notice that something is not started while it should, ping me here or on IRC and tell me about it.

I’m bad

This is something I realised after reading some blogs on the intertubes – I’m bad

ZZ Top – I’m bad, I’m nationwide

I can’t wait to get my doctorate to become a Proper Villain (TM) like Dr Doom, Dr Evil …

Splash screens and QML

If you were to pass by Sebas’ house these last few days of Tokamak 5, you’d see a window full of post-its that contained tasks that we plan to do (can be seen on Kevin’s blog).

Tokamak5 Logo

One of the post-its was 1/8 in size compared to the normal ones and it only said TSP, an abbreviation for ‘The Secret Project’. I didn’t want to tell anyone what I was doing until I see what comes out of it.

So, after meddling with Xlib, strange code-paths in kde-workspace I’m proud to present a new splash screen engine that can do QML.

Why this? The main reason is that creating new splash screens currently sucks – everything is prerendered and the theme authors don’t really have any control over the process. That is probably the main reason we still have basically the same splash screen as we did in KDE (SC) 3.x.

Currently under a GIT branch of kde-workspace, KSplashQML allows the theme creator to define the animations in a more pleasant manner, to adapt the animation to the screen size…

The theme is rather simple – black/white KDE logo with rotating gear that fades into the logo that can be seen in the screenshot. If you are wondering why the text says ‘Friday’, it is because we are recognizing the fantastic song made popular by our idol Rebecca.

Tokamak 5 is approaching the end – only Marco and I still linger around (and Sebas, naturally) – and that is going to end tomorrow around noon.

Activity templates and security

Tokamak5 Logo

So, as you all should already know, Tokamak 5 (plasma developer sprint) is in progress. The main desktop-related thing I’ve been working on last two days was presenting a few chosen activity templates as if those were real.

What does this mean? That you’ll see a couple of activities in your activity bar that don’t really exist. This was done, along some other stuff, to promote the activities a bit more.

Activity template

Currently, as far as I know (as usual, I’m the backend guy and have no clue what will end up in the release for the user to see :) ) the only one /fake/ activity you’ll see is the ‘Photos activity’. It is meant for something that we all enjoy – managing our photo collections.

Before you start arguing that you don’t want to see a bunch of templates in your list of activities, this affects only the defaults – you can easily remove them like any other activity – click the red ‘x’ and you’re done.

Running applications

Apart from defining the widgets layout, templates are now able even to start applications. In the case of the ‘Photos’ activity, it will start Digikam and Gwenview.

Since the templates can be downloaded via GHNS (from kde-look and similar sites), automatic execution of apps is rather dangerous, so you’ll be asked for the confirmation on which programs to run.

You can see what it looks like in the screenshot above. Recognized desktop applications are presented with their names and icons, and are automatically selected. While other programs (like in this case ‘rm’) will have a warning icon in front and will be automatically deselected.

EDIT: I’ve just added a rather rigid test for the ‘safety’ of apps – the application is automatically selected only if it is a registered desktop application and it doesn’t have more than one argument specified. So, the things like konsole -e ‘something’ are not going to be selected by default.

As Notmart said “I have a dream!”. (I have no clue what this sentence has to do with the blog post, but I didn’t want to finish it with the usual ‘that’s all for now’ :) )

Telepathy – straight of the Shelf

Telepathy Shelf

I’ve been interested in Telepathy for some time now. And every time it was mentioned on PlanetKDE, I wanted to test it. Some things worked, some not. Now, that the important ones are functional – system settings module, contact list, chat window – I decided to start the preparations for Lancelot to switch from Kopete to Telepathy.

So far, I’ve managed to display the list of accounts, and it will soon show the contacts as well.

Plans for 4.7

AFAIK, Telepathy will not be replacing Kopete in 4.7, so Lancelot will still be using the old (current) contacts model.

With that said, there will be a possibility to use the Telepathy model in the Shelf applet – it will be available via the configuration dialogue.

For Lancelot, I’ll probably make a hidden (non-UI) option.

That’s all for now.

Activities in Switzerland (pun intended)

This is a short post about one of the interesting events that is going to happen in Randa this summer.

Usually, multiple developer sprints are not held in the same place at the same time, but now we’re gonna have four very important ones from June, 1st to June, 7th in Randa, Switzerland – Platform 11 (kdelibs and kde platform sprint), Nepomuk, Multimedia and KDevelop.

I’ll have to develop a split personality for this one since I’m planning to get involved in P11 and Nepomuk as well. My main purpose over there will be to finish the activities backends and to push a few things into kdelibs.

Join the evolution

Aaron and Sebastian have already blogged about Platform 11 and the Nepomuk sprint so I’m not going to repeat what they said.

I’m just going to add that if you are interested in smarter handling of recent/favourite documents/web pages etc. based on user’s usage statistics and not only on the last access timestamp, if you want to have the possibility to retrieve documents that are tied to a specific project/task youre working on … and other activity-related stuff, you should join us and get the opportunity to discuss these topics in-person.

You might have noticed that this is the first time activities are a part of a sprint that is not Tokamak (Plasma sprint) – it is due to the fact that we’re expanding :) – the activities are now nicely separated into the libs/data/backends (Platform 11 + Nepomuk sprint) and user interface (Tokamak 5 – soon to be held in Nederlands).

Small Blogilo review

I’ve been using Blogilo for the last few blog posts, so I decided to write a few lines about it.

The Good

Well, almost everything. The program really works and feels nice like most KDE apps. Kate-based editor for the code – nice syntax colouring, code completion etc.

The Bad

The generated html code is formatted badly. It wouldn’t be much of a problem if you edit things using the ‘Visual Editor’, but it also reformats your manually entered html code.

The code in the editor gets reformatted on Preview. And on ‘Submit’, althoughit doesn’t change the code in editor, the submitted code to the server isreformatted.

Reported as BUG:268552

The Missing

The main thing I’m missing is auto-completion or a tag-cloud of the post tags used before.

The Overall

Even with the above, it is very likely that Blogilo will become my replacement for the WP’s web interface :)

Back to code, back to the activities [code, openSUSE, Nepomuk, Zeitgeist]

I was (more than) a bit silent lately. The thing called ‘life’ happens and you get dragged away from your computer ;)

Striped SAL

The strange thing is that lately, I’ve been doing more artwork than coding, so the new openSUSE 11.4 is fully stripe-themed and (IMO) looks awesome.

I don’t use openSUSE, but that doesn’t mean I should avoid contributing to one of the best KDE experiences out there, right? :) (Ok, this ended up being a contribution even to Gnome installs which required quite a lot more work, but I don’t really mind)

Striped SAL

The additional thing that made my day was the openSUSE review on the Linux Action Show. Chris (one of the hosts) didn’t stick with the original theming, but chose to use the standard blue Stripes with the Slim Glow plasma theme. The only thing better than being the default is being a choice over the default. :)

Coding again

Well, after reaching the artwork stardom :), I decided it was the time to return to my true calling. The first thing in line were a few Lancelot bugs that needed attention, and that don’t depend on the future libplasma2 development. No new features yet – but stay tuned – there should be some soon.

Activities

The main reason I got involved in developing the activities system in the first place was to have different favourite applications, different usage statistics (files opened, browser history etc.) in different activities. It always seemed daft to have Inkscape, Gimp and similar in the appmenu when I’m doing some non-GUI C++ coding.

The thing that will be responsible for that kind of stuff is the kactivitymanagerd. It currently (4.6) only controls which activities exists (along with icons, names, running/stopped states…), and which one is currently selected.

The next big thing is making it track the user’s behaviour and things that are accessed on per-activity bases. At first the data was supposed to be stored in Nepomuk, but Sebastian raised concerns that it might slow down the database too much (needs to be tested) since it would require a vast amount of data to be stored.

The second option was to use Zeitgeist as proposed by Seif (the lead Z devel). Now that we have a usable Qt API for it, the second option became viable as well.

Since I’m not famous for betting all my money on one horse, I decided to refactor the current code to be able to handle different backends, and use the one(s) that is(are) available.

Features

Currently, the following is planned for the backends:

Nepomuk Zeitgeist
Top rated[1] files[2] per (app, activity) pair yes yes
Top rated files per application yes yes
Top rated files per activity yes yes
Files accessed on a specific date no[3] yes
  1. Rating will be automatically calculated based on usage
  2. Files, locations, web pages, contacts etc.
  3. If the tests show that Nepomuk doesn’t slow down when saving each event individually, this will be a ‘yes’

No-backend support

Naturally, if you don’t want to use Nepomuk nor Zeitgeist, you’ll not get the rating goodness. But that doesn’t mean you’ll be left out – per-activity recent documents, places etc. are still a possibility.

Ok, this was a bit longer than I expected, sorry for that :)

Next Page »