SETTING UP A KDE DEVELOPMENT ENVIRONMENT

Season of KDE is about to start, and I’ve been getting a number of emails with students struggling to setup a development environment. For KDE, it isn’t quite trivial. While there are multiple ways to setup a development environment, I’m going to go through how mine functions. I know many developers who have a similar setup. Step 1 - Choose your distribution I develop exclusively on Linux, so do most KDE developers.

BALOO 5.15

We have a new release of Baloo. For those of you who don’t know about it - It’s a file indexing and searching solution for Linux. It’s quite fast, and shipped by default in KDE Plasma. Baloo is part of KDE Frameworks and has a fast 1 month release cycle. So, I’m probably going to be spamming you about the big changes in Baloo each month. The 5.15 release focused a lot on tooling and bug fixing.

BALOO AND NODEJS

I took some time to write some very basic nodejs bindings for Baloo. They are available on github and npm. Example It can be installed via npm install baloo var Baloo = require('baloo'); var query = new Baloo.Query('keyword'); query.exec(function(results) { results.forEach(function(filePath) { console.log(filePath); }); }); I’m aware of a few people who have deployed Baloo on a server. I’m hoping this will help them. It also paves the way for some interesting web-based user interfaces for file-searching.

KDE AND THE SEMANTIC DESKTOP

During the KDE4 years the Semantic Desktop was one of the main pillars of KDE. Nepomuk was a massive, all encompassing, and integrated with many different part of KDE. However few people know what The Semantic Desktop was all about, and where KDE is heading. History The Semantic Desktop as it was originally envisioned comprised of both the technology and the philosophy behind The Semantic Web. The Semantic Web is built on top of RDF and Graphs.

KDE ... NOW

Last week I got decently annoyed by having to lookup my flight information before FOSDEM. Also, you always forget when your flight is afterwards. Google started “Google Now” which aims to provide useful information about current events through your Android phone. But that does involve it going through your email. With that in mind, as a weekend project, I started to write a replacement. Initially, I started with just scrapping the information from the emails.

KRUNNER AND PLASMA 5

Let’s talk us about KRunner and what has changed over the course of Plasma 5. KDE 4 and KRunner During the KDE 4 series, KRunner was an important part of the KDE Workspace, and it was tied very closely to Plasma. The KRunner library was in fact a part of the Plasma library. The entire UI was based on QGraphicsScene. Considering that we were moving to QML for Plasma 5, the UI needed a complete rewrite.

SEARCH FOLDERS IN PLASMA 5.1

Everyone loves Search Folders. These are custom folders which can show you files based on a search result. In the KDE4 days, Nepomuk provided some of this, and we even had a tags:// protocol. Now, with Plasma 5.1, we’re pushing the first incarnation of “Search Folders” built on top of Baloo. Here are some quick examples - baloosearch://?query=Random Words baloosearch://?query=tag:Death baloosearch://?query=tag:Death OR artist:Coldplay baloosearch://?query=width:100 AND tag:Sunset The query syntax supports simple property names which you would expect along with any values.

EXTENDED ATTRIBUTES UPDATES

Recently I blogged about how we have been reducing the number of databases in Plasma. We have been doing this by using the file system to store additional information such as tags, ratings and comments. Unfortunately, extended attributes are not supported on all file systems. The most notable ones are “FAT” and any Network File Share. With Plasma 5.1, Baloo will not support tags, ratings or comments in these file systems.

TEXT SPLITTING AND INDEXING

Over the last week, we have been working on improving the file searching experience in Plasma. We were mostly doing a decent job, but we were lacking in terms of proper Unicode support and making it simpler to search in non English languages. This blog post is a simplified explanation about now what goes on internally. For the purpose of this discussion, I’m going to treat all files as blobs of text.

TAGGING YOUR FILES

In 4.13, we moved away from a monolithic Nepomuk based system to a far more decentralized approach. Some parts of this are called Baloo, but to be honest, Baloo is not really responsible for managing your tags. The Nepomuk Days Back in the era of Nepomuk, every time you would tag a file. 2 things would be done - A tag would be created / fetched from the central Database The tag would be linked with the file in the same database.