Skip to content

Sunday, 28 April 2019

The Language Server Protocol (LSP) allows the integration of stuff like code completion, jump to definition, symbol search and more into an application without manual re-implementation for each language one wants to support. LSP doesn’t fully allow an integration like KDevelop or Qt Creator do with the libclang based tooling aimed for C/C++ but on the other side offers the possibility to interface with plenty of languages without a large effort on the client side.

If one takes a look at some current LSP clients list, a lot of editors and IDEs have joined the LSP family in the last years.

In the past I was always scared away to start implementing this in Kate, as no readily available library was around to do the low-level work for the client. Whereas you get some reference stuff for the JSON based protocol for JavaScript and such, for Qt nothing was around.

Fortunately Qt Creator started to implement an LSP client beginning with the 4.8 release.

Based on this code, I started now to get this into the Kate project plugin. At the moment not much more has happened then some initial import of the Qt Creator LSP infrastructure code into the Kate lsp branch.

If I get this working (help is welcome!), any improvements will be submitted back to the Qt Creator implementation. If it really starts to work well in Kate, one might think about some better code sharing in the long term. But before such plans, first at least some basic things must work for some initial language server like clangd.

Usually, in my workshop I am listening to the great radio station Bayern 2 (Yeah for public law media). But sometimes you just need to listen to nice classic english punk music, speed folk or (the one and only) Lemmy and friends.

For that I was looking for a so called boom box to stream to from my mobile, simple, dirty and loud. Good that I was a proud awardee at the HiFiBerry Maker Contest 2017 with my TeakEar build, where I won a nice set of a RaspberryPi Zero with a little HiFiBerry MiniAmp, coming with all what is needed to make that working.
inletThat should be enough to get proper punk sound in the workshop – and escape the
boring normal commercial boom boxes all around.

At a flee market I found a great case for that – exactly one of these that were in the classrooms of my school giving the unbanning gong at the end of each lesson. Nicely with the original non-color textile hiding the speaker and nicely done bended and veneered wood for the elegance.


A great fit for my usecase.

Two 3.3 inch Visaton fullrange speaker are mounted in simple closed chassis. The Raspi with the Amp is mounted between them. All is mounted on a back plate that fits the school speaker chassis. Boombox ready.

From a software perspective, it is there is just a Raspbian running that is configured to act as a bluetooth audio device for my mobile.

I think it is a nice addition to my workshop, with a great ease of use since it auto-connects to my mobile. Does it sound great? Oh no, not ..really. Is it loud? Well, yes, loud enough to not get in trouble with the neighbors. Given it’s size, it is actually impresse.

Surely Lemmy would be fine to play Rock’n Roll through it 🙂

The only downsize of the whole thing is that it disturbs the radio reception quite a bit, so it is really either or. Any hints how to reduce that?

We're pleased to announce the newest release of KPhotoAlbum, the photo management software for KDE/Linux.

This release is mostly about optimization and bugfixes. Most notably, we now support compilation with exiv2 0.27. Also, using mplayer for video thumbnail generation has now been removed, leaving the task for ffmpeg. Please also notice that, starting with this release, at least Qt 5.9 is required to build KPhotoAlbum.

Other changes from the ChangeLog:

  • Enhancement: Display dates when browsing categories. When browsing categories, two columns "Start Date" and "End Date" have been added. These columns correspond to the time range of the images tagged with that particular tag.
  • Enhancement: Faster display of browser overview page. Depending on the current context, the overview should now be displayed significantly faster (on my particular system the time to display the "Home" page dropped from 500ms to 25ms).
  • Change: More intuitive handling of down button in annotation dialog. Pressing the "down" button in a ListSelect in the annotation dialog now selects the first item, not the second one.
  • Change: Use non-linear scaling for DateBar by default. (Implements #356810)
  • Change: Instead of having "increase/decrease thumbnail storage size buttons", show a "Thumbnail settings" button in the status bar. (Fixes #357239)
  • Bugfix: Restore correct behaviour for "Statistics..." action. Thanks to Andreas Schleth for finding and fixing the issue!
  • Bugfix: Fix loading of user shortcuts for the annotation dialog.
  • Enhancement: Add "clear selection" menu item.
  • Bugfix: Fix zooming for raw images. Thanks to Angel Lopez for the bug report and help in finding the root cause!

Thanks to everybody who put work in this release. The git log lists the following individuals (with me being only responsible for the release this time ;-)

  • Robert Krawitz
  • Tobias Leupold
  • Alexander Potashev
  • Johannes Zarl-Zierl

New official project maintainer

Apart from this, we're very happy to now have a new official maintainer!

Jesper "blackie" Pedersen (the original project maintainer and founder of KimDaBa/KPhotoAlbum) announced his retirement from the project a long time ago, back in 2012.

Mostly, Johannes Zierl-Zarl lead the project commissarially since, at least from 2014 on when I joined it (and still, the fact that I even know a bit about C++/Qt coding and that I'm a KDE developer now are mostly caused by him being a forbearing, tireless and competent coach).
Now, quite some time later, he's officially the project leader. And fore sure, he's the one who knows his way around in more than 80,000 lines of KPA code.

So thanks once again to Jesper for founding this nice project and maintaining it for years! And big thanks to Johannes for accepting his inheritance and continuing to care about KPhotoAlbum!

— Tobias

Wednesday, 24 April 2019

Elisa is a music player developed by the KDE community that strives to be simple and nice to use. We also recognize that we need a flexible product to account for the different workflows and use-cases of our users.

We focus on a very good integration with the Plasma desktop of the KDE community without compromising the support for other platforms (other Linux desktop environments, Windows and Android).

We are creating a reliable product that is a joy to use and respects our users privacy. As such, we will prefer to support online services where users are in control of their data.

In the part 1 of this series, I have talked about the following additions:

  • libvlc as a music player alternative to QtMultimedia ;
  • progress shown directly on the taskbar entry ;
  • an improved party mode.

Today, I would like to introduce more features that will be in the future 0.4 stable version.

Undo Support when Playlist is Cleared

Elisa is currently a player with a strong focus on the current playlist. It is quite possible to have spent some time to compose a playlist. This is something valuable for the user.

What if suddenly, you hit the wrong button and lose all your work ?

A notification will be shown to undo this operation. This feature has been contributed by Jérôme Guidon. Thanks a lot for its first contribution !

Notification to allow undo a cleared playlist operation
Notification when the playlist is cleared

New Browsing Views

It is now possible to browse the most recently played tracks or the most frequently played ones.

The idea is to show the 50 last played tracks or the 50 most frequently played tracks.

The currently implemented browsing modes are the following:Screenshot_20190424_222408

It is planned to add more modes but that requires a way for the user to configure it to its liking before adding more.

A New Context View

Starting from a very good design work by Diego Gangl, the new context view is now able to show some of the metadata from the currently playing track like the composer, lyricist, play count, lyrics …


The current support for lyrics comes from a suggestion from Nate Graham. It is only supporting lyrics written in the track metadata. Support for online services will come in the next releases.

Optimizations And Reduced Memory Usage

Elisa is now loading the views fully on demand. It means that no memory or processing power is needed until one clicks on one of them. It also means that they no longer take resources when they are hidden.

One of the consequences is a better startup time and reduced memory usage. Another one is that when loading your music a busy indicator is shown to help understand what happen.

The model that is used to show your music is also now completely generic and should allow a much greater extensibility and customization.

One of my long term goal is to offer a way to fully customize the browsing of music to the user liking or type of music or …


Now is a very good time to get involved as the next version is being stabilized. You can help with code, bug reporting or triaging, documentation …

Thanks a lot to all contributors to this project be a feature, a fix, ideas, reported bugs …

Thanks a lot to the KDE community that is really providing very useful and powerful tools to project like this one.

The easiest way to do that is by using flatpak or Windows installers produced by the KDE continuous build servers. I now that some distributions also have package built on top of Git.

Friday, 21 August 2015

Update 1: Google Play still not has the newest version, but it is incomming in the following days
Update 2: There is an open beta version now, you can get it from here from Google Play.

Marble Maps has the following features:
  • Wondering around on the map
    • You can move the map with one finger by dragging the map with it
    • It will increase the zoom if you touch double times fast to the map
    • You can also zoom with two fingers (only supported on multitouch devices)
  • Handling your position
    • You can check your position on the map
    • You can check the distance and direction to your position when your position is not visible
    • You can center the view to your position
  • Routing
    • You can plan routes via interactive placemarks, you have to search for something and after that, you can use the result as a waypoint
    • Also, you can modify the route instead of the interactive waypoints with the route editor which is available from the menu

    • To get the routing instructions, visit the menu too
    • You can select from three routing profile: with car, with bike or as a pedestrian
  • Navigation
    • You can navigate on the route what you have planned previously, or you can also navigate to a single destination
    • Marble Maps shows your position on the route with a different icon
    • It provides turn-by-turn based navigation
    • It uses the Text To Speech interface of the Android system to provide voice instructions. To use it, please install it from Google Play
    • It shows the next instruction and its distance too
    • The current speed and the distance to the destination is also visible 

Some techincal background:
Marble's base source code in this summer has become Android compatible. If you want an Android app can be built on the top of it. Any map can be loaded in, and all of the projections are available. It supports some plugins too.

And finally my personal experience about the summer:
I liked to work on this project very much because I have learned a lot of new things, like coding technics, I have got closer to QML and I also have had a deeper insight on how Android applications work. It was also good to work with the people of the community. I would like to thank to everybody who helped me this summer, especially to Dennis Nienhüser and to Torsten Rahn. Without them Marbe on Android would be still a dream.

Thank you Google for this fantastic opportunity!

But the story is not ending here, so stay tuned...