Subscribe to Planet KDE feed
Planet KDE -
Updated: 9 min 14 sec ago

A closer look to Ark 15.12

Wed, 2015/12/09 - 2:22pm

Ark 15.08 was the first Ark release after the port to KF5, so there wasn’t much room for new features.
With the upcoming 15.12 release the situation is quite different, as there are a significant number of changes that are worth of a blog post.

New features

First of all, the plugin loading mechanism is now much more smart: Ark can load an alternative plugin if the highest-priority one is not found.
This allows us to set p7zip as the default backend for zip archives handling, in order to fix one of the biggest issues of Ark: proper support of unicode archives.
So if you work often with archives whose entries have non-ASCII filenames, make sure to install p7zip on your distribution.
If p7zip is not installed, Ark will fallback on using info-zip as currently does.

One of the most requested feature was the ability to open an archived entry directly in the default application. This was already possible by right-clicking it and using the “Open with…” action, but now there is a dedicated “Open File” action that the user can trigger with a single click. Even better, through the settings dialog Ark lets the users choose what to do when an entry is clicked: open directly in the default app, or preview using the KParts technology.

Open File actionOpen File action Default action when clicking an entryDefault action when clicking an entry

Another useful feature is the ability to read archive comments. Ark can now show comments in zip and rar archives.
Currently, it is not possible to edit/add comments, but this will implemented in a future release.

A zip archive with commentA zip archive with comment

A very important feature is that Ark can now detect whether an archive is corrupt. In this case, Ark will ask the user whether to attempt to open the archive.
If the user chooses yes, the archive will be opened in read-only mode (you won’t be able to add or remove entries).
This makes sense because a huge archive might be corrupt in a very small portion of the file, yet the 99% of the content could still be extracted.
This feature is available for zip, 7z and rar formats.

A corrupt archiveA corrupt archive

Thanks to Ragnar Thomsen for his awesome work on implementing these new features, and thanks also to the VDG for their feedback on the UI changes.


Besides the new features, many bugs have been fixed with this release.
The most annoying ones were the broken drag-and-drop to the desktop and the broken preview of XML files.
The former has been fixed by Eike Hein on both the Ark and Plasma 5 sides (you will have to wait for Plasma 5.5 though).
The latter has been fixed by dropping the old and deprecated KHTML framework/kpart. The Kate part is now used by default to preview XML and HTML files.
Rendered previews of HTML files is no longer available, but now you can open them directly in your default browser using the new Open File action.

Calligra 2.9.10 Released

Wed, 2015/12/09 - 2:16pm

We are happy to announce the release of the Calligra Suite, and Calligra Active 2.9.10. It is recommended update for the 2.9 series of the applications and underlying development frameworks.

Bug fixes in This Release

Here is an overview of the most important fixes. There are several others that may be not mentioned here.

  • Fix crash in artistic text tool selection (bug 354907)
  • Fix the outer line width of double borders increasing on round tripping. We were storing the total width, so each time to outer width would increase by the inner width+space. (bug 355318)
  • Fix showing of comments when loading a file with comments (bug 353857)
  • Fix saving tags: use the UTF-8 codec to save the tags instead of the locale codec (bug 356306)

  • SQL handling:
    • Make “BETWEEN … AND” and “NOT BETWEEN … AND” also valid for NULL arguments

  • Do no longer allow users to save 16 bit/channel linear gamma sRGB files to PNG without a profile
  • Do not crash when scaling down an image if the scaling factor gets too close to 0 (bug 356156)
  • Add a basic storyboard template
  • Fix generating the .kra and .ora thumbnail (bug 355884)
  • Fix loading some PSD files by Photoshop after saving from Krita (bug 355110)
  • Add an option to disable the vectorization speed up. This is for broken AMD processors.
  • Add an option to log OpenGL calls for debugging purposes
  • Remember the last-used profile when importing an untagged 16 bit/channel PNG image
  • Fix a number of import/export filters that reported the wrong error code after the user pressed cancel. Patch by Nicholas LaPointe, thanks!
  • Fix a rare crash that could happen during slow operations (bug 352918)
  • Fix an even rarer crash that could happen when recalculating the image under some circumstances. (bug 353043)
  • Fix a crash when switching sub-windows after removing a layer (bug 355205)
  • Improve memory usage when saving images by now creating a big image then scaling it down for the thumbnail
  • Make the small color selector consistent in color layout with other color selectors (bug 353505)
  • Fix a crash that occasionally happened when working with multiple images (bug 354975)
  • Fix a crash when using painting assistants (bug 353152)
  • Fix a race condition that could happen during complex operations (bug 353638)
  • Fix a crash in the shortcut system (bug 345562)
  • Restore the window correctly after going to canvas-only and back (bug 352018)
Try It Out

Download small

The source code of the release is available for download here: calligra-2.9.10.tar.xz.
Also translations to many languages and MD5 sums.
Alternatively, you can download binaries for many Linux distributions and for Windows (users: feel free to update that page).

What’s Next and How to Help?

The next step after the 2.9 series is Calligra 3.0 which will be based on new technologies. We expect it later in 2015.

You can meet us to share your thoughts or offer your support on general Calligra forums or dedicated to Kexi or Krita. Many improvements are only possible thanks to the fact that we’re working together within the awesome community.

(Some Calligra apps need new maintainers, you can become one, it’s fun!)
How and Why to Support Calligra?

Calligra apps may be totally free, but their development is costly. Power, hardware, office space, internet access, travelling for meetings – everything costs. Direct donation is the easiest and fastest way to efficiently support your favourite applications. Everyone, regardless of any degree of involvement can do so. You can choose to:

Support entire Calligra indirectly by donating to KDE, the parent organization and community of Calligra:


Support Krita directly by donating to the Krita Foundation, to support Krita development in general or development of a specific feature:


Support Kexi directly by donating to its current BountySource fundraiser, supporting development of a specific feature, or the team in general:
About the Calligra Suite

Calligra Suite is a graphic art and office suite developed by the KDE community. It is available for desktop PCs, tablet computers and smartphones. It contains applications for word processing, spreadsheets, presentation, databases, vector graphics and digital painting. For more information visit

About KDE

KDE is an international technology team that creates free and open source software for desktop and portable computing. Among KDE’s products are a modern desktop system for Linux and UNIX platforms, comprehensive office productivity and groupware suites and hundreds of software titles in many categories including Internet, multimedia, entertainment, education, graphics and software development. KDE’s software available in more than 60 languages on Linux, BSD, Solaris, Windows and Mac OS X.

} .button:hover{ padding:11px 32px; border:solid 1px #004F72; -webkit-border-radius:10px; -moz-border-radius:10px; border-radius: 10px; font:18px Arial, Helvetica, sans-serif; font-weight:bold; color:#E5FFFF; background-color:#3BA4C7; background-image: -moz-linear-gradient(top, #3BA4C7 0%, #1982A5 100%); background-image: -webkit-linear-gradient(top, #3BA4C7 0%, #1982A5 100%); background-image: -o-linear-gradient(top, #3BA4C7 0%, #1982A5 100%); background-image: -ms-linear-gradient(top, #3BA4C7 0% ,#1982A5 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1982A5', endColorstr='#1982A5',GradientType=0 ); background-image: linear-gradient(top, #3BA4C7 0% ,#1982A5 100%); -webkit-box-shadow:0px 0px 2px #bababa, inset 0px 0px 1px #ffffff; -moz-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff; box-shadow:0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;

} .button:active{ padding:11px 32px; border:solid 1px #004F72; -webkit-border-radius:10px; -moz-border-radius:10px; border-radius: 10px; font:18px Arial, Helvetica, sans-serif; font-weight:bold; color:#E5FFFF; background-color:#3BA4C7; background-image: -moz-linear-gradient(top, #3BA4C7 0%, #1982A5 100%); background-image: -webkit-linear-gradient(top, #3BA4C7 0%, #1982A5 100%); background-image: -o-linear-gradient(top, #3BA4C7 0%, #1982A5 100%); background-image: -ms-linear-gradient(top, #3BA4C7 0% ,#1982A5 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1982A5', endColorstr='#1982A5',GradientType=0 ); background-image: linear-gradient(top, #3BA4C7 0% ,#1982A5 100%); -webkit-box-shadow:0px 0px 2px #bababa, inset 0px 0px 1px #ffffff; -moz-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff; box-shadow:0px 0px 2px #bababa, inset 0px 0px 1px #ffffff; }

.button a,.button a:link, .button a:visited, .button a:hover, .button a:active { color:#E5FFFF; } -->

Extension: FOSDEM 2016 Desktops DevRoom Call for Talks

Tue, 2015/12/08 - 9:41pm

Want to give a talk at a 6,000+ guest conference with more than 6,000 guests?

Do you feel you can deliver better than any other the other 250 speakers?

Here is your opportunity!

The FOSDEM Organization has graciously given devroom organizers a little extension. We are therefore extending our own deadline for the Desktops DevRoom: the new deadline is December 14th. There will be no further extensions.

Check the details on how to submit in the Call for Participation:

FOSDEM Desktops DevRoom 2016 Call for Participation

Topics include anything related to the Desktop: desktop environments, software development for desktop/cross-platform, applications, UI, etc

See you in Brussels!

Almost there…

Tue, 2015/12/08 - 2:17am

Hi guys!

Today I will share with you a little bit more about the changes that Br-Print3D suffered these days…

After I learned more about the VTK features, I was able to make the prism to visualize the 3D models.

Screenshot from 2015-12-04 21-04-03

I also made the function to render the prism in conformation to the volume size given to the insert box…

And was quite good discover the class Vtk Axes(yes, is Axes instead of Axis), that made the XYZ axis automatically.

Screenshot from 2015-12-04 21-04-29

Screenshot from 2015-12-04 21-04-55

This changes is already set to the KDE git.

Now the challenge is learn about the LibUdev, to improve the function to get the connection of Arduino’s or other boards derived from Arduino Project.

I’m just waiting for a new release of KI version, to improve and implement others actions to Pandora.

About the 3D Enviroment, if you work with VTK and have more experience with the VTK assets, I would like a little help about the lighting on the visualization, ’cause the light is too strong and doesn’t allow see the details of the loaded models.

Well… Another warnings:

We recently discovered that VTK doesn’t allow to compile the source code if you have a Nvidia GPU with Cuda. I’m already in touch with VTK communitty to know more about this error and find the solution.

Also I found a bug on load STL files at ASCII format. But, as for now we won’t release a slicer inside the environment, I don’t think that is a big problem, but soon enough I will release this function. I just need to discover whats is causing this bug, and how to set the STL model to the ‘base’ of the prism… Any tips on this part will help too. =)

That’s all folks!

See ya!


Danbooru Client 0.5.0 released

Mon, 2015/12/07 - 11:20pm

A new version of Danbooru Client is now available!

What is Danbooru Client?

Danbooru Client is an application to access Danbooru-based image boards (Wikipedia definition).

It offers a convenient, KF5 and Qt5-based GUI coupled with a QML image view to browse, view, and download images hosted in two of the most famous Danbooru boards ( and

Highglights of the new version
  • The image window is shown again with recent Qt and KF5 versions;
  • Remember the last directory saved when saving images;
  • Remove (hopefully) hang when saving images.
Coming up next

I’ve been told there are issues with HiDPI screens, so I’ll try to fix them up next (no guarantees on ETA… also I don’t own any HiDPI screens). Adding support for copying links to images would also be nicec.

Release details

Currently, there is only a source tarball. For security, I have signed it with my public GPG key (A29D259B) and I have also provided a SHA-512 hash of the release.

How to run Rails with PostgreSQL on openSUSE Leap 42.1

Mon, 2015/12/07 - 10:23pm

I wrote about how to run Rails with PostgreSQL on openSUSE 12.3 before. Things have changed since then. While Rails, PostgreSQL, and openSUSE are still excellent choices, new versions have been released. This warrants an update. So here is how to get a development environment of Rails with PostgreSQL running on the latest and greatest openSUSE Leap 42.1.

Install PostgreSQL:

    sudo zypper install postgresql-server postgresql-devel

Start the database server:

    sudo systemctl start postgresql

Enable server to be started on boot:

    sudo systemctl enable postgresql

Switch to the postgres user to set up the database:

    sudo su -l postgres

Create database user:

   createuser -d USERNAME

Return to your normal user, exchange the database driver in the Gemfile from sqlite3 to pg and run

   bundle install

Change the configuration of the database driver to something like:
default: &default
adapter: postgresql
username: cs

<<: *default
database: APPNAME_development

<<: *default
database: APPNAME_test

<<: *default
database: APPNAME_production
Create the databases:

    rake db:create
    rake db:migrate
    rake db:migrate RAILS_ENV=test

That's it.

Kdenlive Café #1 and #2 - Date selections

Mon, 2015/12/07 - 4:16pm

We would like to try something new for the Kdenlive community: Kdenlive Cafés. These are one to two hour informal meetings on in channel #kdenlive. We might select certain topics for these Cafés but normally you can just chat about recent things in Kdenlive development, ask questions to developers and other users and talk about the progress of this great and free non-linear video editor.

So to select the dates and times for the first two Cafés please add yourself to this date selection tool. On Sunday, the 13th of December 2015 we will close the date selection and announce the first Café here, in the forum and on the Kdenlive mailing list.

UPDATE: The timezone would be Central European Timezone - UTC+1.

It’s Season of KDE!

Mon, 2015/12/07 - 12:46pm

Hello folks, it’s Season of KDE!

Who’s talking is Fernando. I’m a newcomer on the brazilian KDE community and in this year I’m participating of SoK – Season of KDE.
SoK is the outreach program from KDE community to encourage people who wants contribute with free software projects. For me, its a great opportunity be part of a program which evolves a great free software community like KDE. As a Computer Science student, it is like to be a intern in a great company and helps on development of quality software with global reach.
I’m working on Cantor project, a mathematics applications software for statistical and scientific analysis. My work will be to fix existing bugs on the backends used by Cantor, as well as to support and maintain these backends working on it’s current version. This work will be supervised by Filipe Saraiva who will be my mentor during SoK. Until February, month of finish of this season, I hope to contribute a lot to Cantor. Until then, i will make more posts talking about my progress.

digiKam 5.0.0-beta2 is released

Mon, 2015/12/07 - 12:08pm


Dear digiKam fans and users,

digiKam team is proud to announce the release of digiKam Software Collection 5.0.0 beta2. This version is the second public release of the new main digiKam version and is a result of the long development process by the team.

read more

Interview with Jack the Vulture

Mon, 2015/12/07 - 8:00am

Grinspitter Portrait

Could you tell us something about yourself?

Hi! My name is Crystal Snyder, but most people call me Jack. I’m 22 years old, I’m from New Jersey, USA. I have an associates degree in Studio Art but digital painting and drawing is my main focus. Animation and nature are my biggest inspirations.

Do you paint professionally, as a hobby artist, or both?

Right now I’m just a hobby artist though I would like to work professionally one day.
Dragon Character Design

What genre(s) do you work in?

I’m kind of all over the place. Lately I’ve been drawing a lot of fanart. I know some artists look down on it, but for me its a fun way to interact with the community of fans and explore ideas that I have. Its fun! Sometimes we need a little fun. And I get to make other people happy, which is the best part. When I’m not doing that I would say creatures, and fantasy creatures. I love creature design, though I’m a beginner at it. It’s one of my favorite things to do creatively! Whenever I see a creature that inspires me I get excited and think “I can use that!”

Whose work inspires you most — who are your role models as an artist?

Chris Sanders and Nico Marlet come to mind immediately. Chris Sanders has a beautiful and distinct drawing style, and I adore his story telling. Nico Marlet’s character and creature designs, particularly his work on movies like How to Train Your Dragon and Kung Fu Panda, have been a huge influence on me. They are beautiful to look and and very detailed while remaining very sketchy. I like art where I can see the artist’s process and lines rather than super polished. David Revoy has been a huge influence and help in the open source painting world. He’s a phenomenal artist and I am definitely a fan of his Pepper and Carrot comic!
Jack The Vulture

How and when did you get to try digital painting for the first time?

Not counting scribbling in MS Paint as a kid, I took a Graphic Arts course when I was 14. I had no idea what to expect, but I learned how to use the Adobe Creative Suite, and they introduced tablets and digital painting to me. I took to it immediately and asked my parents for a tablet for Christmas. Before I got a tablet, I used Gimp to color sketches. My dad was and still is an avid Linux user, and he was the first to introduce me to open source programs.

What makes you choose digital over traditional painting?

So much more freedom. To experiment, to make mistakes, to change things around, to try whatever you can think in your mind without having to make the journey to an art supply store. Especially when you don’t have the money to buy all those paints and canvases. Also, digital art has its own look, or a collection of looks really, digital art is so varied. But like any medium, digital art has its own charm to me. I like seeing digital brush strokes as much as I like seeing oil paint strokes. It has its own charm. I think its a beautiful medium with lots of possibilities. Its also very accessible. For me, as long as I have a tablet and a computer, I can create anything I am willing to work to create, I won’t run out of digital canvases.

How did you find out about Krita?

Probably about 7 or 8 years ago, when I was just starting to learn digital art, my dad showed it to me.

What was your first impression?

I wasn’t extremely impressed, having been taught only Photoshop and really not knowing enough about digital art to have any worthy opinions about art programs. I barely remember what Krita was like back then. But over the years, I liked collecting as many free digital art programs as I could get my hands on. I eventually checked back in on Krita and saw that it was still in development. The tools looked exciting. I don’t think I remember exactly but I think back then it wasn’t yet available on Windows, which was all I had at the time. I waited until it was available, started using it, and never really looked back.

What do you love about Krita?

So much. I don’t only use this program because its free, that’s for sure. I bought Photoshop in college and all but abandoned it for Krita as my main painting application. The navigation is one of my favorite things. How easy it is to move around the canvas, rotate, scale my brush, open my favorite brushes with just a click of my pen, and continue painting without having to take my hands off my tablet and hit extra keys makes almost every other program I’ve used feel clunky by comparison. The program is also very customizable, there are so many brush engines to play with, and new features are being worked on all the time. It develops very fast, there’s always something to look forward to. The developers actually care about what the community wants, and its focused on a great painting experience. I love that. I love that our opinions as users are so valued, I love how dedicated the developers are to making Krita a wonderful professional experience.
Mountain Goat Creature

What do you think needs improvement in Krita? Is there anything that
really annoys you?

It’s actually hard for me to tell since my current computer is not very fast at all, but Krita still feels pretty slow sometimes with large brushes and canvases. Though I know that is being worked on and I’m excited to see the improvements! And hopefully a faster computer will help me.

What sets Krita apart from the other tools that you use?

Customization, navigation, development speed, and developers who care about the needs and wants of the painting community. Krita feels like it was made for painters. It feels like it was made to accommodate anyone’s style. I love that. Photoshop never gave me that. Painter makes me feel like I’m being pushed into a “real media” box. SAI doesn’t have enough features for me. Krita takes the best of all these programs and gives it to me in one package. I feel like I can do anything with it. I’m also very excited for the animation feature!

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

It’s actually very hard for me to choose favorites. I draw and paint a lot but rarely work on big projects. Sometimes why I like a picture is based on the emotion I felt I expressed, sometimes its on how successful I think my technical skill was. Right now its probably a portrait I did of a dragon species I designed. I spent time on her scales and I like the lighting. I’m really bad at naming my artwork, so it doesn’t have a proper title.

What techniques and brushes did you use in it?

​I don’t really remember but I probably my usual workflow. Sketch, color under the sketch, use layer modes to achieve desired lighting, paint over the sketch, clean up, etc. It’s different every time. It really depends on the mood I’m in what brushes I’ll use.

Where can people see more of your work?

​My Deviantart is probably the best place to view my art.

Anything else you’d like to share?

​I really just want to thank everyone working on Krita for their hard work on this incredible program. You make so much possible, especially for people who can’t afford “industry standard” software. But Krita never feels like an alternative to paid programs, I use it because I love it. It is its own, incredible software that happens to be free and open source. Thank you for all you do.

Git trick #628: automatically set commit author based on repo URL

Sun, 2015/12/06 - 8:45pm

If you have more than one email identity that you use to commit to different projects you have to remember to change it in .git/config every time you git clone a new repository. I suck at remembering things and it’s been annoying me for a long time that I kept pushing commits with wrong email addresses to wrong repositories.

I can’t believe I am the only one having this problem, but I could not find anything on the interwebs so I just fixed it myself and I’m posting it here so that maybe hopefuly someone else will find it useful too :).

The trick is very simple: we create a post-checkout hook that will check the value of in .git/config and set it to whatever we want based on URL of the “origin” remote.  Why post-checkout? Because there’s no post-clone hook, but git automatically checkouts master after clone so the hook gets executed. It also gets executed every time you run git checkout by hand but the overhead is minimal and we have a guard against overwriting the identity in case it’s already set.

#!/bin/python # # (C) 2015 Daniel Vrátil <> # License: GPL # # import git import ConfigParser import os import sys repo = git.Repo(os.getcwd()) # Don't do anything if an identity is already configured in this # repo's .git/config config = repo.config_reader(config_level = 'repository') try: # The value of is non-empty, stop here if config.get_value('user', 'email'): sys.exit(0) except (ConfigParser.NoSectionError, ConfigParser.NoOptionError): # Section or option does not exist, continue pass origin = repo.remote('origin') if not origin: print('** Failed to detect remote origin, identity not updated! **') sys.exit(0) # This is where you adjust the code to fit your needs if '' in origin.url or origin.url.startswith('kde:'): email = '' elif '' in origin.url: email = '' elif '' in origin.url: email = '' else: print('** Failed to detect identity! **') sys.exit(0) # Write the option to .git/config config = repo.config_writer() config.set_value('user', 'email', email) config.release() print('** User identity for this repository set to \'%s\' **' % email)

To install it, just copy the script above to ~/.git-templates/hooks/checkout-hook, make it executable and run

git config --global init.templatedir ~/.git-templates

All hooks from templatedir are automatically copied into .git/hooks when a new repository is created (git init or git clone) – this way the hook will get automatically deployed to every new repo.

And here’s a proof that it works :-)

[dvratil@Odin ~/devel/KDE] $ git clone kde:kasync Cloning into 'kasync'... remote: Counting objects: 450, done. remote: Compressing objects: 100% (173/173), done. remote: Total 450 (delta 285), reused 431 (delta 273) Receiving objects: 100% (450/450), 116.44 KiB | 0 bytes/s, done. Resolving deltas: 100% (285/285), done. Checking connectivity... done. ** User identity for this repository set to '' ** [dvratil@Oding ~/packaging/fedpkg] $ git clone ssh:// Cloning into 'gammaray'... remote: Counting objects: 287, done. remote: Compressing objects: 100% (286/286), done. remote: Total 287 (delta 113), reused 0 (delta 0) Receiving objects: 100% (287/287), 57.24 KiB | 0 bytes/s, done. Resolving deltas: 100% (113/113), done. Checking connectivity... done. ** User identity for this repository set to '' **

Getting Qt 5 right in your application

Sat, 2015/12/05 - 11:36pm

I’m sure many of you already read about Clazy. For those who didn’t, it’s a quite convenient tool for checking your code and making sure you’re getting Qt’s API right. There’s some non-trivial quirks here and there that aren’t very important but once polished can push your system considerably, especially on those cases that are ran repeatedly.

Recently, I introduced a -DENABLE_CLAZY=ON setting on extra-cmake-modules, that comes quite handy so if you want to run it on your project you just need to enable it and then Clazy will get rather verbose (although with arguably no false positives). It will work on any KDE project right away, since it comes from KDECMakeSettings.

Note: This will work provided clazy is installed and you’re running Clang as a compiler.

Includes in your git config

Sat, 2015/12/05 - 10:19am

So, let's assume you work on several machines. You have set up a system to centralize all your dot files so that you have a familiar environment everywhere you log in.

There are many ways to do this, I personally created a Git repository for my dot files. This repository contains a script which creates symbolic links at the right place, and another script which periodically commits any changes, pulls then pushes.

So far so good. Now, what if you want your Git configuration to be subtly different from machine to machine? In my case I wanted to have a different value for when I am on a work account and when I am on a personal account.

Git supports includes, so you can modify your ~/.gitconfig like this:

[include] path = ~/.gitconfig.local

Then you can create a ~/.gitconfig.local with account-specific configuration, for example:

[user] name = Aurélien Gâteau email =

Simple enough, but I actually lost a lot of time because I was testing the configuration like this:

$ git config --global

The --global option tells Git to ignore the repository configuration and only look at the ~/.gitconfig. Turns out that when you specify a configuration file, using --global or -f <somefile>, then git config does not expand includes! Reading documentation a bit more, I found out that the correct command is:

$ git config --global --includes

That's it, hope it saves you some time!

Minuet: intervals, chords, and scales exercises

Sat, 2015/12/05 - 6:44am

 intervals, chords, and scales exercises

Hi planet,

Exactly one month ago I blogged about a new KDE application for music education named Minuet. Since it was only a few days until featuring freezing KDE Applications 15.12 at that time, we postponed the first release of Minuet to 16.04. The plan is to move it in a couple weeks to KDE review and make the final adjustments for having our newly KDE-Edu baby out in the wild.

That said, some nice new features have been added to Minuet in the meanwhile:

  • Ear training exercises can now be specified in separate JSON files. That's of paramount importance for easily identifying and evolving the large set of exercises we intent to support. Minuet's core takes care of loading all exercise specification files and merging them in a single JSON model, used by the dynamic QML stuff which creates the exercise menu and presentation grid.
  • A system verification wizard was implemented to detect the availability of commonly used MIDI backends like TiMidity++. TiMidity++ is automatically started and stopped during Minuet initialization and shutdown, respectively.
  • Exercise answers are automatically highlighted in piano keyboard when hovering the answer's options.
  • Initial support for exercises regarding chords (11 exercises with 19 different chord types) and scales (currently only major scale and its modes) has been added.
  • Descending melodic intervals exercises have been included, in addition to the ascending ones.
  • A KConfig-based UI for initial MIDI configuration has been implemented.
  • Major refactoring in QML source code.

Well, nothing better than checking out a demonstration video, isn't it?

So, what can you expect for the next steps?

  • Sheet music support;
  • Indicators and metrics for student achievements;
  • More ear training lessons.

You already know it ;) but it doesn't hurt to remind: comments, suggestions, and of course contributions are quite welcome! Just clone it from git://

See you ...

Killing the back button

Fri, 2015/12/04 - 7:31pm


With “back button” I’m referring to the (physical or virtual) button mainly used in Android, that, as all Android users know, always cause a lot of confusion, in fact two events could happen pressing it:

  1. it bring you back to the previous view of the same app (and it isn’t always clear which the previous view is);

  2. it close the current app bringing you to the previous app or to the home screen.

This scare users from using the back button or anyway it make them dissatisfied. In some cases the back button is totally useless, a waste of space of the screen or of a physical button.

In fact it’s, for me, a totally no-sense thing, since it chains the app to a system-defined pattern, on devices where the touch screen give a lot of freedom to the apps, from a user interactions point of view. The back button has sense if drawn inside an app by the app itself at the right moments in a way that make clear what it does. A lot of app already drawn a back button by their selves: you can see it both in Android and Ubuntu Touch… in the top-left corner of the screen. Yes, exactly, the most difficult to achieve point of the screen, for right-handed people.

Discussing KDE mobile HIG, we decide to try to keep all the things more reachable as possible, so near the bottom, since devices with large screens are more and more widespread. So, a bottom bar with back button? No. On mobile the contents are the rulers, and we want all the screen for them, so avoiding tool-bars when it’s possible.

One of our solutions, for now, comes from our views-by-columns approach: the contents are organized by columns, each columns is a view of the screen; to come back to the previous view the user have to swipe horizontally (by default from left to right for right-handed people).

An advantage of this: the back button on Android is one, instead we can let apps to provide more than one “back” action; how? The keyword is “context” and an example here will make clear what I mean: if you open the global drawer, you can have menus and sub-menus, and to come back to the previous menu a back button could be drawn inside the drawer. So the user will use it to go to the previous menu and the swipe to close the drawer. No confusion, very intuitive. You can already see this example in the (already mentioned) preview of Subsurface Mobile app:

Subsurface's submenuSubsurface’s submenu

An other big advantage we (me, Thomas, Andrea, …) hope to see is the forward swipe: our idea consist into the chance for the user to re-open a view just left by a back-swipe, through an other swipe to the opposite direction. This should please the user that swipe back by mistake; also, you could switch between the view of an e-mail and the editor-view to reply to it without, obviously, losing the written text.

But the back button on Android close the app, too; so what about the swipe? The swipe shouldn’t close the app. Do you want to close the app? Reflect about what “close app” means: on Android, come back to home screen doesn’t mean close the app, that could continue to run in background. An other behavior that confuse the users: is the app running in background? Did the system stop it to free RAM? A behavior we don’t have on desktops, where we often have a task manager that indicates which apps are running (and eventually an icon in the system tray to indicate background services). To stress that a service is running in background, some Android apps use notifications: a needed trick caused by a poorly designed system…

So, my (just personal) idea is:

  1. in Plasma Mobile, to don’t provide a system back button, but only a solution to switch running apps and go to the “home screen” (and for this we could have a lot of solutions, some more traditional and some more innovative, I will talk about them in a dedicated post);

  2. in the global drawer of the apps, to provide a button to close the app, removing it from a task manager if there is one, and stop its processes (aka closing the app like on desktops). This doesn’t mean that the system should provide a way to close the apps 😉

Just an idea for close-app buttonJust an example for close-app button

On Android, to preserve the global user experience, I thought that the system provided back button should act like the back-swipe where this is provided, and should “hide” the app exactly how it happen for Android apps. This should make us able to care of our ecosystem (Plasma Mobile + KDE mobile apps) without big limits, to introduce our (innovative?) solutions and, at the same time, to preserve the consistency in Android for KDE mobile apps running there.

Please, notice that this post is about only a user experience point of view, I don’t know what this imply for a technical level, so don’t ask me about it, please base your criticism only on the UX 😉

Ciao, see you around!

Free Software Contributions in November 2015

Thu, 2015/12/03 - 6:40pm

This post came in a bit late, because I was unsure of what to write. I’ve been pretty busy this month with work and some family matters, so my contributions were pretty much non existant. Or so I thought. Then I remembered:

Contribution to Free Software is not just writing code, it’s anything you do for the improvement of a Free Software project.

This includes bug reports, translations, meetings, promotion, etc. And I’ve done plenty of those.

Let’s see now: (in what ever order I remember them)

Kubuntu Podcast #6 got out in the 4th of November during UOS (Ubuntu Online Summit). Together with Aaron Honeycutt and Rick Timmis we’ve presented the new Kubuntu 15.10 Wily Werewolf. We did a install demo and some presentation on how the fresh install is, what’s included and what’s new.

In 17th of November we had an ArLUG meeting, where we’ve discussed about the current state of Free Software in the education system in Romania, and planned to have monthly meetings to revise what we have done, and what we can do to improve it.

In my search for a great Free Software alternative to Trello, I finally came across Wekan. It’s an awesome Kanban tool that is very similar to Trello, and I’ve deployed it at work using Docker. I’ve reported a few bugs on it and replied to some help inquiries in their chat.

I have started using ZSH instead of BASH, and I like it very much so far. I’ve installed OhMyZSH and made a few pull requests to the Bullet train theme which I’m using.

I’ve upgraded my server and have started using Docker for every service I run on it. So, naturally, I’ve searched for a web interface that would help me ease the work. So I came across Shipyard. I’ve tried to deploy it, but there were some problems with the automatic deployment. I’ve attempted at a fix for it, but failed, so I ended up just reporting a bug for it.

Since recently Open Sourced their code, I’ve looked a bit into it and started using it as my main navigation system. The app is not translated into romanian yet, so I asked them why don’t they use a web translation platform. I got some insight on how their current translation system work, and I’ll probably look into how it can be improved so they may use a more popular translation system (Transifex, Pootle, or others).

I’ve discussed a lot with the KDE Romanian translators about translations and Pootle deployment.

We’ve had 2 Kubuntu meetings. One was the 16.04 Kickoff meeting during UOS, were we planned the work for that release, and the other happened later this month where we reviewed what work has been done, what needs to be done, and what and how it will get done.

And last (in the last few days of the month) I’ve started a new project. SVN-branch is a utility that helps whoever still uses SVN switch between branches with more ease. We still use SVN at work, and the KDE translations system still uses SVN. So this came in handy for me.

I’ve also worked a bin on building my 3D printer, but that still moves at the speed of a snail with rabies (romanian expression). Some of the pieces have arrived, and I’ve started working on building the main body and the motors holder. Currently mostly learning and drawing in FreeCAD.


This is it, as far as I remember. Wow! They are a lot more than what I thought when I started writing this post. I’m proud of myself, I’ve done something this month.

Mobile-oriented HIG, the first prototypes and the mock-up kit

Thu, 2015/12/03 - 3:56pm

Hello Planet readers!
Some of you already know me (as Alex L.) for my contributions in the Visual Design Group (VDG). Now it’s time for me to blog a little about my work in KDE, but first of all I want to use this post to introduce myself to you:
I’m an Italian student (Information Engineering), a FOSS enthusiast and GNU/Linux user.
I used KDE software for years, I literally love Plasma, Dolphin and many other KDE apps/projects. I have to thank a lot the KDE Community not only for the great software it provide, but also for the big amount of things I learned, for the improvements in my work-flow (thanks of the KDE’s highly configurable features-rich software) and for kindness when helping me! A lot of thanks also to the great VDG guys, all of them are very kind!
Currently I’m working on Human Interface Guidelines (HIG) for KDE mobile apps together with Thomas, Andrea and Heiko.

I have a lot of things to say, so let’s start!
What are KDE mobile apps? Thanks to Qt & QML our devs are able to deploy apps for many mobile platform: Ubuntu Touch, Sailfish OS, obviously Plasma Mobile (all of these use QML natively) and additionally Android! We will define mobile-oriented HIG so our apps can integrate well in all of these platform and obviously we will introduce our innovations in mobile world! Thomas already blog about this (part 1 & part 2), and now I’m going to update you about recent news; the subjects of our work are mainly three:
1. views-by-columns approach for browsing contents;
2. global drawer + context drawer;
3. the KDE FAB or Floating Action Button according to KDE 😉 (the FAB is that colored button in the right-bottom corner in Android’s apps, introduced by Material Design)

The views-by-columns approach consist into translating hierarchical contents to columns and making user able to switch between columns/pages/views by swiping horizontally (avoiding the need of a back button and I will dedicate a post about this). We are very proud of this approach because it’s very powerful: when you reply to an e-mail for example, you can swipe back to the previous view and then swiping forward to the editing view, without losing contents already written. More details will come to the working progress wiki page, so be quite in questions about this ;-).

The global and the context drawers are two drawers the user can show by swiping from the right and left edges of the screen (by default global by the left, as in Android and the context by the right). The global drawer will be available in any views of the app and will provide actions and options that have sense everywhere in the app. Instead the context drawer change its contents according to the current view and according to eventually selected items; you can consider it the mobile counterpart of the right mouse click.

Global drawerGlobal drawer Context drawerContext drawer

The FAB in KDE apps will not be simply an action button: since there aren’t an hamburger menu like the Android one to show the global drawer and a button for the context drawer, the user could find two issues:

  1. In the first uses of the app, the user could don’t understand that there are two drawers “hidden” in the edges of the screen. And also when he will know the could be there, he don’t know which drawers are available in each view, so he could be frustrated trying to show a drawer that isn’t available;

  2. Since we use the horizontal swipes for navigation, the user need to swipe from the edges of the screen to show a drawer, but it could be a little hard, especially if the user need to open a drawer very quickly and he isn’t patient.

So at this point a bulb literally lighted in my head and I suggested to use the FAB to resolve this: the FAB can be moved to left/right to show respectively the context and the global drawers and it can have arrow-like indicators that suggest to the user which drawers are available. You can see a draft of it in the following image:


Again, I will add details about all of this stuff in the HIG wiki page.

What about implementation of these components? Marco works a lot to make prototypes and recently he met Sebastian and together they used them in Subsurface Mobile app for Android, so you are able to test this preview of the components by installing this apk!! 😀

Wait wait, the cool stuff don’t end here: since many devs ask to me for mock-ups, I decided to put all the mock-up stuff into an SVG file, making an innovative mock-up kit (here a preview): when you will open it in Inkscape you will see a poor kit, in fact you need to open the layers panel to see a lot of other hidden layers. Play with them making them visible/hidden, edit the texts and replace the icons, so you will be able to quickly do mock-ups for your app using our components. When we will draft more components, I will update the mock-up kit, so you will be able to see news and provide feedback to us during the brainstorm process :-)

Mockup kit for phoneMock-up kit for phone

I end the post by saying that any help in updating HIG wiki page is very welcome, the wiki platform is very useful (and in fact WikiToLearn project is gaining a lot of success).

Thanks for the attention, see you around!

December Drawing Challenge Open!

Thu, 2015/12/03 - 6:35am

You’re all invited to join John’s monthly drawing challenge again. It’s fun, it’s friendly and helps with the all-important goal of keeping drawing. This month’s theme is “Complementary”.

Here’s last month winner!

Waiting, by Elenav

Waiting, by Elenav

Kdenlive 15.12 knocking on the door... test it easily before release!

Tue, 2015/12/01 - 10:48pm


We've had much work on 15.8 series, with its 3 monthly bugfix to repair the breaks from the new monitor backend & timeline rewrite... should be acceptable now :)
For few weeks now we're having fun integrating few new features, inspired from our usability review, that should make users' life easier?

I won't say much more in this post, my topic here is to announce that application bundles are available again!
These prebuilt archives are now hosted on KDE infrastructure, and contain the latest code (files generously prepared by MLT dev are still KDE4 version, and hosted on a private space)...
Please note that to avoid any legal threat on KDE servers, I had to remove all potentially software-patent-covered encoders from FFmpeg builds, in any case you should be happy to support free formats ;)

That's not all folks: for *ubuntu users, I'm also setting up a new PPA to test the latest Kdenlive without affecting the rest of your system.

All this is for the moment manually triggered, so maybe not updated very regularly... my next goal is to automate all this so that both get reliable sources.

Enjoy & don't get too angry with remaining bugs :)

Game Art Quest Kickstarter Nearly There

Tue, 2015/12/01 - 7:14pm

And that’s going to be celebrated with some free tutorial videos. Over to Nathan!

It’s Tuesday today, so it’s time for a new Krita tutorial. In this video, you will get an overview of the new features added in Krita since version 2.9.5. It covers all of the smaller, yet very useful workflow improvements brought to the application over the past few months.

There are 3 bigger features that we will focus on next week: the tangent normal brush, the beta brush preview and the animation tools.

Over the next few weeks, you will get free tutorials on both Tuesdays and Thursdays on the Gdquest Youtube channel. On Tuesdays, we will talk about application specific topics. Just like today. And on the next 3 Thursdays, we will talk about environment art, user interface and monster design. Those 3 tutorials will give you a sense of what you will find in the Game Art Quest training series.

Talking about that, there is excellent news! The Kickstarter has almost reached its goal! As I write these lines, it is 98% funded, and there are 22 days to go. It’s time to shift our focus to the first stretch goal. If we reach €8000, all of the backers will get a 2nd training series for their pledge. In other words, if we double the funding, you get double the content.


But to get there, I need your help. So many people don’t know that the campaign even exists! Please spread the word! Share the campaign on social networks, on your favorite game related forum or group… together, we can reach the first stretch goal!


Do you want to improve your game art skills? I launched a Facebook group for game artists 2 weeks ago. It is (also) called Game Art Quest. The goal is to become better artists together. Every week, you get a new game art assignment. You can submit your work in progress to the group and both give and get constructive feedback on your art.

Everyone is welcome, regardless of their skill level. The senior game artist Chris Hildenbrand, whom you know for his Inkscape and Gimp tutorials on, is participating. Come check it out!