Planet KDE

Syndicate content
Planet KDE -
Updated: 13 hours 6 sec ago

ownCloud stuck in upgrade?

Fri, 2014-10-24 03:31

That's what I saw today after trying to update Notes:

Not cool, that didn't seem to work too well. This can happen with third-party apps. But what to do? Just like with upgrades, you can call in the help of the occ command line tool which comes with ownCloud. Ideally, run it as user of your apache, something like this:
sudo -u wwwrun ./occ
It will give you an overview of what occ can do for you, looking something like this:
ownCloud version 7.0.2

[options] command [arguments]

--help -h Display this help message.
--quiet -q Do not output any message.
--verbose -v|vv|vvv Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
--version -V Display this application version.
--ansi Force ANSI output.
--no-ansi Disable ANSI output.
--no-interaction -n Do not ask any interactive question.

And a lot more.
From there, you can start an upgrade with:
sudo -u wwwrun ./occ upgrade
which is nice when the ownCloud upgrade process doesn't work. This can happen because php has a time-out set and if the amount of work takes longer than that timeout - it won't finish. Which can happen for example on very big installations, or on very light hardware (raspberry pi!).
But that wasn't my problem - things just got stuck in maintenance mode. And that is one of the options in the list: turn maintenance mode on and off! So I just proceeded (on advice of Arthur here in the office) to turn that off:
sudo -u wwwrun ./occ maintenance:mode --off
Lo and behold, it solved the problem for me.
If it doesn't, there is the maintenance:repair option which might fix the problem for you!
Tip: log rotationIn other news, I discovered that my owncloud.log file (to be found in your data folder) was 5.9 gigabytes big. Yeah, 6318901632 bytes. ownCloud can keep that file in check, but you have to enable that by adding the following to your config.php:
'log_rotate_size' => '100 MiB'
Of course, other values work, too. You can find this and more in config.sample.php, be sure to go over that file to see what you can and perhaps should configure. I personally would welcome any effort to give that file a user interface, or make it easier to reach - even with a text editor built into the admin UI... Although perhaps a more subtle approach of picking what should be visible or not would be better. In any case - anybody up for that?
Categories: FLOSS Project Planets

KDE Connect feature brainstorming

Thu, 2014-10-23 10:00

In a recent informal meeting of KDE users in Seattle, Andrew Lake from the KDE Visual Design Group gave me some ideas he had for KDE Connect. Since I think that we all have a different vision and different ideas that are possible to implement on top of KDE Connect, I decided to write this post asking for your ideas, in some kind of community brainstorming.

Also, since the last time I made a post about possible features for KDE Connect, a lot of them have been implemented or are work in progress, so i hope this post achieves the same effect :)

Here is my personal list of possible features:

  • Plugin for power management (sleep, shut down, etc).
  • “Find my phone” plugin, that makes your phone ring even if it is silenced.
  • Add media controls from the Android lock screen.
  • Plugin to keep your computer unlocked while phone is reachable.
  • Use the phone as a location provider for the desktop.
  • Akonady resources sync with Android (contacts, calendar…).
  • Plugin to print from your phone to your computer’s printer.
  • Add support for drag’n drop for touchpad plugin.
  • Port to other desktops and platforms: Gnome, Unity, MacOS, Windows…
  • Publish and maintain the iOS port that Yang Qiao begun this GSOC (any iPhone user around?)

And here is some stuff is already being worked on:

  • Answer SMS from the desktop (by David Edmunson).
  • Pair with a specific IP address or hostname (by Achilleas Koutsou).

Now it’s your time to come up with more ideas in the comments! And of course feel free to give your opinion/enhance the ideas on my list.

Update: As Aleix Pol suggested, I created a for KDE Connect that I will be updating with the ideas that come up in the comments.

Categories: FLOSS Project Planets

New Development Builds

Thu, 2014-10-23 08:31

It’s been about a month since we last published new development builds… And a lot has happened in the meantime. Now, before everyone starts downloading, a warning:


And we mean it. Not only does this build include a month of Dmitry’s work, but we also merged in Mohit Goyal’s Summer of Code work. That touched a lot of stuff… There is at least one known crash — the sketch brushes are broken. We’re working on fixing, but we need more testing! Please join the forum and report your findings!

Okay, so what’s in here?

Let’s take Mohit’s work first:

  1. Dirty Presets: Keeps temporary tweaks made to the preset till the session ends.
    Go to the Brush Editor box. Bottom left — select “Temporarily save tweaks to presets”. Any time you make a change to any setting in the preset — the textbox will turn pink and a “+” symbol will appear on the icon. The Reload button is used to reset the tweaks for that particular preset.
  2. Locked Settings: Keeps settings constant across presets
    In the brush editor box, for any paint option like “Size” on the left, there will be a “link” icon. Right click on that option to Lock the option. Now that particular setting will remain constant across all presets. If you change it in one preset – the changes will reflect across all presets. To unlock any option: right click on a locked option and click on Drop Locked Settings. You can either use these settings in the preset or load the last settings available in the preset.
  3. Cumulative Undo/Redo
    1. To use this feature, you will have to first have to go to Settings->Dockers->Undo History to activate the docker.
    2. Next right click on <empty> or on any stroke in the undo docker and select “Use Cumulative Undo/Redo”
    3. This feature merges commands together so the the user doesn’t have to undo a particular group one by one and has a much larger undo history than the initial 30 strokes. The feature works on three configurable parameters :
    Time before merging strokes together: while strokes are made, the code keeps checking for a particular timelapse of T seconds before it merges the groups together
    Time to group the strokes : According to this parameter — groups are made. Every stroke is put into the same group till two consecutive strokes have a time gap of more than T seconds. Then a new group is started.
    Individual strokes to leave at the end : A user may want to keep the ability of Undoing/Redoing his last N strokes. Once N is crossed — the earlier strokes are merged into the group’s first stroke.

Next, Scott Petrovic has been putting a lot of polish on Krita!

  1. Keep Eraser size. Now, toggling Erase mode with the ‘E’ shortcut will save the size of your current preset. That means that if you paint with a small brush, then erase with a big brush, you only have to press ‘E’.
  2. Saving tool options. Most of the tools now save your settings between sessions: fill, multi-line, gradient, rectangle, ellipse, line, move, text, crop, freehand…
  3. And a lot of polish in other places as well — better defaults, labels for previously unclear sliders, ‘C’ is crop tool now,  and more.

Dmitry Kazakov has worked on the transform tool. While the cage tool got plenty of fixes, he also implemented a whole new mode: liquify. This needs testing now! Now the transform tool option pane is seriously overloaded…

If you’ve got a good proposal for a better layout, please share your ideas on the forum! Right now, Dmitry is working on the next part of the Kickstarter feature list: non-destructive transformation masks.


Boudewijn Rempt did some more OSX porting work — the file dialogs should now be native and work correctly — and started working on loading and saving resource blocks, layer styles and transparency masks in PSD.

And we’ve got a nice icon clean-up, too, courtesy of Wolthera and Timothée.

Sven Langkamp has worked mostly on the MVC branch, which is where we’re trying make Krita open more than one image in a window. He got it stable enough that we could start testing for real, and Wolthera dove in and made reports… There’s a lot of work to be done here!

So, here are the new builds:

For Windows, I’ve added a zip file next to the MSI installer. Unzip the zip file anywhere, go into krita/bin, double-click krita.exe and you can test this build without breaking your real installation. Remember — this build is not ready for daily work, it’s experimental.

For OSX, here’s a new DMG. Other than the file dialog fix, there’s no new OSX specific fixes in here. We’re still mulling over ways to fund a proper OSX port, among other things.

For Linux, Krita Studio users have access to a package for CentOS 6.5, and Krita Lime has been updated for Ubuntu users.


Categories: FLOSS Project Planets

Ohio Linux Fest

Wed, 2014-10-22 16:52

This Friday the Ohio Linux Fest kicks off in downtown Columbus and I’ll be there! It is my first Linux Fest in the US so I greatly look forward to being introduced in this grand tradition. Of course, I’ll be talking about ownCloud on Saturday the 25, from 13:00 to 14:00 room D142-143.

The title of the talk is “crushing data silos with ownCloud”: helping people liberate their data from the centralized services they have stored it on. I don’t think that a world where most of the personal data of the world is stored on servers of a hand full companies is a good one. ownCloud is, right now, the best way of getting out of that world!
The talk will also cover a few interesting new ideas that we want to do in ownCloud to build a fully federated and distributed solution in the future.

It would be awesome to do a small ownCloud and/or KDE meetup there.

If you’re going to be there – let me know! Find me on twitter and lots of other social services!

Categories: FLOSS Project Planets

Conditional Sharing – Virtuoso ACL Groups Revisited

Wed, 2014-10-22 15:25

Previously we saw how ACLs can be used in Virtuoso to protect different types of resources. Today we will look into conditional groups which allow to share resources or grant permissions to a dynamic group of individuals. This means that we do not maintain a list of group members but instead define a set of conditions which an individual needs to fulfill in order to be part of the group in question.

That does sound very dry. Let’s just jump to an example:

@prefix oplacl: <> . [] a oplacl:ConditionalGroup ; foaf:name "People I know" ; oplacl:hasCondition [ a oplacl:QueryCondition ; oplacl:hasQuery """ask where { graph <urn:my> { <urn:me> foaf:knows ^{uri}^ } }""" ] .

This group is based on a single condition which uses a simple SPARQL ASK query. The ask query contains a variable ^{uri}^ which the ACL engine will replace with the URI of the authenticated user. The group contains anyone who is in a foaf:knows relationship to urn:me in named graph urn:my. (Ideally the latter graph should be write-protected using ACLs as described before.)

Now we use this group in ACL rules. That means we first create it:

$ curl -X POST \ --data-binary @group.ttl \ -H"Content-Type: text/turtle" \ -u dba:dba \ http://localhost:8890/acl/groups

As a result we get a description of the newly created group which also contains its URI. Let’s imagine this URI is http://localhost:8890/acl/groups/1.

To mix things up we will use the group for sharing permission to access a service instead of files or named graphs. Like many of the Virtuoso-hosted services the URI Shortener is ACL controlled. We can restrict access to it using ACLs.

As always the URI Shortener has its own ACL scope which we need to enable for the ACL system to kick in:

sparql prefix oplacl: <> with <urn:virtuoso:val:config> delete { oplacl:DefaultRealm oplacl:hasDisabledAclScope <urn:virtuoso:val:scopes:curi> . } insert { oplacl:DefaultRealm oplacl:hasEnabledAclScope <urn:virtuoso:val:scopes:curi> . };

Now we can go ahead and create our new ACL rule which allows anyone in our conditional group to shorten URLs:

[] a acl:Authorization ; oplacl:hasAccessMode oplacl:Write ; acl:accessTo <http://localhost:8890/c> ; acl:agent <http://localhost:8890/acl/groups/1> ; oplacl:hasScope <urn:virtuoso:val:scopes:curi> ; oplacl:hasRealm oplacl:DefaultRealm .

Finally we add one URI to the conditional group as follows:

sparql insert into <urn:my> { <urn:me> foaf:knows <> . };

As a result my facebook account has access to the URL Shortener:

The example we saw here uses a simple query to determine the members of the conditional group. These queries could get much more complex and multiple query conditions could be combined. In addition Virtuoso handles a set of non-query conditions (see also oplacl:GenericCondition). The most basic one being the following which matches any authenticated person:

[] a oplacl:ConditionalGroup ; foaf:name "Valid Identifiers" ; oplacl:hasCondition [ a oplacl:GroupCondition, oplacl:GenericCondition ; oplacl:hasCriteria oplacl:NetID ; oplacl:hasComparator oplacl:IsNotNull ; oplacl:hasValue 1 ] .

This shall be enough on conditional groups for today. There will be more playing around with ACLs in the future…

Categories: FLOSS Project Planets

Kubuntu 14.10

Wed, 2014-10-22 11:10

Kubuntu 14.10 is available for upgrade or install. It comes in two flavours, the stable Plasma 4 running the desktop we know from previous releases, and a tech preview of the next generation Plasma 5 for early adopters.

Categories: FLOSS Project Planets

KDAB contributions to Qt 5.4: qmllint

Wed, 2014-10-22 10:20

One type of bug I see very often comes down to syntax errors in QML and JavaScript files. Most of the time these errors are simple typos; however, they creep in, go unnoticed by continuous integration and sometimes reach production — especially on delayed loaded components.

I like fixing bugs, but what I love even more is not fixing them, so I wrote a command line tool that can easily be integrated into our CI system so we can nip them in the bud at build time.

Enter qmllint: a command line QML syntax checker. Example usage:

$ qmllint ClickableImage.qml ClickableImage.qml:17 : Expected token `numeric literal'

Verifying all files:

$ find -type f -name \*qml -exec qmllint \{\} + ./qml/SettingsPage.qml:35: Unexpected token `if' ./qml/AboutPage.qml:35: Expected a qualified name id

qmllint comes with Qt 5.4 and lives alongside other Qt tools.

Furthermore, I would also recommend using other linter tools in your project, such as json_verify or xmllint. Do not do manually what could be automated by the build system!


qmllint cannot catch semantic errors. There are cases where QML files are syntactically correct but have other types of problems:

Bar.qml:1 TypeFoo is not a type Bar.qml:2 module "QtQuickControls" is not installed Bar.qml:6:9: QML Rectangle: Cannot anchor to an item that isn't a parent or sibling.

There are no plans on my part to make this tool smarter, I like the “do one thing and do it well” philosophy, so it is finished. Checking for these kinds of mistakes is also very difficult, f.i. because we would need to depend on the QML context of a running application.

But don’t worry, my next blog post will address automating semantic validation, so stay tuned!

The post KDAB contributions to Qt 5.4: qmllint appeared first on KDAB.

Categories: FLOSS Project Planets

Interview with Rose Morgan

Wed, 2014-10-22 06:47
Would you like to tell us about yourself?

My name is Rose and I’m a 25 year old freelance artist from Melbourne, Ausfailia. I really like anatomy and medical science which is a theme among a lot of my work- or it’s at least inspired by it. I love videogames, nature, robots and old fashioned stuff. Etc etc. You can pretty much gather everything you need to know from my art itself; it’s very personal to me.

Do you paint professionally or as a hobby artist?

Professionally. Currently finishing a certificate IV in small business management so I can register as an official full time business. I’ve been doing art as part time work since 2005, though.

When and how did you end up trying digital painting for the first time?

I’ve drawn in MS paint since I was like ten. It was my favourite thing ever
as a kid haha. I thought it was magic! But, well, photoshop etc– I had been using that for a decade, before I found you lot at the start of this year.

What is it that makes you choose digital over traditional painting?

Less set up time, less messy, less expensive. Also its diversity is really wonderful.

How did you first find out about open source communities? What is your opinion about them?

Well, since I started using linux- about the start of this year. And I love them! I like how people work together and it has a sense of community rather than “here’s this stupidly overpriced piece of software and hahaha we don’t care about you or your opinions about it.”

How did you find out about Krita?

My boyfriend- he uses it, and got me onto it also. I’d hit an art slump and he suggested a change of scenery. It worked.

What was your first take on it?

It was weird since I’d never swapped from photoshop before and ten years is a long time to be using a piece of software- but it was intuitive enough that I didn’t take too long to get used to it. It’s the first program that’s led me away from PS so you must have done a lot right!

What do you love about Krita?

The brushes. My art instantly improved and stopped having that really glossed over digital look once I started using krita. That’s not to say I blame my tools for that- but the brush dynamics let me experiment more and get things looking less plastic. I never really experimented with custom photoshop brushes, so I like that krita just has a set of really amazing ones that come with it instantly. It never occurred to me to use custom photoshop brushes, which sounds dumb to me now but y’know… ~personal growth~ and all that.

What do you think needs improvement in Krita? Also, anything that you really hate?

I really really hate the text tool lol. It’s really clunky and hard to edit. The brushes also have slight pixelyness to them when resized small, which can be frustrating since I love my small details. But I found a workaround and use the already tiny hard brushes on low opacity. The sharpen tool could have more dynamic controls like gimp and photoshop’s one, also. I just duplicate the picture layer, sharpen it and put that layer on a lower opacity since the more customizable sharpen doesn’t produce the sort of sharpness I want. I wish I was more helpful on that point, I’m not sure exactly how to explain what I mean. ARGH, WORDS.

In your opinion, what sets Krita apart from the other tools that you use?

The brushes and the interface, definitely. I also like that it’s not bloated like photoshop is. It doesn’t have ten trillion things that I’ll probably never use. Krita gemini works super well on my surface pro 2, also– really impressed with it.

If you had to pick one favourite of all your work done in Krita so far, what would it be?

A really creepy portrait of one of my anthro characters as a human. Kind of.

What is it that you like about it? What brushes did you use in it?

I don’t normally draw “humans” (if you’d even call him that) and I usually have such a hard time getting my human characters to look right. But I’m really proud of his face there.

I also had a blast painting that wall, lol. I love that I can paint stuff like that without textures with the brushes krita has.

I used: block_mix_tilt, hairy_tapered, bristles_tapered, basic_circle_wet, airbrush_linear, splat_mix_cells. Plus a  metric buttload of overlay layers and emboss.

Would you like to share it with our site visitors?

Yes! The world needs more nightmare fuel.

Anything else you’d like to share?

You can find my work and links to everywhere I’m a regular at here: I’m really easy to stalk, I’m that username everywhere. Except for twatter. Damn it’s stupid username character limit, hisss hisssssss (I got machinesbleed there instead.) Oh, and, keep being awesome!


Categories: FLOSS Project Planets

Quick Update…

Wed, 2014-10-22 04:52

So… What’s been going on since our last update? Quite a lot! Boudewijn visited Latinoware 2014 and gave a presentation about free and libre graphics software, including Krita of course! You can download the slides here. It’s not yet known whether the presenations were recorded.

Wolthera visited Facts, where she demoed Krita on a big Yiynova tablet monitor. It’s a huge show, and there was a big audience for Krita. Lots of painting fun was had by kids passing by, too.

Next up will be two cool events in the United States, in Seattle, where Oscar Baechler will present Krita:

In Seattle, Oscar will be teaching Krita at SeaGL (The Seattle GNU/Linux Conference) on Friday, October 24th. He’ll show off the best features that set Krita apart. Then he’ll give a demonstration of using Krita in a painting workflow and comics workflow. There’s plenty to see at SeaGL, find out more here:

And in November, Oscar Baechler will demo Krita at USENIX/LISA expo’s KDE booth. He’ll be showing off techniques and features all day. Attending the expo floor is free. Register here:

And right now, Dmitry is merging the liquify transform code to master… Expect new development builds by the end of the day! And there’s progress, though nothing usable yet, about loading and saving transparency masks and layer styles in PSD files.

Categories: FLOSS Project Planets

How could KTracks look like?

Wed, 2014-10-22 04:13

In a series of articles we illustrate the user centered design process from scratch, based on a still missing application in the KDE world: KTracks, an endurance activity tracker. In this part #3 we present mockups of the application.

Keep on reading: How could KTracks look like?

Categories: FLOSS Project Planets

Calligra Gemini - now also for Linux :)

Wed, 2014-10-22 02:41

Some people may remember earlier this year when Krita Gemini became (to my knowledge) the first open source software to become greenlit on Steam. For those who don't, yeah, that really happened ;) Krita Gemini was a project created in cooperation between the KDE community's Calligra team, the little software consultancy KO GmbH, and a large semiconductor manufacturer named Intel, who had some devices they needed to be able to show off. Krita Gemini is available on the Steam store, though not yet for Linux (as it turns out, Steam packaging for Linux is even more awkward than building stand-alone installers for Windows, an odd sort of situation for us used to sensible package managers)

Earlier this year (late April 2014) the team from KO and Calligra which built Krita Gemini had a teleconference with the Intel team, and we agreed that other applications would be well suited to a similar attention, and we came up with the idea of building Calligra Gemini, an application which would encapsulate Words and Stage, Calligra's word processor and presentation tool respectively, in the same way that Krita Gemini encapsulates Krita, with automatic switching between the existing desktop UX and a new touch friendly UX created for the purpose. Over the last little while, i've been posting builds on the project minisite (along with release notes and screenshots and such).

So now, with the initial work on that project reaching its conclusion, i decided that it was time to expose a few more people to it than what's been the case so far. So, over the course of this weekend, between making some tasty bread, cleaning and cooking dinner, i have been working on some packages for people who don't run Windows. Specifically, i have made a set of packages for openSUSE (just 13.1, in various guises, for now - others will follow), and they're available right here (and also shown on the project's minisite linked above)

Finally, i also released a short story i've been writing over the last couple of weeks (while waiting on the editors to get back to me on the novel i've also been working on). This is relevant here because i have been dogfooding; it was written entirely using Calligra Gemini, and the pdf and ePub versions were produced using the Calligra features as well. Finally, the work is stored in a git repository, which is also controlled by Calligra Gemini's support for using Git as cloud storage. The story is available as pdf and ePub on my deviantArt page :)

The word of the day is: Geiko
Categories: FLOSS Project Planets

Session notes/research for Linux Unplugged 63

Wed, 2014-10-22 00:56

Interview today for Linux Unplugged 63 which was fun! However we never discussed Kubuntu, which I understood was the subject. I had gotten together facts and links in case they were needed, so I thought I would post them in case anybody needs the information.
Created and supported by community: support for users: by Blue Systems to some developers & projects: support by Ubuntu, KDE, Blue Systems and DebianGovernance: Kubuntu Council
How to contact us:, freenode irc: #kubuntu (-devel), kubuntu-user list, kubuntu-devel list, kubuntuforum  -  -  -  -  -  - Documentation on KDE userbase:  - Kubuntu in the news:
* our "upstream" KDE is also making big changes, starting by splitting kdelibs into the Frameworks, and basing them on Qt5  - that work is largely done, although of course each library is being improved as time goes along. Releases monthly.  - We're writing a KDE Frameworks book; more about that at  - Developers: apidox at
* KDE has now released Plasma 5, based on those new frameworks  - that is nearly done, and 5.1 was released 15 Oct.  - lots of excitement around that, because it looks and works really elegant, smooth and modern  - Riddell: 14.12 release of KDE Applications will be in December with a mix of Qt 4 and Qt 5 apps, they should both work equally well on your Plasma 4 or 5 desktop and look the same with the classic Oxygen or lovely new Breeze themes
*  so our upstream is up to lots of new wonderful stuff, including using CI too (CI: continuous integration with automated testing)
* meanwhile, bugfixes continue on KDE4:
* Our base for 14.10 (codename Utopic Unicorn) is that stable KDE platform.* At the same time, we are releasing weekly ISOs of Plasma 5, to makeit easy for people to test  - - Riddell: We're releasing a tech preview of Kubuntu Plasma 5 as part of 14.10 for people to test. I'm using it daily and it's working great but expect testers to be competent enough to check for and report beasties
* we're following along to KDE's CI effort, and doing that with our packages  - see #kubuntu-ci IRC channel for the reports as they are generated - Riddell: gory details at - packages built constantly to check for any updates that need changed
* Our new packaging is now in Debian git, so we can share packaging work  - as time goes on, all our packaging files will be there  - tooling such as packaging scripts are being updated  - Debian and Kubuntu packagers will both save time which they can use to improve quality
* moving from LightDM to SDDM (Simple Desktop Display Manager), KDE/Qt defaultgraphical login program
* moving to systemd replacing upstart along with Debian and Ubuntu at some point in the future
* moving to Wayland when it is ready along with KDE (Kwin); now on xorg windowing system. We do not plan to use Ubuntu's Mir
* Testing until release (please!) on the 23rd:  -  -
* Testing Plasma 5: install)  - (upgrading)
* Another way we stay close to KDE is that since Ubuntu stopped inviting community members to participate in face-to-face meetings, we have a Kubuntu Day with Akademy, KDE's annual meeting. Thanks to the Ubuntu Contributors who paid the travel costs for some of us to attend
Qt Free:
--Thanks to Jonathan Riddell for his clarifications and corrections

Categories: FLOSS Project Planets

Joining Kolab Systems

Tue, 2014-10-21 06:45

I've been a long time fan of Kolab, the free software collaboration and groupware system. I have recommended it, and even helped deploy it a few times, since it launched some ten years ago. I used it back then with KDE's Kontact, and still do to this day.

Kolab interested me because it had the opportunity to join such key free software products as LibreOffice (then Open Office) and Firefox in terms of importance and usage. Think about it: in a professional setting (business, government or educational) what key software tools are universally required? Certainly among them are tools to read and edit office documents; a world-class web browser; and collaboration software (email, calendaring, contacts, resource booking, notes, task lists, file sharing ...). The first two were increasingly well covered, but that last one? Not so much.

And then Kolab walked on to the stage and held out the promise of completing the trifecta.
However, there were years in between then and now when it was less obvious to me that Kolab had a glowing future. It was an amazing early-stage product that filled a huge gap in the free software stack, but development seemed to slow up and promotion was extremely limited. This felt like a small tragedy.

So when I heard that Kolab Systems was launching back in 2010 as a company centered around Kolab, I was excited: Could this be a vehicle which tows Kolab forward towards success? Could this new company propel Kolab effectively into the market which is currently the domain of proprietary products? Only time would tell ... I knew the founders personally, and figured that if anyone could pull this off it would be them. I also knew that they would work with freedom and upstream communities as priorities.

Four years later and Kolab Systems has indeed been successful in bringing Kolab significantly forward technologically and in adoption. Today Kolab is more reliable and has a spectacular set of features, thanks to the solid engineering team that has come together with the help and support of Kolab Systems.

Their efforts have also resulted in Kolab being used more: Fortune 100 companies are using Kolab, the city of Munich is currently migrating to it, there are educational systems using it and, of course, there is My Kolab which is a hosted instance of Kolab hat is being used by an ever growing number of people.

Kolab Systems has also helped the free software it promotes and relies on flourish by investing in it: developers are paid to work on upstream free software such as Roundcube and Kontact in addition to the Kolab serer; community facilitation and public promotion are in focus ... there's a rather nice balance between company and community at play.

There is still a lot to do, however. This is not the end of a success story, perhaps only the end of the beginning. So when the opportunity arose to join Kolab Systems I didn't have to think twice. Starting this month I am joining the Kolab Systems team where I will be engaged in technical efforts (more so in the near term) as well as business and community development. I'm really excited to be joining what is a pretty stellar team of people working on technology I believe in.

Before I wrapping up, I'd like to share something that helped convince me about Kolab Systems. I've known Georg Greve, Kolab Systems' CEO and Free Software Foundation Europe founder, for a good number of years. One afternoon during a friendly walk-and-chat in the countryside near his house, he noted that we should not be satisfied with just making software that is free-as-in-freedom; it should also be awesome software, presented as something worth wanting. It is unrealistic to expect everyone to use free software solely because it is ethically the right thing to do (which it is), but we might expect people to choose free software because it is the most desirable option they know of. To phrase it as an aspiration:

Through excellence we can spread freedom.
I'll probably write more about this philosophy another time, as there are a number of interesting facets to it. I'll also write from time to time about the the interesting things going on in the Kolab world .. but that's all for another time. Right now I need to get back to making notes-on-emails-sync'd-with-a-kolab-server work well. :)

Categories: FLOSS Project Planets

Libinput integration in KWin/Wayland

Mon, 2014-10-20 08:27

Today I pushed my outstanding branch to get libinput support into kwin_wayland. Libinput is a very important part for the work to get a full Wayland session in Plasma which means we reached a very important milestone. As the name suggests it allows us to process input events directly. KWin needs to forward the input events to the currently active application(s) and also interpret them before any other application gets them. E.g. if there is a global shortcut KWin should intercept it and not send it to an application.

Why libinput integration in KWin?

KWin/Wayland already supported input handling by being a Wayland client and connecting to a Seat. But especially for pointer events this was not sufficient at all. We have quite some code where we warp the pointer and Wayland doesn’t support this (and shouldn’t). Warping the pointer is normally considered evil as it can introduce quite some problems if applications are allowed to warp the pointer. E.g. it can create security issues if you start typing your password and a malicious applications warps the pointer to trick you entering your password into a password field of the malicious application. Also from a usabililty perspective it can be problematic as it makes the system behave in an unpredictable way.

On the other hand if the application is a window manager/compositor the need for warping cursors arises. For example the screen edge handling pushes the cursor slightly back which needs cursor warping. Or you can move a window with the cursor keys (hold Control key to have very precise moving) and in these cases we need to warp the pointer. With libinput this is possible again as KWin gets put in control of the input events directly. It completely bypasses the currently used Wayland compositor.

Libinput is also an important piece in the puzzle for a full Wayland session which does not rely on another Wayland compositor. So far KWin/Wayland can only be used in a nested scenario – which is important for development and interesting new possibilities like the idea for a SoK project – but we also want full support without the need for a Wayland session. This means we need to handle input (which libinput does) and need to interact with DRM directly. DRM support is still missing. This could be an interesting GSoC project next year

The merged implementation does not support all of libinput yet. Most important touch screen support is omitted as I don’t have a touch enabled device. I plan to sit down with fellow KDE developers who have a touchscreen enabled device and implement that part together. Also I will contact the VDG to define some global touch gestures to interact with the system (I’m quite interested in having a touch gesture to activate Present Windows). There’s lots of work to be done here and I would welcome any helping hand.

Security challenges

Processing input events directly comes with a slight problem, though: one needs to be root to read the events. And that’s obviously an absolute no-go for KWin. KWin may never ever be executed with root privileges and also not an suid which drops privileges again (which also wouldn’t help in that case but so what). The application has not been designed for running as root. The same is the case for Weston and obviously I looked at how it’s solved there and there is a very neat solution to support the use case we have in logind. The session controller can ask logind to open devices and logind provides a file descriptor to the opened device. In addition logind automatically takes care to close the file descriptors when a VT switch happens, which is extremely convenient for the use cases of Wayland compositors. So obviously I went for this solution as all it needs is connecting to very few D-Bus calls. This means the libinput integration in kwin_wayland will have a runtime dependency to a logind D-Bus interface. Of course this does not affect kwin_x11, neither does it affect kwin_wayland without libinput integration, but of course without libinput you won’t get support for all features. There is one caveat though: logind will blank the VT when the session controller goes away. So make sure to not run kwin_wayland with libinput support on your primary X session. Because of that libinput support must be explicitly enabled with the –libinput command line switch of kwin_wayland.

Current state and downsides of libinput and logind

As libinput does not yet have a stable release, the dependency is still optional and it’s possible to build kwin_wayland without libinput support. This is currently very important for the non-Linux operating systems, which might want to provide kwin_wayland, as libinput only supports Linux.

I hope that libinput will become available on other platforms. At XDC during the BSD presentations I heard at least one presenter touch the topic. So I’m optimistic that in the long run this will happen as we also see that DRM and KMS is nowadays in quite a good shape on the BSDs. For KWin development it’s of course important that we have only one library to interact with. Otherwise it means platform dependent code which is hard to develop and extremely difficult to test for the main developers not using such a platform. So if you want to get kwin_wayland on non-Linux, please consider putting the energy into getting libinput working (challenge is udev) as that will help all systems and not just KWin. After all we want to stand on the shoulders of giants

Logind is in a similar situation. It is developed as a component in systemd, which isn’t available on all systems which run KWin. Luckily we don’t depend on logind directly but only use a subset of a well defined D-Bus interface and that interface can be provided by other tools as well. Something like that is already being worked on for the BSD’s.
Like with libinput, I would much prefer to keep KWin lean and efficient and not complicate the code base and development by including libraries for specific platforms or having security relevant code around. As written above: using suid wrappers is very much a no-no to me. But of course it would be possible to implement the subset of the D-Bus in an independent project and provide it. KWin would happily use it, it just needs someone to write the code. So if enough people care, I’m quite sure that there will be a developer stepping up and writing the code.

I decided to put out a small FAQ here for those who have questions about the implications of the above:

FAQ Does that mean KWin (and Plasma) depend on systemd?


But it depends on logind?

No. It uses one D-Bus interface provided by logind. It doesn’t care which program is providing this D-Bus interface. It can be logind or logind-shim or the implementation being worked on for the BSDs. Even a small binary just providing the used D-Bus interfaces would work.

You should not use logind, there must be a different solution!

I’m sorry I did not find any solution which was as efficient and secure as the one provided by logind. Of course there are solutions like weston-launch, but they introduce a lot of complexity – both on the coding side and on the installation side. As such a solution would need to be suid, I’m very reluctant to the idea. We shouldn’t introduce such possible security risks, if there are better solutions available. Logind is simply providing a feature which is needed by kwin_wayland.

Does that affect KWin on X11?

No, that only affects kwin_wayland.

But there is no logind for the BSDs! So I won’t be able to run kwin_wayland on BSD systems?

Unfortunately the fact that logind is missing is least of your problems on BSD. Logind support is only needed for libinput which right now is not available on BSD. The kwin_wayland binary on BSD will not try to interact with logind. I’m sorry I don’t have a solution for the input stack on BSDs. I really hope the BSD developers can come up with a solution for this as we don’t have the resources to build a separate input solution for one platform.

How can I change KWin to not use logind?

As I noted, it is important to me that KWin is secure and that the code base is as easy to understand as possible. I don’t like the idea of having ifdefs all over the place and multiple solutions as that results in bitrot. When I pushed the libinput change it directly failed to build on the CI system as the ifdefs introduced a variation which I couldn’t test on my system. Each ifdef and each platform-specific solution increases the development and maintenance costs significantly. This means that I will only accept patches which don’t introduce the above mentioned problems. Preferrable a small wrapper binary could provide the needed D-Bus interface for KWin and other applications which need this functionality. This would not need changes in KWin at all and would be from my perspective the perfect solution.

Why won’t you implement such a wrapper binary?

Honestly there are a million things I would do if I had time, but a day has only 24 h and I have to prioritize my work. Just check the Wayland TODO list for what we all need to do to get KWin/Wayland ready. Why don’t you open your editor and get some work done?

But if KWin uses logind, Slackware will drop all of KDE!

Yes, I have read that (see comments). Luckily the situation for Slackware is similar to the BSDs: it doesn’t matter right now. Slackware doesn’t provide Wayland packages yet, so the logind support won’t be used as there is no kwin_wayland binary which could be built. And if enough people care, as I said, one or more of them can write the wrapper binary and KWin and other compositors will work just fine.

How can i help?

Best by writing code See the TODO list I linked in an above answer. Also it would be good if someone documented the steps to get kwin_wayland running and how to develop on it cough.

Categories: FLOSS Project Planets

Forthcoming Kubuntu Interviews

Mon, 2014-10-20 06:36

Kubuntu 14.10 is due out this week bringing a choice of rock solid Plasma 4 or the tech preview of Kubuntu Plasma 5.  The team has a couple of interviews lined up to talk about this.

At 21:00UTC tomorrow (Tuesday) Valorie will be talking with Jupiter Broadcasting’s Linux Unplugged about what’s new and what’s cool.
Watch it live 21:00UTC Tuesday or watch it recorded.

Then on Thursday just fresh from 14.10 being released into the wild me and Scarlett will be on the AtRandom video podcast starting at 20:30UTC.Watch it live 20:30UTC Thursday or watch it recorded.

And feel free to send in questions to either if there is anything you want to know.


Categories: FLOSS Project Planets

What do you require from KTracks?

Mon, 2014-10-20 02:59

In a series of articles we illustrate the user centered design process from scratch, based on a still missing application in the KDE world: KTracks, an endurance activity tracker. In this part #2 we talk about requirements.

Keep on reading: What do you require from KTracks?

Categories: FLOSS Project Planets

KDE Telepathy 0.9.0 Released

Sun, 2014-10-19 13:54

Today we released the 0.9 series of KDE Telepathy, a multiprotocol instant messaging client for Plasma.

Amongst the many bugfixes the following features are worth highlighting.

OTR Encryption

One of the most recurring feature requests we've seen over the years was OTR encryption. OTR builds an extra level of encryption on top of the existing protocol embedding all data in the mesasges themselves. This prevents any potential sniffing from the server as well as providing perfect forward secrecy and non-deniable authentication

This summer Marcin Ziemski volunteered to step up to the task and implemented full support for OTR3, including shared secret authentication and key management.

A full video can be seen here

Group Chats

All aspects of group chats recieved a massive overhaul, there is a new join chat dialog, one can stay logged into a room when you close the window and we've redesigned the main chat window to be easier when talking to multiple people.

Video Calls Revisited

Video calls have had both a technical and UI overhaul. Diane Trout ported a lot of QtGstreamer and the CallUI to GStreamer 1.0.

This port allowing us to future proof for the new technologies and have more chance of working calls.

In addition Ekaitz Zárraga has rehauled the UI bringing it into the 21st century which can be seen in the screenshot.

We encourage you to try it out. Depending on your and your partner's setup, you might now have a good video chat experience. For best results use a real jabber server (Not Facebook or Google!) the same client and be sure to have all GStreamer codecs installed.

Speed Improvements and Bug Fixing

Naturally the release brings a slew of bug fixes and improvements not listed here. Specificially the contact list has undergone extensive profiling and optimising since 0.8.


You may notice some of the features were highlighted in the report from our previous sprint report. If you like the new features be sure to contribute to our winter fundraiser so we can keep doing sprints in future.

Categories: FLOSS Project Planets

Yakuake Skins

Sat, 2014-10-18 18:43

is a drop-down terminal for Linux. You can drop-down the terminal via the F12 key.


Es you can see in the settings you have connection via GHNS ( so the easiest way to get a new skin is the Get New Skins search.

But how can you make your own skin?

Make your own skin

A Skin is basically a set of PNG files and a text file naming them along with setting a few properties like image positions and colours. It’s a quite restrictive format, there is no support for vector data or scaling, but on the other side you can change a lot.


what do you need to make your own skin:

  1. Installed Yakuake for testing (and using)
  2. an Idea
  3. Inkscape (or a image program for the .png files)

When you go to the page in the section Yakuake skins you can grab a skin of mine like

why mine? Because in the download archiv file the original svg files are also included. So it is easy to make new skins with Inkscape.


Breeze Standard

You have to move the files to ~/.kde/share/apps/yakuake/kns_skins/ also when you download skins via GHNS they are located there.

  1. title folder and
  2. tabs folder and

the setting of the title (window decoration) and tabs bar are located in the two .skin files.

title folder and [Description] Skin=Breeze-Thin Author=Andreas Icon=/icon.png

Skin name and icon for the skin selection in the application settings.

[Border] red=61 green=174 blue=233 width=0

When you’d like to have a border all around the terminal window. With width=0 there will be no border used.

[Text] x=25 y=0 red=239 green=240 blue=241 text=Drop-Down Terminal

Window decoration text with colour and position.

[Background] back_image=/title/back.png left_corner=/title/left.png right_corner=/title/right.png

the back_image is important, because the image heigh is used for the title height. So I use in the Breeze-thin theme NO background. I made a transparent (99 % transparent) png file with a size of 1×12. So the title bar is 12 px height. For the left_corner I made also a 99 % transparent png file.

[FocusButton] x=60 y=0 up_image=/title/focus_up.png over_image=/title/focus_over.png down_image=/title/focus_down.png [ConfigButton] x=40 y=0 up_image=/title/config_up.png over_image=/title/config_down.png down_image=/title/config_down.png [QuitButton] x=20 y=0 up_image=/title/quit_up.png over_image=/title/quit_down.png down_image=/title/quit_down.png

On the right area there are three buttons possible. The focus, configure and quit button

The x and y coordinate is for the position. I made every “icon” 20×12 so that the icons are not moved in y direction (y=0) if you have icons without padding than you can use the coordinate for the padding. I’d prefer to make every png file the right (back_image) height. I prefer to made the icons without background, because the background will be used from the back_image. At this three icons I use a background because I made the icons 20 px width so that when you don’t hover the x icon the quit option will also be selected.

For up, over and down you can use different icon files like

  • up
  • over
  • down
tabs folder and [Description] Skin=Breeze-Thin Author=Andreas Icon=/icon.png

Same as in the file.

[Background] back_image=/tabs/back_image.png left_corner=/tabs/left_corner.png right_corner=/tabs/right_corner.png

The back_image is important for the tabs height so when you want to change the height, you have to change the back_image file. As in the title bar left and right_corner is supported (for rounded- or special corner styles).

[Tabs] x=20 y=0 red=239 green=240 blue=241

Colour of the tabs text. You can only choose one colour. So when you have different colours for the selected (dark) and unselected (light) tabs you have to choose a colour where you can read the text on both tabs. The x and y position if for the starting point of the tabs (20 px from the left border).

separator_image=/tabs/separator.png selected_background=/tabs/selected_back.png selected_left_corner=/tabs/selected_left.png selected_right_corner=/tabs/selected_right.png unselected_background=/tabs/unselected_back.png unselected_left_corner=/tabs/selected_left.png unselected_right_corner=/tabs/selected_right.png

on the tabs bar you have

  1. selected tab
  2. unselected tab
  3. separator

You can choose the

  • selected_background
  • selected_left_corner
  • selected_right_corner

with the left and right corner you can also make something like an firefox australis theme. If you don’t use the left and right_corner the tabs are smaller, because the left and right_corners are added to the tabs width. If the png files don’t have the same size than the back_image file, the back_image file will be shown on the bottom area. so the starting coordinate is the tabs-top area.

the unselected tab support in the yakuake 2.9.9 version only the unselected_background png file. So it is not possible to have the rounded corners, … at the unselected tabs. In future releases the unselected_left_corner and unselected_right_corner are supported.

prevent_closing_image=/tabs/lock.png prevent_closing_image_x=0 prevent_closing_image_y=0

When you use the right mouse on a tab the prevent_closing_image will be shown. I use the same size as for the back_image so x and y are 0. The background of the lock.png file is transparent.

[PlusButton] x=0 y=0 up_image=/tabs/add_up.png over_image=/tabs/add_down.png down_image=/tabs/add_down.png [MinusButton] x=20 y=0 up_image=/tabs/close_up.png over_image=/tabs/close_down.png down_image=/tabs/close_down.png

The plus button is on the left side and the minus (close terminal) on the right. As always I use the icon hight from back_image. Up, over and down is supported.

No title bar

Remove the Icon sections (FocusButton, ConfigButton, QuitButton). You need only the [Background] section. for the back_image you use a 1×1 large transparent (99%) png file.


I made svg files and with a short script which I located in ~/bin I generate from the svg files png files which will than be used for the skin.

find -name "*.svg" -o -name "*.SVG" | while read i; do     inkscape -f "$i" -e "${i%.*}.png" done Questions

If you need something please ask at Opendesktop.

Thanks for reading, Andreas

Categories: FLOSS Project Planets

Upcoming KDE Applications 14.12 release prep

Sat, 2014-10-18 16:22


In preparing for the upcoming releases of KDE Applications 14.12 (2014 Month 12) I realized the other day that we have an interesting situation.  For Qt4 based applications there's libkdeedu which contains the kvtml parsing and manipulating code and also a handful of .kvtml files that KAnagram and KHangMan use to get their word lists. KAnagram has been ported to Qt5 and KDE Frameworks for some time now, and will have it's first Qt 5 based release at the end of this year. It uses libkeduvocdocument which was ported to Qt 5 also at about the same time this year. libkeduvocdocument uses Qt 5 and KDE Frameworks 5, and also ships the same handful of kvtml files that libkdeedu ships. (libkdeedu has been split for the Qt 5 based releases) KHangMan hasn't yet been ported to frameworks and Qt5 or at least the port isn't stable yet, so it will depend on libkdeedu still, as will KWordQuiz and Parley from what I understand. So we have two libraries that ship the same files, makes them not coinstallable. So we'll be moving the kvtml files out of the libraries and into kdeedu-data soonish to solve this problem. The moral of this story is to look around, see what will be released using Qt5 in the upcoming release, and what will be using Qt4 still. may help also. If you maintain an application and haven't put your application on that page under the Qt4 or Qt5 tables yet, please do, the more we coordinate, the better this release will be.

Thanks, and keep up the good work all.

Categories: FLOSS Project Planets

Support Kate and KDE by Donating Money

Sat, 2014-10-18 08:46

Since some weeks, the Kate homepage features a way to support Kate and KDE by donating money to the KDE e.V., see this screenshot:

The reason for showing a donation pane might not be obvious, since the KDE project is open source and mostly developed by lots of contributors in their free time. So why do we need money?

The KDE project, and thus also the Kate project, highly depends on getting financial support. For instance, our IT infrastructure running the KDE websites and all sorts of services such as mailing lists or hosting KDE’s source code along with the version control systems rely on it. All these services need money. And here is where the KDE e.V., KDE’s non-profit organization comes into play. KDE e.V.’s purpose is the promotion and distribution of free desktop software in terms of free software, and KDE in particular, to promote the free exchange of knowledge and equality of opportunity in accessing software as well as education, science and research.

For instance, the KDE e.V. supports developers through travel reimbursement, such that contributors that could otherwise not attend developer meetings are still able to take part. These developer meetings have proven to be immensely useful to the success of KDE, and typically a developer sprint moves a project forward by magnitues, as you can see in the list of past developer meetings. Next to that, there is also the annual KDE conference where all KDE contributors and users are invited to discuss and shape the future of KDE. Next to other events, KDE is usually also present at fairs such as the CeBit or LinuxTag. There, we also need material and support to make a good presentation of KDE. Another significant job of KDE e.V. is to support KDE legally. For instance, the KDE e.V. is maintaining an agreement with the owners of Qt in terms of the KDE Free Qt Foundation, which potentially is also of high interest for companies using Qt.

Several days ago we also started the KDE End of Year 2014 Fundraiser, through which we hope to get a significant amount of money that we can plan with in the next year.

Please, if you use KDE at home or in your company, please make a donation. And if you are a company, please consider being generous! Your support is much more needed and appreciated than you might think! Thanks you!

Categories: FLOSS Project Planets