March 18, 2018

Christmas came early this week! Today’s Usability & Productivity status is jam-packed with awesome stuff that I think you’re all really gonna love.

There’s all the awesome work on Discover, but it doesn’t stop there:

New Features

  • Dolphin now helps you install Konsole if it’s not installed when you open the Terminal pane (KDE bug 371822, implemented in KDE Applications 18.04.0, authored by Roman Inflianskas):
  • Dolphin now lets you find a symlink’s target file or folder (KDE bug 215069, implemented in KDE Applications 18.04.0, authored by Roman Inflianskas):
  • Gwenview’s slideshow feature can now be controlled via any MPRIS-compatible playback controller, such as the Media Playback widget, KDE Connect, and laptop keyboards’ media keys (KDE Phabricator revision D10972, implemented in KDE Plasma 5.13.0 and KDE Applications 18.04.0, authored by Friedrich Kossebau). Read more about it here!
  • By default for new installations, windows can now be tiled to any edge of the screen using the Meta+arrow key shortcuts, and can be maximized and minimized with Meta+PageUp/PageDown (KDE Phabricator Revision D11377, implemented in KDE Plasma 5.13.0, authored by me, Nate Graham)


  • Fixed a bug in Gwenview causing image view’s touchpad scrolling to be uncontrollably sensitive when the scroll behavior is set to “Browse” (KDE bug 388353, fixed in KDE Applications 18.04.0, authored by Huon Imberger)
  • Fixed a bug in Gwenview causing the “Disable History” feature to not work (KDE bugs 332853 and 391527, fixed in KDE Applications 18.04.0, authored by Peter Mühlenpfordt)
  • Fixed a bug in Plasma causing fonts to be rendered in an ugly and pixellated manner when using a non-integer scale factor (e.g. 1.3x) and PLASMA_USE_QT_SCALING=1 (KDE bugs 391691 and 384031, fixed in KDE Frameworks 5.45, authored by me, Nate Graham):
    Plasma looking awesome with a 1.3x scale factor
  • Fixed a bug regarding how fonts were rendered in KDE software that uses QTQuickControls controls (such as all Kirigami apps, for example) that was causing text to appear slightly too light and wispy at non-HiDPI and integer HiDPI scale factors (KDE bug 391780, fixed in KDE Frameworks 5.45, authored by me, Nate Graham):
    Top: before. Bottom: after!
  • Fixed a bug in Konsole causing custom tab titles to be reset when changing profile options (KDE bug 354403, fixed in KDE Applications 18.04.0, authored by Ahmad Samir)

UI polish & improvements

  • The notifications widget now has a visible button to clear notifications (KDE bug 386068, fixed in Plasma 5.13.0, authored by Christian Fuchs):
  • The Audio Volume widget now presents a simplified display for the common use cases of one input and one output device and no apps recording audio (KDE Phabricator revision D11166, fixed in KDE Plasma 5.13.0, Authored by me, Nate Graham)
  • Plasma Folder View (AKA desktop icons) now provides a little bit more horizontal space for file and folder names (KDE Phabricator revision D11358, fixed in KDE Plasma 5.13.0, authored by me, Nate Graham)
  • To present a cleaner UI, Konsole now defaults to only showing the tab bar when there are multiple tabs (KDE Phabricator revision D11258, fixed in Konsole 18.04.0, authored by Kai Uwe Broulik):

    It looks even better still with a global menu or the menu in a titlebar button:
  • Gwenview’s middle-click-to-zoom feature now zooms into the mouse cursor’s position, rather then the center of the image (KDE bug 308335, fixed in KDE Applications 18.04.0, authored by Peter Mühlenpfordt)
  • Gwenview’s advanced crop settings are now always displayed in the same order (KDE bug 391758, fixed in KDE Applications 18.04.0, authored by Gregory Legrain)

Finally, A notorious and longstanding bug has been fixed! The bug was this: in KDE environments where KWallet had not been set up (such as live sessions and barebones/DIY-style distros like Arch), you would be prompted for your password twice when connecting to a password-protected wifi network. This turned out to be a bug not in KDE software, but rather in the upstream FreeDesktop networkmanager software. It’s now been fixed as of networkmanager 1.10.6. If your distro doesn’t have that yet, please ask them to update or backport the fix.

Pretty awesome stuff, huh? Well there’s even more coming! We’re committed to making KDE Plasma the finest computing environment on planet earth, and I hope this kind of progress demonstrates the depth of that commitment. Want to hop on board and become a part of something big? Consider becoming a KDE contributor, particularly in development!

If my efforts to perform, guide, and document this work seem useful and you’d like to see more of them, then consider becoming a patron on Patreon, LiberaPay, or PayPal.

Become a patron Donate using Liberapay donate with PayPal

March 17, 2018

Volvemos a tema de diseño al blog con Helium 8, un nuevo tema para Plasma de tono grisáceo y ligero. Una gran creación de David Linares, conocido como @mcder3 que sigue ofreciéndonos diseños muy cuidados.

Helium 8, nuevo tema para Plasma

Los temas para el escritorio Plasma de la Comunidad KDE son sutiles pero importantes. La verdad es que todos se parecen mucho inicialmente, pero una vez instalados y tras un poco tiempo de uso ves las diferencias y decides si te gusta o no.

Y esto es así porque aunque los cambios son sutiles, abarcan a todo el sistema: iconos de la bandeja del sistema, pantalla de apagado, reinicio o cambio de usuario, animaciones al ejecutar aplicaciones, decoraciones de plasmoide, etc.

Es por ello, que me complace presentaros la nueva creación de David Linares (aka @mcder3) con la que tendremos un Plasma, como con todos sus diseños, elegante y ligero, con transparencias adecuadas y con un tono grisáceo.

Helium 8


También es de detacar su pantalla de salida y las animaciones con toques azulados cuando se ejecutan aplicaciones y se colocan en la barra de tareas. Todo muy sencillo pero visualmente muy atractivo.


Y como siempre digo, si os gusta el tema Helium 8 para Plasma podéis “pagarlo” de muchas formas, desde donaciones a mcder pasando por todo tipo de acciones en la página de KDE Store, que estoy seguro que el desarrollador lo agradecerá: puntúale positivamente, hazle un comentario en la página o realiza una donación. Ayudar al desarrollo del Software Libre también se hace simplemente dando las gracias, ayuda mucho más de lo que os podéis imaginar, recordad la campaña I love Free Software Day 2017 de la Free Software Foundation donde se nos recordaba esta forma tan secilla de colaborar con el gran proyecto del Software Libre y que en el blog dedicamos un artículo.

Más información: KDE Store

Hello Guys, My life since 2018 started is going on like crazy. I'm trying to get my bachelor degree this year, a lot of events to attend, Atelier and AtCore needing love and a lot of work... And more than a month later I'm going to report what happened at the 11th edition of Campus... Continue Reading →

March 16, 2018

This week saw many positive changes for Discover, and I feel that it’s really coming into its own. Discover rumbles inexorably along toward the finish line of becoming the most-loved Linux app store! Take a look at this week’s improvements:

New Features

  • Discover can now sort apps by last release date in the browse lists and search results (KDE bug 391668, implemented in KDE Plasma 5.13, authored by Aleix Pol)


  • Fixed a bug that could cause Flatpak apps to stop being available (KDE bug 391126, fixed in KDE Plasma 5.12.4, authored by Aleix Pol)
  • Fixed a bug that could cause Discover to fail to download Plasma or Application addons (KDE bug 390236, fixed in KDE Plasma 5.12.4, authored by Aleix Pol)
  • Fixed a bug causing Plasma and Application addons to not display large screenshots (KDE bug 391190, fixed in KDE Plasma 5.13.0, authored by Aleix Pol)
  • Fixed a bug that could cause Discover to not open properly when invoked from from its context menu’s “Updates” item (KDE bug 391801, Fixed in KDE Plasma 5.12.4, authored by Aleix Pol)
  • Fixed a bug causing Addons to not be sorted by release data correctly (KDE bug D11387, fixed in KDE Plasma 5.13.0, authored by Dan Leinir))
  • Fixed a bug causing all Addon screenshots to be inappropriately rendered as square (KDE bug 391792, fixed right now, authored by Dan Leinir):

UI polish & improvements

  • On the Updates page, the selection text can no longer overlap with the Update button (KDE bug 391632, fixed in KDE Plasma 5.13.0, authored by me, Nate Graham):
  • Increased the width of the “Add Source” dialog, so the URL is less likely to get cut off (KDE Phabricator revision D11219, fixed in KDE Plasma 5.13, authored by me, Nate Graham):
  • Discover now uses a more intuitive and obvious UI for choosing which source to install an app from (KDE bug 390464, fixed in KDE Plasma 5.13, authored by Aleix Pol):

    (We’re aware of the visual papercuts in the above screenshot, and will be working to resolve them in the coming days and weeks)
  • Improved the app page by removing the redundant second copy of the app’s name (KDE Phabricator revision D11364, fixed in KDE Plasma 5.13.0, authored by me, Nate Graham) and fixed the top padding (KDE Phabricator revision D11362, fixed in KDE Frameworks 5.45, authored by me, Nate Graham):
  • Discover now shows a more obvious and less transient page when asked to open an invalid appstream://URL (KDE bug 391756, fixed in KDE Plasma 5.13, authored by Aleix Pol):

Just take a look at these screenshots! Isn’t discover looking really good these days? We’ve chewed through most of our backlog of architectural issues and are working hard on adding much-requested features and polishing the UI.

If my efforts to do, guide, and document this work seem useful and you’d like to see more of them, then consider becoming a patron on Patreon, LiberaPay, or PayPal.

Become a patron Donate using Liberapay donate with PayPal

This blog is about KDE Connect. KDE Connect is a project to communicate across all your devices. For example, with KDE Connect you can receive your phone notifications on your desktop computer, control music playing on your desktop from your phone, or use your phone as a remote control for your desktop.

Well this is my first blog.

I've started working on KDE Connect last November. My first big features were released yesterday in KDE Connect 1.8 for Android, so cause for celebration and a blog post!

My first big feature is media notifications. KDE Connect has, since it's inception, allowed you to remotely control your music and video's. Now you can also do this with a notification, like all Android music apps do! So next time a bad song comes up, you don't need to switch to the KDE Connect app. Just click next on the notification without closing you current app. And just in case you don't like notifications popping up, there's an option to disable it.

The second big feature is album art for the media control. Since most songs belong to an album, and people put serious time into designing those album covers, it's a shame we haven't been showing those covers all this time! But wait no more: we've finally got album art in KDE Connect!

Currently, only remote album art is supported (used in e.g. Spotify). Local album art and album art in the media notifications will come in a future release of KDE Connect.

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.

Release Schedule

We are preparing the 0.1 release of Elisa. A stable branch has been created and translations set up for the stable branch.

We plan to have a string freeze starting 24th March.

The release will be tagged on 7th April with the release happening shortly after.

We are also continuing development of what will become the 0.2 release. We plan to make a release each 3 months and to support the stable release with a few bug fix releases. We have summarized the schedule for the next releases in the KDE community wiki.

Now is really a good time to join the Elisa team. You will be able to work on code that will soon reach potential users. You will not have to wait for a long time given that we will soon release.


Since the last blog posts, quite some changes went into Elisa. Most notably is the partial migration to raw Qt Quick Controls v2 and all the fixes for HighDPI support. Alexander is also looking at opportunities to leverage Kirigami.

Screenshot_20180316_212445Current Elisa interface

Here is the raw git changelog:

  • ddf1354 artist, album artist, genre composer and lyricist can be strings list: fix Elisa
  • 184f15b Don’t rely on playPause for MPRIS pause
  • 3a46c62 add tests for navigation bar
  • b38c3de add top margin for album view and all tracks view
  • f47cab3 ensure the busy indicator is not visible when not running
  • 15339f8 fix double click for playlist
  • 6b862b6 fix metadata view after merge of controls2 branch
  • 115b9bc fix music not being stopped when clearing the play list
  • d00c821 remove random generator setup from qml
  • 617c81c pipe loading of album data through proxy model
  • 9a798f8 Merge branch ‘controls2_rebase’
  • c6e928f fix other small issues with enqueue methods of MediaPlayList
  • d74f0a8 add missing explicit in front of some constructors thanks to
  • f062fb1 enqueue an empty list of tracks ID is now doing nothing
  • 8f534b2 fix a small error due to migration to object creation in c++
  • 6e4f632 Fix MPRIS pause
  • 7aceef7 fix several visual issues
  • 7255eb7 convert metadata view to a controls v2 window
  • f214758 Revert “ask Qt Quick Controls v2 style to be org.kde.desktop”
  • 4f874dc ask Qt Quick Controls v2 style to be org.kde.desktop
  • fef03db fix issues after controls2 port
  • 3afca2d port to controls2
  • 58647d0 connect to deleteLater to ensure that object is deleted
  • b91a425 main: Use HighDpiPixmaps
  • 6067340 qml: Use pointSize instead of pixelSize for HiDPI screens
  • 3d221a5 use contains for membership test
  • 7654591 fix all tracks view signals

The following authors have contributed to Elisa:

  • Alexander Stippich
  • Matthieu Gallien
  • Andreas Schneider
  • Fabian Kosmale
  • Nicolas Fella

Thanks a lot for those contributions.

Testing Elisa

There are several way to test Elisa but the easiest one is using the flatpak package produced by KDE if you are running a system supporting flatpak. The flatpak service is back automatically building a package when changes are integrated in Elisa. This is the kind of services the awesome KDE community provides. You can easily contribute your energy or some money to help this to continue.

If you happen to use windows, there is also a setup built by binary-factory KDE service (Elisa is built with craft and craft makes it very easy to produce Windows setup).

There are also some packages built for your distributions from the git repository. This is a nice way to test Elisa. Thanks for the effort of the packagers.

Recientemente ha sido lanzado GCompris Qt 0.90, una nueva versión de la suite educativa que ya es parte de KDE y que sigue ofreciendo verdaderas maravillas para niñas y niños.

Lanzado GCompris Qt 0.90

Como nos tiene acostumbrado el equipo de desarrolladores de GCompris, cada nuevo lanzamiento de esta suite de juegos educativos nos ofrece una buena colección de novedades.

Este GCompris Qt 0.90 añade 8 nuevos juegos:

  • Una actividad con el Calendario, para que los niños aprendan a utilizarlo (gracias a Amit Sagtani)
  • Otra actividades basada en el calendario con la que los niños amplían su uso, encontrando fechas futuras y pasadas a una determinada (también gracias a Amit Sagtani)
  • Una actividad para aprender las relaciones entre familiares (que fue iniciada por Rajdeep Kaur en un pasado GSoC y completada por Rudra Nil Basu a lo largo del último GSoC)
  • Otra actividad similar con preguntas sobre las relaciones entre los miembros de una familia.
  • Una extensión para las actividades memorísticas donde los niños deben relacionar minísculas con su correspondiente mayúscula (gracias a Aman Gupta)
  • La mism actividad pero en modo dos jugadores con Tux (gracias a Aman Gupta)
  • Portado de Gtk y mejorado la actividad submarino donde los niños aprenden el funcionamientos básico de un submarino (gracias a Rudra Nil Basu)
  • Una actividad de electrónica digital donde los niños aprender a crear esquemas eléctricos. Además, tiene un modo tutorial que explica como funciona cada elemento (empezado por Pulkit Gupta en un anterior GSoC y completado por Rudra Nil Basu)

Lanzado GCompris Qt 0.90

Además, se han solucionado un buen número de errores con el que seguir puliendo una aplicación que deberías estar presente en todas las comunidades educativas.

¿Qué es GCompris?

GCompris es un colección de aplicaciones educativas que contiene diferentes actividades para niños entre 2 y 10 años de edad. Originalmente GCompris estaba escrito lenguaje C y Python utilizando las herramientas de GTK+ pero a principios de 2014, desde que sus desarrolladores anunciaron que pasaban a ser un proyecto de la Comunidad KDE, se ha reescrito en a C++ y QML utilizando las herramientas Qt.

Más información: GCompris

LibAlkimia is a base library that contains support for financial applications based on the Qt C++ framework. One of its main features is the encapsulation of The GNU Multiple Precision Arithmetic Library (GMP) and so providing a simple object to be

March 15, 2018

La evolución de las aplicaciones ofimáticas de KDE es un poco irregular. Calligra ofrece avances importantes seguidos de silencios incómodos. Es por ello que me complace anunciar que ha sido lanzado Kexi 3.1, una nueva versión del gestor de bases de datos KDE y que acerca el mundo de las bases de datos a los usuarios menos avanzados.

Lanzado Kexi 3.1, el regreso del gestor de bases de datos KDE

Lanzado Kexi 3.1, el regreso del gestor de bases de datos KDEDespués de muchos meses de duro trabajo y más de 200 errores solucionados, ha sido lanzado Kexi 3.1, un lanzamiento mayor dentro de la rama 3.x y que nos ofrece novedades interesantes siendo una de las más importantes la vuelta de la aplicación al sistema operativo Windows, el cual contará con un nuevo y mejor instalador.

No obstante, esa no es la única gran novedad del gestor de bases de datos ya que entre otras también nos encontramos:

  • Mejoras en el asistente para la importación de tablas, que ahora permite al selección del juego de caracteres de la misma.
  • Nuevas opciones para KReport con los que crear informes es mucho más fácil y versátil que nunca.
  • La ventana KProperty proporciona ahora una información mejorada de las unidades y de las propiedades visuales.
  • Las traducciones también han recibido muchas mejoras.

Una gran noticia para la Comunidad KDE en particular, y la Comunidad GNU/Linux en general.

¿Qué es Kexi?

Para los que no lo sepan, Kexi es una aplicación que se integra con la suite ofimática Calligra, que nos proporciona una forma sencilla y visual de crear tablas, consultas y formularios para crear bases de datos, además de exportarlo a múltiples formatos.

Adicionalmente, Kexi  nos ofrece opciones de búsqueda avanzadas, soporte para parametrizas consultas, modo de diseño para bases de datos relaconales y almacenaje de objetos, incluidas imágenes.

Más información: KDE News | Calligra Kexi


We are happy to announce the release of Qt Creator 4.6 RC!

Since the beta release we have been busy with bug fixing. Please refer to the beta blog post and our change log for an overview of what is new in Qt Creator 4.6. As always this is a final call for feedback from you before we release 4.6.0, so we would be happy to hear from you on our bug tracker, the mailing list, or on IRC.

Get Qt Creator 4.6 RC

The opensource version is available on the Qt download page, and you find commercially licensed packages on the Qt Account Portal. Qt Creator 4.6 RC is also available under Preview > Qt Creator 4.6.0-rc1 in the online installer, as an update to the beta release. Please post issues in our bug tracker. You can also find us on IRC on #qt-creator on, and on the Qt Creator mailing list.

The post Qt Creator 4.6 RC released appeared first on Qt Blog.

((Okular contributors, take a note of the end))

KDE Applications 18.04 Feature Freeze is setting in. Or: reminder to do finally that feature you always wanted to implement.

This time for me it’s remote control for presentation-like media shows. Think slideshows of images/videolets e.g with the image browser Gwenview, or presentations given with the document viewer Okular. Would be nice to do this from across the room or stage, being deep in your comfortable furniture or when standing by the auditorium, would it not?

There is your wireless input controllers to help you. But…

… we want more, like:

  • seeing ourselves the notes for the current slide
  • seeing a preview what is coming up
  • being able to jump straight to a picture or slide without everyone seeing our desperate search for that in the overview list (avoiding also spoilers with not yet shown ones)

Obvious idea: use your smartphone as rich remote control. Just write a controller app which talks to your app on the computer running the presentation. Profit.

Though only profit for the given app. Would it not be nicer if there were some standard interfaces, so remote controllers would work across applications? We have seen that before, for music and movie players. In the FLOSS world there is e.g. the Media Player Remote Interfacing Specification (MPRIS). And if we think about it, “media” is an abstraction, one which also can cover images & slides. Though the rest of the spec then uses concepts and terms which are rather bound to typical music players, like “track” or “playlist”.
So not usable for our purpose. Or? If we ignore the actual terms, we find we can map their abstract data model with some flexibility onto the data model of a simple one-dimensional slide-by-slide/image-by-image presentation. And by doing so instantly can get access to the existing MPRIS controllers, allowing us to walk through the slides, going fullscreen, start playing & pausing and so on. Controllers like e.g. the MPRIS-based media controller plugin for KDE Connect.

So it’s just adding a MPRIS-wrapper to e.g. Gwenview or Okular, and we have some initial working remote controllers for them. Now this sounds fancy to have, no?

And for Gwenview, I can happily report that by some hard review work of Henrik F. a first version has just been merged. Shipping to everyone as part of KDE Applications 18.04.

For Okular we have a similar patch. Though it needs some good souls to give it a complete review in the next 7 days, otherwise it will miss out for the upcoming release and be at least delayed some more four months.

The patches should be also interesting to adapt for photo management applications like Digikam or KPhotoAlbum.
So want to give your vacation report to your friends while sitting next to them on the couch as well? Have a look at those two patches and try to adapt them for those applications, you will see it is rather simple value and action forwarding code ��

March 13, 2018


We are happy to bring you GCompris 0.90.


This new version contains 8 new activities:


  • A calendar activity where the child learns how to use it (by Amit Sagtani)
  • Another activity based on calendar where the child has to find the date corresponding to a date + some days after/before this date (by Amit Sagtani))
  • An activity to learn how people on a family are related and how to call this relation (started by Rajdeep Kaur on a previous GSoC, completed by Rudra Nil Basu during last GSoC)
  • Another similar activity with questions about family members
  • An extension of memory activities where the child has to match lowercase letters with their corresponding uppercase (by Aman Gupta)
  • The same activity in two players mode (by Aman Gupta)
  • The Gtk+ port and improved submarine activity where the child learns a basic overview on how to run a submarine (by Rudra Nil Basu)
  • The digital electricity activity where the child can use different components to create an electric schema. There is also a tutorial mode to explain how to use each component (started by Pulkit Gupta on previous GSoC, completed by Rudra Nil Basu)



We always have new features, content and bug fixes:


  • Updated graphics on several activities by Timothée Giet
  • Irish translation, voices and datasets by Séamus Ó Briain
  • Lot of improvements on removing overriding elements issues (score were hidden behind the bar…)
  • Add Tutorial item to be able to have activity introductions with both images and texts
  • Add easy mode in letter in word with less words displayed
  • Add license page
  • Lots of small bug fixes



You can find this new version on the download page.


On the translation side, we have 14 languages fully supported: British English, Catalan, Catalan (Valencian), Chinese Traditional , Dutch, French, Greek, Indonesian, Italian, Portuguese, Romanian, Spanish, Swedish, Ukrainian;
And some partially supported: Belarusian (87%), Brazilian Portuguese (87%), Breton (65%), Chinese Simplified (80%), Estonian (79%), Finnish (78%), Galician(87%), German (83%), Hindi (86%), Irish Gaelic (99%), Norwegian Nynorsk (86%), Russian (80%), Slovak (76%), Slovenian (70%), Polish (99%), Turkish (93%).

If you want to help, please make some posts in your community about GCompris and don’t hesitate to give feedbacks.

Thank you all,
Timothée & Johnny

We are happy to announce the release of Qt Creator 4.5.2!

This release includes a workaround for an issue in Qt which makes Qt Creator’s summary progress bar and some other controls disappear (QTCREATORBUG-19716).

Get Qt Creator 4.5.2

The opensource version is available on the Qt download page, and you find commercially licensed packages on the Qt Account Portal. Qt Creator 4.5.2 is also available through an update in the online installer. Please post issues in our bug tracker. You can also find us on IRC on #qt-creator on, and on the Qt Creator mailing list.

The post Qt Creator 4.5.2 released appeared first on Qt Blog.

March 12, 2018

After many months of hard work and more than 200 bugs fixed, KEXI is back with a new major release that will excite Windows and Linux users alike.

If you are looking for a Free and open source alternative to Microsoft Access, KEXI is the right tool for you.

KEXI offers an easy way
to design all kinds of databases.

As part of the Calligra suite, KEXI integrates with other office software, providing an easy, visual way to design tables, queries, and forms, build database applications, and export data into multiple formats. KEXI also offers rich data searching options, as well as support for parametrized queries, designing relational data, and storing object data (including images).

A new version of KEXI has just been released, so if you have never tried this powerful database designer application, now is the right time.

KEXI 3.1 is available for Linux and macOS, and after many years, for Windows as well.

KEXI Is Back on Windows

Business environments are often concerned about migrating to FOSS solutions because of compatibility issues with the proprietary software and formats they currently use. KEXI solves that problem with its Microsoft Access migration assistant that ensures database tables are preserved and editable between applications. Even better, KEXI works natively on the Windows operating system. In fact, KEXI was the first KDE application offered in full version on Windows.

After a long hiatus, the new version of KEXI offers convenient installers for Windows once again. Although it's a preview version, the users are invited to try it out, report bugs, and provide feedback.

Usability and Stability for Everyone

KProperty is included in the first
major release of KEXI Frameworks.

Similar to Plasma 5.12 LTS, the focus of KEXI 3.1 was to improve stability and (backward) compatibility. With more than 200 bugfixes and visibly improved integration with other desktop environments, the goal has definitely been achieved.

Usability improvements have also made their way into KEXI 3.1 dialogs. When using the Import Table Assistant, it is now possible to set character encoding for the source database. Property groups are now supported, and users can set custom sizes for report pages.

Great News for Developers

KEXI 3.1 marks the first official release of KEXI Frameworks - a powerful backend aimed at developers who want to simplify their codebase while making their Qt and C++ applications more featureful. KDb is a database connectivity and creation framework for various database vendors. In KEXI 3.1, KDb offers new debugging functions for SQL statements and comes with improved database schema caching.

KProperty is a property editing framework which now comes with improved support for measurement units and visual property grouping. Last but not least, KReport is a framework for building reports in various formats, offering similar functionality to the reports in MS Access, SAP Crystal or FileMaker. The most useful new feature in KEXI 3.1 is the ability to set custom page sizes for KReport.

New options in KReport allow you to
tweak the appearance of reports.

Alongside Frameworks, KEXI 3.1 offers greatly refined APIs and updated API documentation. According to the developers, “the frameworks are now guaranteed to be backward-compatible between minor versions”.

Translations have also been improved, and KEXI 3.1 is the first version where they are bundled with the Frameworks. This will make it easier for the developers using KEXI Frameworks, as they will be able to use translated messages in their apps.

Make KEXI Even Better

Even with all the excitement about the new release, KEXI developers are already working on new features and improving the existing ones. If you'd like to help make KEXI better, it's never too late to join the project! Take a look at the list of available coding and non-coding jobs.

Although the API documentation has been updated, the user documentation could use some love. If you're good at writing or teaching others, why not chip in?

Finally, if you know a business or an individual that's looking for a Microsoft Access replacement, tell them about KEXI.
They just might be pleasantly surprised with what they'll discover.

Download the KEXI 3.1 source or install it from the repository of your distribution. For the full list of changes in the new version, take a look at the official changelog.

March 11, 2018

I figured out a solution to a hardware troubleshooting problem I’ve had going off and on for at least a couple of years.  I feel like others might run across it and, not knowing anywhere better to note it, suppose I might as well dump it on my blog and hope search engines can make it available to those who need it.

Anyways, the problem is that sometimes my computer wouldn’t boot.  Particularly after power outages (in retrospect, clue 1).  Sometimes resetting the CMOS would work.  Sometimes resetting CMOS wouldn’t work but pulling various cards / memory modules around and reseating them would work.

Once when I encountered this issue, I discovered that plugging in my monitor using HDMI instead of DisplayPort worked (clue 2).  This, however, lead to a separate problem which took me months to figure out (HDMI only supports 30 fps on my monitor’s native resolution, an issue fixed an a later rev of my monitor’s hardware).

When the issue recently started to recur (after a weather-related power outage), I discovered that plugging in an alternate GPU (an incredibly cheap emergency backup discrete unit I have) also worked.  This one only had HDMI but it couldn’t drive native resolution anyways, so at least I didn’t have to worry about 30fps.

The issue had gotten significantly worse when I upgraded my CPU and motherboard a year ago, so I spent weeks thinking that my GPU simply didn’t work well with the new CPU/motherboard and that it was time to find a different GPU.

The new GPU recently showed up and had the exact same problem as the previous one (oops).  Everything finally dawned on me when I tried the HDMI output on the off chance that it wouldn’t be also affected by the 30fps issue (it was, but at least the computer booted!).

It turned out that the problem was my monitor this whole time.  I went with a full power cycle to my computer probably dozens of time in the course of debugging this issue.  But I didn’t power cycle my monitor once… doing so fixed my issue fully.

I guess I’ve been thinking that monitors are still “dumb”, that they just show pixels coming in over the wire.  But that is no longer the case, hasn’t been for years, and so if you’re having issues that you think are GPU issues, don’t forget to do the “turn it off and then back on again” routine with your monitor as well!

In my case, what I think the issue was, is that the monitor had its display connection state corrupted slightly (whether due to power cycling or something else), and that the GPU was unable to complete a valid connection to the monitor during computer boot.  Without a GPU in a valid state to drive a display, the motherboard would apparently abort the boot process (it had a GPU debug LED lit up, which I couldn’t figure out the cause of since the GPU always worked fine if I could get the computer to boot).

I could never find this problem described in any of my searches, but hopefully this will help someone else if they encounter something similar.

KDE has set the focus on 3 goals around improved usability and productivity, privacy and easier onboarding of new contributors to KDE. On Thursday (15. March 2018) we are going to hold an office hour. During the office hour you can ask all your questions around these goals and tell us about your ideas for pushing them forward. We will be meeting in the channel #kde on freenode IRC at 16:00 UTC. We hope to see many of you there.

Sou usuário e empacotador do Mageia desde o lançamento do fork, e não me levem a mal, para mim continua sendo uma distribuição de excelente qualidade para o seu propósito: comunitária, aberta para as mais diferentes contribuições e com ênfase na estabilidade. Mageia é das poucas distros com suporte há mais de 8 ambientes desktop (sem contar os gerenciadores de janelas leve), e com o lançamento da versão 6 passou a ter suporte ao AppImage, Fedora Copr, Open Build Service, dnf, e muito mais tecnologias que dão uma cara moderna para o projeto. Uso Mageia nos meus computadores pessoais e de trabalho e também nos computadores que meus alunos utilizam no laboratório.

Como desenvolvedor tanto do KDE quanto do Mageia, utilizo a versão instável da distro (chamada Cauldron) desde sempre. Ela me entrega as versões mais recentes da “pilha KDE” (KDE Plasma, Applications e Frameworks) e também do Qt. No geral funciona bem, mas volta e meia alguns software importantes deixam de funcionar ou ficam muito instáveis, prejudicando o desenvolvimento de algumas tarefas.

Antigamente isso não era um problema para mim – mesmo sendo estudante de mestrado ou doutorado, eu normalmente aguardava algum desenvolvedor corrigir os erros ou eu mesmo ia lá e metia a mão pra tentar solucionar. Essa é uma forma muito efetiva de contribuir com software livre.

Mas hoje em dia tenho pouca disposição para tanto. O trabalho como professor, somado às outras coisas a que me dedico, exaurem meu tempo para realizar esse tipo de tarefa.

Passar a utilizar o Mageia estável não é uma boa opção: o preço da estabilidade é ter um sistema com versões antigas dos software. Por exemplo, o Mageia 6 ainda utiliza o Plasma 5.8, enquanto o Cauldron tem o 5.12. Infelizmente, meu caso de uso mudou e as opções que o Mageia dispõe não casam muito bem com ele. Até propus um projeto não-oficial de construir os software mais recentes do KDE para a versão estável do Mageia, mas estou esperando um retorno do time de empacotadores da distro para ver o que eles acham (pois é, parágrafos cima eu disse que estava sem tempo e vejam só, estou propondo um novo projeto aqui :D).

Gostaria, portanto, de ouvir o pessoal sobre opções de distros que utilizam os software do KDE que atendam ao seguinte caso de uso:

  • Ser estável em seus componentes base (kernel, xorg, etc);
  • Ter a pilha KDE no modelo rolling release;
  • Ter opções relativamente amplas para software não Qt.

Na verdade eu já fiz uma pesquisa assim e há várias opções disponíveis. Por exemplo, o próprio KDE tem o projeto neon, que faz o caso de uso descrito acima tendo o Ubuntu como base. Há também o OpenSUSE com os repositórios Argon/Krypton, e mesmo distros específicas nesse modelo, como o KaOS e o Chakra. Inclusive isso vai render outro post sobre essas distros.

Minha principal dúvida é sobre a estabilidade e experiência de uso desses projetos. Se você usa algum deles, ou mesmo conhece outro não citado, coloque aí nos comentários para que embase minha decisão de migrar para outra distro (ou não).

KDE contributors continue to polish up KDE software! In addition to our recent work on Discover, KDE Plasma and other apps got a lot of love too, especially Konsole. See for yourself!

New features

  • Spectacle now exposes a token that can be used to add the window title to the file name of the saved screenshot (KDE bug 378463, implemented in KDE Applications 18.04.0, authored by Roman Inflianskas)
  • Konsole tabs can now be marked as “read-only”, blocking all input (KDE bug 126930, implemented in KDE Applications 18.04.0, authored by Joshua Noack)


  • Fixed a bug causing Spectacle to incorrectly screenshot individual windows when compositing is off and they’re touching or going beyond the edge of the screen (KDE bug 390652, Fixed in KDE Applications 18.04 authored by Alex Nemeth and Henrik Fehlauer)
  • Fixed a bug that could cause the SDDM login screen to not display properly for certain HiDPI systems (SDDM bug 894, fixed in SDDM 0.18, authored by Fabian Vogt)
  • Fixed a bug causing certain files to not show up under “Recent Documents” when right-clicking on an app in the Task Manager or Launcher menu (KDE Phabricator revision D10890, fixed in KDE Plasma 5.11.4, authored by Алексей Шилин (Aleksei Shilin))
  • Fixed bug causing Konsole to recall shell history instead of moving the view when scrolling with a mouse wheel or touchpad (KDE bug 355106, fixed in Konsole 18.04.0, authored by Ahmad Samir)

UI Improvements and polish

  • Plasma’s support for showing app menus globally or in a titlebar button now supports virtually all GTK-based programs (KDE bug 375976, fixed in KDE Plasma 5.13.0, authored by Kai Uwe Broulik; read more about it here!):

  • The Media Player widget now uses better and more appropriately-sized icons (KDE bug 390280, fixed in KDE Plasma 5.13.0, authored by Roman Gilg):
  • Konsole now uses KMessageWidgets to display status indicators, which are prettier and more usable than the old UI was(KDE Phabricator revision D10935, fixed in KDE Applications 18.04.0, authored by Joshua Noack):
  • Konsole’s scrollbar now blends in with the terminal’s background color to avoid distracting you (KDE Phabricator revision D11184, fixed in KDE Applications 18.04.0, authored by Marco Martin)
  • Desktop icon behavior and consistency has been much improved for multi-monitor setups (KDE bugs 390676 and 389745; KDE Phabricator revision D10729; fixed in KDE Plasma 5.13.0)
  • Buttons inside text fields (e.g. an inline “clear” button) show the pressed state correctly (fixed in Qt 5.12, authored by Kai Uwe Broulik):
  • Fixed a bug causing System Monitor to open in a partially or fully off-screen location for people with multiple displays (KDE bugs 368158 and 356706, fixed in KDE Plasma 5.13, authored by Valeriy Malov)

We need your help! KDE is committed to polishing our software to a mirror sheen and focusing in the kind of usability that our community is clamoring for, but we need the community’s help to make it happen as fast as everyone wants! Consider becoming a KDE contributor, particularly in development, and help make KDE Plasma and KDE apps total no-brainer choices in the Linux world, and then eventually the whole world…

If my efforts to do, guide, and document this work seem useful and you’d like to see more of them, then consider becoming a patron on Patreon, LiberaPay, or PayPal.

Become a patron Donate using Liberapay donate with PayPal

This is the last day left of the Call for Papers for foss-north 2018. With the help of our great sponsors we have the opportunity to transport you to our conference if you are selected to speak. Make sure to make your submission before March 11 and you are in the race.

Why should you talk at foss-north?

  • You get to tell the world about something you are passionate about!
  • You get to visit Gothenburg, Sweden – we can even pay for your trip!
  • You get to speak to the best audience we can get!
  • You get to meet loads of nice people!
  • You get to attend the speaker’s dinner, meeting many interesting people!
  • I really want you to!

Don’t spend time pondering on why you should not talk at foss-north – instead – submit your talk proposal today!

March 10, 2018

When building the KSyntaxHighlighting framework, the syntax highlighting xml files are compiled into the KSyntaxHighlighting library. In order to do so, we have a small little helper program that generates an index of all xml files. This indexer also validates the xml files against the XML Schema, and performs some more sanity checks.

Review request D10621 tries to extend the indexer even further and suggest optimizations for our highlighting files. For instance, the rule

 <AnyChar context="#stay" String="&space;" attribute="Normal Text" />

should be replaced by the faster rule

 <DetectChar context="#stay" char="&space;" attribute="Normal Text" />

Similarly, the rule

 <RegExpr attribute="Normal" context="conditionNot" String="\bnot\b" lookAhead="true" insensitive="true"/>

should be replaced by the much faster rule

 <WordDetect attribute="Normal" context="conditionNot" String="not" lookAhead="true" insensitive="true"/>

The proposed patch above generates more than 1500 suggestions to improve our highlighting files, so a lot of work. Help would be very much appreciated. So if you would like to contribute to KDE and are looking for simple work to do, then feel free to get started by sending improved highlighting files to us via (click “Code Review” on the left, and then “Create Diff” on the top right – or even better use arc to automatically manage your patches). Oh, and please increase the version number in the xml files whenever you provide a patch ��

Every year we try to seed the foss-north event with a set of key speakers. This year, one of our seed speakers is Steven Goldfarb from the ATLAS project at CERN. He will take us on a journey from the vastness of the universe, to the tiniest particles we can observe – all possible through collaboration.

“On 4 July 2017, one billion people – a large portion of our planet’s population – took time out of their day to watch a one-and-a-half-hour scientific seminar featuring plots, graphs, Greek letters, and comic sans. Why? A deep-rooted survival instinct told these people that the discovery by CERN scientists of a fundamental component of our universe was something worth paying attention to. Or they were just news junkies. But, they were right.

Today, at CERN, and other physics laboratories around the world, we are seeking answers to the most fundamental questions of humankind: What are we made of? Where did we come from? Where are we going? What are the rules behind all this? Although we might never find the answers, the pursuit of them provides us with the knowledge and skills our children need to survive. I discuss current puzzles in particle physics and cosmology, then challenge us to keep opening our research (data, source, results) to take advantage of our culturally rich, diverse population.”

It is just 1 more days left of the Call for Papers. With the help of our great sponsors we have the opportunity to transport you to our conference if you are selected to speak. Make sure to make your submission before March 11 and you are in the race.

We did a lot of polish work on Discover this week, and also implemented a much-requested feature:

New features

  • Discover now lets you change the sort order of app lists and search results (KDE bug 383518, implemented in KDE Plasma 5.13.0, authored by Aleix Pol)

    We are still working on refining and polishing the UI here, but this much-requested feature is now implemented!

UI Improvements and polish

  • When you’re adding a new repo, Discover now won’t let you enter an invalid URL (KDE bug 390148, fixed in KDE Plasma 5.12.3, authored by Aleix Pol):
  • Improved the usability of the “confirm package removal” dialog (KDE Phabricator revision D10992, fixed in KDE Plasma 5.12, authored by me, Nate Graham):

    As you can see, there’s more work to be done: alphabetize the package list, remove the red close button in the corner, reduce whitespace. Further improvements coming soon!
  • Improved the usability of the “Add Source dialog” (KDE Phabricator revision D11003, fixed in KDE Plasma 5.13.0, authored by me, Nate Graham)
  • Transient notifications in Discover and all other Kirigami apps now last longer, so you have enough time to read them (KDE Phabricator revision D11009, fixed in KDE Frameworks 5.44, authored by me, Nate Graham)

We need your help! Consider becoming a KDE contributor, and help make Discover the best Linux app store in existence!

If my efforts seem useful and you’d like to see more of them, consider becoming a patron on Patreon, LiberaPay, or PayPal.

Become a patron Donate using Liberapay donate with PayPal

March 09, 2018

The first beta of the Bionic Beaver (to become 18.04) has now been released, and is available for download!

This milestone features images for Kubuntu, Ubuntu Budgie, Ubuntu Kylin, Ubuntu MATE, and Xubuntu.

Pre-releases of the Bionic Beaver are not encouraged for:
* anyone needing a stable system
* anyone who is not comfortable running into occasional,
even frequent breakage.

They are, however, recommended for:
* Ubuntu flavour developers
* those who want to help in testing, reporting, and fixing
as we work towards getting this release ready.

Beta 1 includes some software updates that are ready for broader testing. However, it is quite an early set of images, so you should expect some bugs.

The full text of the announcement:

The Kubuntu 18.04 Beta 1 images can be downloaded from:

More information about Kubuntu 18.04 Beta 1 can be found here:

Some people likes to talk at conferences, other dread it. At foss-north, we welcome both new and experienced speakers and work hard to make the experience pleasant to all. We are looking for contents on a wide variety of subjects. Here are some topic ideas to encourage you to submit a talk proposal:

  • Teach us your favorite tool.
  • Talk about your pet project.
  • Talk about your favourite programming language.
  • Talk about the friends you’ve made through FOSS.
  • Talk about a piece of software that you are missing.
  • Talk about how you organize your work around FOSS.
  • Talk about why FOSS helps you create your product or delivery your service.
  • Talk about software licenses.
  • Talk about software patents.
  • Talk about how you use FOSS at your school.
  • Talk about your own FOSS conference.
  • Talk about anything that you want!

Of course we want your talk to be about free and open source – that is what foss in foss-north stands for.

foss-north strives to gather the best speakers, the best audience at the best location (Gothenburg) for one day each year. This year the event takes place on April 23 – get your tickets here!

It is just 2 more days left of the Call for Papers. With the help of our great sponsors we have the opportunity to transport you to our conference if you are selected to speak. Make sure to make your submission before March 11 and you are in the race.

Long time no see. There has been a lot going on since my last blog post which was about Plasma 5.10 but I didn’t feel like blogging for a long time. However, there is something super exciting for the upcoming Plasma 5.13 release I want to share with you:

LibreOffice with global menu

gedit with title bar menu button

For the past couple of weeks I have been working on a way to get GTK applications talk to Plasma’s Global Menu feature. I came up with a little helper application called gmenu-dbusmenu-proxy that talks both GMenu and DBusMenu protocols. This way no adjustment on Plasma’s side is needed, it just sees a regular global menu enabled application.

Not only does it support a fully fledged menu bar, if available, but also the little application menu with settings, about, and quit:

d-feet with its application menu tucked away in the title bar

It doesn’t stop there, though, it also works in conjunction with appmenu-gtk-module (or unity-gtk-module for pre-Gnome Ubuntu) enabling global menu for a wide selection of applications, including Gimp, Inkscape, Sublime Text, Audacity, and many more. There’s also a quite extensive mapping table for menu icons, although not all applications provide action names I can work with.

The code has just been merged so you can grab it from git right now or soon from your distro’s daily package repository. It sits in plasma-workspace/gmenu-dbusmenu-proxy. Please give it a try so we can iron out any glitches applications might expose! I’m curious to hear what applications you’re using and how it’s working out for you, specifically how they behave when run with and without the following additional configuration steps:

For LibreOffice you need to install libreoffice-gtk2 or libreoffice-gtk3 and then export SAL_USE_VCLPLUGIN=gtk (or gtk3). For Gimp, Inkscape, and others you need to install appmenu-gtk-module and export GTK_MODULES=appmenu-gtk-module (substitute unity for appmenu in older versions of Ubuntu and KDE neon). GTK3 applications such as gedit and shotwell should work right away. What now needs to be figured out with distributions is how to achieve the best possible user experience out of the box.

Many thanks to Konstantin, current maintainer of appmenu-gtk-module, for helping me understand the quirks in the protocol, and Rokas Kupstys for extensively testing my implementation.

What about HUD?

Update: Since this suggestion comes up a lot: Yes, porting the “appmenu runner” has been on my wishlist for a long time. Unfortunately, it’s far from trivial to get all the applications to export their menus whilst also keeping them shown inside the window. I could pull it off for Qt apps (by submitting a patch for an enabling flag) and perhaps GTK (by not setting the “shell shows menu” option) but there could be others that would have their menus rendered inaccessible. I might give it a try but for the time being it will only work when actually enabling global menu.

The Skrooge Team announces the release 2.12.0 version of its popular Personal Finances Manager based on KDE Frameworks


  • Correction bug 389867: Amount Input Changes Value Prematurely
  • Correction bug 389866: Date Input Field Not Localized
  • Correction bug 389899: Split dates aren't updated when copying previous entry
  • Correction bug 390223: Opening d/l QFX file opens new skrooge file instead of importing into existing - opened file
  • Correction: Remove compilation warning (-Wsign-promo)
  • Correction: Can't resize the window and its width exceeds the screen (
  • Correction: Search and process doesn't work in template mode with category used (see:
  • Correction: No sound notification when an operation is created (see:
  • Feature: All bookmarked report can be easily added to the dashboard with the + menu
  • Feature: New "Treemap" graph mode in reports
  • Feature: Automatic merge of payees, accounts and units when updated with another existing name
  • Feature: Alpha numerical values are now supported for number of operation (see:
  • Feature: Addition of a new option to displaythe  environment variables used by Skrooge

Get it, Try it, Love it...

Grab Skrooge from your distro's packaging system. If it is not yet included in repositories, go get it from our website, and bug your favorite distro for inclusion.

Now, you can try the appimage too !

Get Involved

To enhance Skrooge, we need you ! There are many ways you can help us:

  • Submit bug reports
  • Discuss on the KDE forum
  • Contact us, give us your ideas, explain us where we can improve...
  • Can you design good interfaces ? Can you code ? Have webmaster skills ? Are you a billionaire looking for a worthy investment ? We will be very pleased in welcoming you in the skrooge team, contact us !

Krita 4.1’s comic project management tools now support 90% of all ACBF features.

Missing are still: Transparent(text-area), Text-rotation, Jump, and Anchor.

Best of all, I managed to get most of the values understood semi automatically.

So, in August, I managed to get most of the meta data working for ACBF export. This was something that I was working on because I wanted to simplify the collection and writing of meta data for comics projects. Because meta data is something that accumulates over the course of a project, and the comic project management tools weren’t just there to manage pages, but also to give a place to collect all this meta data and then when finished to generate proper meta data files. So just let the computer handle all the boring stuff when it comes to that.

But, ACBF can handle a bit more than just mere meta data. It can also handle translations, panel definitions, and a bunch of meta data for those too.

Text came in quite late for the 4.0 release, for a variety of reasons, in fact, there was quite a lot of work on text even after the string freeze because it was just so fresh and late. I managed to add some super simple API for the vector shapes when doing the same for the layers, and then when I was poking at bugs in the tool, I realized this super simple API was just enough for me to add text(with formatting) and frames support for 4.0.

And that kinda opened the floodgates. Quickly after I ended up working in some fixes with the cover page(it apparently has a frame definition too), handling ACBF author properly, added keywords for marking a page as a title page or setting the page transition, made the frames not just use bounding boxes but try to have it approximate the actual shape, and supporting standalone ACBF files.

Then, after master opened for strings again, I got in the genre and author roles that were missing, implemented very simple genre match, made it possible to define authors properly, added the ability to define which layers should be searched for text, and realized it is really easy to write a POT file for translation. And not that hard to use a PO file to insert translations. And have the translation comments in the PO file be inserted into the references as a ‘translator’s note’. So did that.

Then I was sorta in the home stretch and I went ahead and implemented the style sheets, and have the ACBF exporter use the style sheets if possible to determine what type of text it is handling, whether said text is inverted, and whether it is emphasized or strong. Implemented background color recognition for the bgcolor attribute, and also made sure that preformatted text tries to approximate its bounding box too.

Also, finally implemented database reference field into the meta data dialog, even though it is probably not very applicable to ACBF files made with Krita.

The reason I was so intent on getting this done wasn’t so much because I want this to be the best ACBF exporter out there or something(because it isn’t), but rather because I want people to get a little spoiled.

I worry that with a format like ACBF, a lot of people who’d try to support it could be very inclined to say “well, I’ll support the meta data part, because there’s other meta data formats as well, so we can just reuse the code(and displaying meta data is pretty simple)”. So, if I make it super easy to generate these files with text and background color and translations and everything, to the point people might generate a full featured ACBF file almost by accident, then there will be more full featured files(coming from other people besides Róbert Pastierovič), then it will be less easy to say “Oh, we won’t support this, and it won’t matter because there’s only a handful of files that support it.” It should also be an encouragement for those who are supporting ACBF because that means people will notice the nice features they’re implementing.

Another thing is that I’ve tried making ACBF files from comics, but transcribing is super tedious, let alone then transcribing translations too, so automating things like these is welcome. As well, I was thinking of this type of pipeline that is used in game and VFX studios, and there the idea is ‘try to automate as much filters and toggles as you feasibly can’, so that if you’re running against a deadline, and you have to modify a base file somewhere that might have larger consequences. Then having something that is 99% automated and only requires you to tweak three things afterwards is a blessing. I wanted to provide that kind of luxury to people who’ll use the CPMT.

Though I imagine I may have come across as a possessed madwoman in the last few weeks.

So lets go over some of the elements and thoughts about them.


Text in ACBF is sorta based on docbook, with the semantic “strong” and “emphasis”, but it also contains formatting elements like “strikethrough” instead of the semantic “delete/del”, and “super” and “sub”. I don’t think you can really semantically capture the last two due their multitude of use cases.

Krita uses SVG 1.1 text at the moment, using SVG 1.1’s ability to describe a different position for any span of text. This is what we use for multiline text. We use text-anchor to define how the text aligns(though these are strictly different things), and we could technically use the textLength and lengthAdjust attributes to implement fake justified alignment, except there doesn’t seem to have been time to implement the use of textLength.

comics_manager_acbf_03_enShowing the interpreted text inside the acbf viewer. The viewer has a bit of an issue with aligning the strikethrough decoration, it seems.

We can figure out emphasis and strong by checking the font-style and font-weight. ACBF has the ability to implement a simple CSS style sheet, where emphasis and strong can be defined, so we can also use these styles to check against. The style sheet is a little odd here, the spec seems to imply only font-weight and style can be set for these, but the official ACBF viewer also accepts font, as well, only bold and normal are accepted for font-weight, but not 400 and 700.

Strikethrough can be figured out by checking the text-decoration(and whether it is “line-through”). Super and sub script can be figured out from the baseline-shift attribute.

And then there’s anchor itself. Because Krita is a drawing program, if I give it an anchor it just goes ‘I don’t recognize this’ and throws it out. Therefore I cannot really implement links for websites and the like in the exporter. The exporter does use anchor when there’s a translator note, in which case it adds the anchor to the note in the text-area, and the note to the references section.

Text in ACBF can have types. These are also semantic. The default is speech, but there’s many others. The only one of these that isn’t really semantic and that is ‘code’.

Of these, two are recognizable by their default alignment: Formal and Commentary.

Formal is has it’s text alignment justified. Krita cannot currently actually write justified text of any kind, but the script can check for it, which it does. So it’s semi supported.

Commentary is the same thing as what we usually call a ‘caption’ in comics. It’s alignment according to the spec is right-aligned. Therefore the script will set both start and end(that’s the closest text-anchor gets to right and left alignment) aligned text to use Commentary.

For the last type of alignment, centered text(Middle for text-anchor), the exporter will check the font against the styles and pick the most closest. This requires users to actually configure the styles, but that doesn’t seem too complicated a task.

comics_manager_acbf_05_stylesThe style sheet window is pretty simple, but it should guide people pretty well on what kinds of things they can style.

Outside of type there’s also inverted. Inverted indicates whether the text-area is in an inverted color. There is the ability to decide what text color the default text is and what text color the inverted text is in the style sheet, according to the spec. The CPMT can set these values, and will use them to determine whether a text is inverted by first calculating the luma value of the inverted and regular text. Then figuring out the average and use that as a threshold to figure out if the text color is inverted or not. This sort of works alright, but the problem is that the python ACBF viewer application doesn’t load colors from the style sheet, so if you set inverted color to black and regular color to white, the viewer will still show inverted as white and regular as black, making certain text invisible, so I am wondering whether I did that right…

comics_manager_acbf_02A generated ACBF file inside the ACBF viewer. The ACBF viewer is in this case overlaying it’s own text. The color sampling automatically determines the background color of the text areas allowing for a seamless as possible result. The text was recognized as commentary because it is right-aligned.

The text area has a background color, and that one is figured out by sampling the points that create the text area, sorting the result and then determining if there’s a dominant color. If not, just mix everything together.

For this reason it’s kinda difficult to get the transparent attribute to work. I want to, in the future, see if I can add meta data to the vector shapes, make that readable from python and then implement keywords to indicate whether the text area is supposed to be transparent. This might also be useful for letting people force a text-type on a shape, or to let them force the order of the shapes, as the latter currently relies on z-index, which may be a bit difficult.

Text-rotation could not be implemented because the text shape SVG doesn’t give a transform matrix, so we need API for handling the transform matrix of a shape.


So, transcribing text is kinda a pain, and even copy-pasting over translations is painful, especially when you cannot read them. So I wanted to see how much of that could be automated.

Generating a POT file wasn’t very hard. It is a very simple file format. What was tricky though is that when you try to parse over SVG files and you pull out the text-content, preformatted SVG text looks kinda awful. Furthermore, different DOM APIs have different ways of writing the attributes, so one DOM API writes <tspan x="0" dy="20pt"> while another writes <tspan dy="20pt" x="0"> and this makes it rather hard to match translations. To the point where I just decided to strip the tags for matching.

comics_manager_acbf_04_translatingThe POT file inside poedit. I am not a fan of the massive amount of tspans, but it cannot be helped for now.

All I can say is that I am waiting for the day Krita will have svg 2 wraparound text so the POT files will not be as intimidating. :p

When a POT file has been translated and a PO file has been created and put into the same folder, the exporter will search that folder for the PO files and tries to get the translations and puts those into the ACBF file automatically:

comics_manager_acbf_03_nlDutch translation of this non-comic’s text inside the ACBF viewer.

ACBF also has several meta data elements that can be translated. The title, annotation, keywords and bookmark titles. These are also written into the POT file with a context tag, so it’s easy to recognize them.

Getting translator’s comments out of a PO file is quite easy, so I quickly realized I wanted to support those getting exported to the ACBF file too. Even when I am translating one of my own dialogues and texts to English or Dutch, I notice I sometimes come across things I want to clarify, so hence I find this important. The feature needs to be toggled in the export, as maybe translators are being a bit too jargonny in their comments which may not be appropriate for publishing. There’s also a translator’s note header there than can be configured and will be translatable too. The header will be prepended to translation notes so that it’s obvious who wrote them.

I want to support proper author notes at some point too, but that will require shape meta data again.

Another reason I want to see wraparound is because right now, the text outline is determined from the tspans that make up each line. The ACBF viewer then adds a little bit of margin to this and calculates the maximum text size by itself, which means that for translations, the text becomes super-tiny in ACBF.

comics_manager_acbf_1A generated ACBF file inside the ACBF editor, the same page as shown earlier. As you can see, the outlines around the preformatted text are very snug, which leads into teensy text when ACBF viewer tries to overlay its own text. Here it also becomes obvious the z-index for ordering the panels/text might not be cutting it.

The work done for preformatted text isn’t useless though, as in the future there will still be situations where preformatted text will be used because of it’s flexibility, but I do wish things were a little easier.

Pages and Frames

Frames, or panels are gotten from vector layers marked as panels. It was relatively easy to decipher the SVG and then to generate a QPainterPath from that, which in turn can be used to make polygons which in turn can be used to describe the frames. It would be a little easier if I didn’t have to parse the SVG though, but that would require extra API again.

Frames don’t have their background color set, they just inherit it from the pages. This is because right now there’s no extra padding on frames, which means the boundaries will nearly always be on the frame outline. I might need to think of a way to add padding there. Similarly to text, frames could also use an order of appearance kind of tag because the z-index doesn’t always cut it.

Pages have their background color gotten from a sampling around the corners of the page.

Pages in ACBF have two extra properties: The transition type, and the title. A title is used to create a bookmark, so when you create an ACBF with multiple stories or chapters, these bookmarks can in turn be used for finding each story quickly. Pages in Krita are single KRA files, so to control these values I designated a couple of keywords that the exporter searches for in the keyword section of the page data.

acbf_title is the one that is necessary for designating a page as a bookmark. In this case the KRA file title will be used as the title of the bookmark. The title will also be scraped into the POT file for translation.

acbf_none, acbf_fade, acbf_blend, all set the page transition to their respective transition. acbf_vertical and acbf_horizontal respectively set the page transition to “scroll_down” and “scroll_right”. The latter one, much like the alignment on commentary is something I suspect is supposed to be reversed for languages that are read right to left, so hence the generic name.


There’s no Jump tags. Jumps are basically areas you can press to jump around the comic. This is interesting in, as the spec suggests “choose your own adventure”, but also for anthologies with detailed opening pages. This might possibly be resolved with vector shape meta data, and then have the keyword and a page-title defined, which then gets translated to a jump and the appropriate page number.

Another thing that is still missing is better handling of fonts within the style sheet. There’s two things that need to happen here:

  1. Letting the user define a list of fonts, ending in the fall-back generic font, or no fonts at all.
  2. Letting the user choose whether a font should be embedded. This one is necessary because embedding is something that is part of a font license, and there needs to be a way to inform the user of that without freaking them out. Also need to figure out how embedding fonts looks like in ACBF.


Outside of that, I got proficient enough with regexp to have simple genre match working. The idea of genre match is that you try to indicate whether something is primarily horror, or primarily romance. I implemented it with brackets, so something like…

Romance(80), Science Fiction(20)

will have Romance set to 80% and Science Fiction to 20%.

Of course,

Romance (150), Horror(50)

Will normalize the values and have Romance set to 75% and Horror to 25%.

the final thing is that when you export to CBZ, a standalone ACBF file will be automatically generated next to it. Standalone files have the file type embedded as base64 strings, which wasn’t too difficult to do, though right now they are always stored as pngs as base64 strings. I also switched to use QDomDocument to write the files as python’s Elementree has no pretty printing(which is important because it makes the ACBF file less intimidating to edit afterwards with a given plain text editor), and minidom has a weird thing going on where it adds extra white space into textnodes, which is weird and unuseful(because the ACBF viewer interprets this white space too. The spec for that matter doesn’t say anything about how to treat whitespace).

Of course, while I have been going crazy with the exporter, other people have gone in and gone crazy elsewhere.

RagnarB, the author of the Gimp Book python plugin, has spent some time fixing little niggles left and right, but mostly spent some time on improving the page viewer.

comics_manager_acbf_06_page_viewerMy perpetual test comic in the page viewer. The buttons get flipped when the reading direction is configured as opposite. As the page viewer uses the KRA files’ mergedimage.png, it doesn’t delete sketch layers nor crops and resizes the image like the exporter does.

The page viewer originally only showed the current page, but after his work it can flip through all pages of the comic in the correct order, and it can be run from the commandline, using the as the basis, which is pretty cool. It will hopefully get merged soon.

March 08, 2018

We had to revise our release plans because of a feature that many users have asked for and that took more time than estimated – the import of © OriginLab Origin projects. Since this feature is quite important and since we had some implementation for it already available in the code, we decided to finalize this development and to include this feature in the next release of LabPlot.

Support for foreign proprietary formats is always notoriously incomplete because of different versions to support, the lack of documentations, the variety of features that need to be mapped from the source to the target application, missing features, etc.
So, it will be hard to impossible to “finalize” such a feature but we plan to release something that is usable. In the first release having this feature we’ll first concentrate on the import of Origin’s data containers – workbooks and matrix books and 2D-plots. LabPlot heavily benefits here from the work done in liborigin and SciDAVIs projects and also the current development in this area is being performed in collaboration with liborigin and SciDAVis’ developers.

A new dialog for project import was added. Upon selection of a supported file, there is a preview of the project. The user selects the source objects to be imported (multiple selection is allowed) and also provides the target folder where the selected objects have to be imported into.

Import Project Dialog

Folder structures of arbitrary complexity for both sides – source and target projects – are supported. The import is implemented in an undo/redo-able way and it is possible to perform several imports from the same project file whereas the user is warned if objects are already existing in the target folder.

Internally, during the import we create a temporary LabPlot project where we try to map Origin’s entities onto LabPlot’s native structures. We traverse the project tree and import (move) the selected parts of it into the target project currently being opened in LabPlot. The code for this is quite general and flexible and almost automatically provides another nice feature – the import of LabPlot projects. With this it becomes for example possible to merge two or more LabPlot projects or parts of them.

Given the nature of the internal implementation, we support the import of all objects in LabPlot projects. Also, the dependency checks during the import are in place. E.g., if the user selects a worksheet having different plots and curves, which on the other hand consume the data coming from some spreadsheets in the project, the required spreadsheets are automatically selected and imported too. The following video demonstrates the import of such a worksheet together with the corresponding data containers (spreadsheets):

Flashback time! At last year’s foss-north we had a great talk by Jeff Campbell from Scrum Beers and Brewing Agile. He spoke about actionable agile tools – i.e. how to improve the way your agile team works. You can see the recording right here (you might have to click the link if your aggregator hides YouTube contents).

foss-north strives to gather the best speakers, the best audience at the best location (Gothenburg) for one day each year. This year the event takes place on April 23 – get your tickets here!

It is just 3 more days left of the Call for Papers. With the help of our great sponsors we have the opportunity to transport you to our conference if you are selected to speak. Make sure to make your submission before March 11 and you are in the race.

March 07, 2018

Flashback time! At last year’s foss-north we had a great talk by the Zifra team. They spoke about their encryption solution, enabling journalists and other people having to handle sensitive data to make their digital information inaccessible while in an exposed location. You can see the recording right here (you might have to click the link if your aggregator hides YouTube contents).

foss-north strives to gather the best speakers, the best audience at the best location (Gothenburg) for one day each year. This year the event takes place on April 23 – get your tickets here!

It is just 4 more days left of the Call for Papers. With the help of our great sponsors we have the opportunity to transport you to our conference if you are selected to speak. Make sure to make your submission before March 11 and you are in the race.

Older blog entries



Planet KDE is made from the blogs of KDE's contributors. The opinions it contains are those of the contributor. This site is powered by Rawdog and Rawdog RSS. Feed readers can read Planet KDE with RSS, FOAF or OPML.