February 25, 2020

Tal y como estaba previsto en el calendario de lanzamiento de los desarrolladores, hoy martes 18 de febrero la Comunidad KDE ha comunicado que ha sido lanzada la segunda actualización de Plasma 5.18. Una noticia que aunque es esperada y previsible es la demostración palpable del alto grado de implicación de la Comunidad en la mejora continua de este gran entorno de escritorio de Software Libre.

Lanzada la segunda actualización de Plasma 5.18

No existe Software creado por la humanidad que no contenga errores. Es un hecho incontestable y cuya única solución son las actualizaciones. Es por ello que en el ciclo de desarrollo del software creado por la Comunidad KDE se incluye siempre las fechas de las actualizaciones.

Lanzada la segunda actualización de Plasma 5.18

De esta forma, el martes 25 de febrero se lanzó la primera actualización de Plasma 5.18, la cual solo trae (que no es poco) soluciones a los bugs encontrados en esta semana de vida del escritorio y mejoras en las traducciones.Es por tanto, una actualización 100% recomendable.

Las novedades básicas de Plasma 5.18

Ya he hablado en varios artículos la lista de novedades, pero he aquí un breve resumen de las mismas.

  • Nuevo selector de Emojis.
  • Nuevo modo de edición global que sustituye el botón del cuadro de herramientas de escritorio y le permite personalizar fácilmente la disposición del escritorio.
  •  Mejorado el uso del lanzador de aplicaciones Kickoff y de la edición de los widgets en dispositivos táctitles.
  • Mejoras en las aplicaciones que utilicen las librerías visuales GTK.
  • Múltiples mejoras en las notificaciones como la información del nivel de energía en dispositivos bluetooth vinculados.
  • Posibilidad de activar una opción de comentarios de usuario (deshabilitado por omisión), que permite dar información detallada del sistema y estadísticas de la frecuencia con la que utilice las funcionalidades individuales del Plasma.
  • Añadido un control deslizante para la velocidad de animación global.
  • Diversas mejoras en Discover como la adición de comentarios anidados para los  complementos.

Más información: KDE

  • Kube got a basic but functional todo view.
  • HiDPI support. After a bit of massaging, Kube now scales correctly on HiDPI displays, so we no longer end up with tiny icons everywhere.
  • Fixed HTML view resizing. Resizing the WebengineView to fit the contents has been a constant source of problems and continues to break every now and then.
  • Improved keyboard navigation that allows for switching between views.
  • Improved IMAP sync which fixes a couple of corner cases and improves performance as well as responsiveness while a sync is executed.
  • Fixed free-page accumulation in lmdb database, which results in ~10x smaller db files.
  • Experimented with zstd compression for things like mime messages, which reduced the database size, but doesn’t seem to affect performance much.
  • The account password is now protected using your gpg key as well, so if there is a gpg-key set up, you will only have to unlock your keyring to unlock
    kube. This effectively turns the gpg-keyring into your Kube keyring as well (assuming you have a gpg-key for every account).
  • Implemented fulltext indexing of encrypted emails as well as basic support for protected headers. Read more
  • Shaved off another 2000 SLOC from the messageparser library as I moved it over to sink for encrypted email indexing.

The todo view

The todo view’s goal is to have a small personal list of todos, acknowledging that you can only accomplish so much during a day, and there is no intention of turning this into a project management suite down the road.

The idea is that you have a couple of lists as backlogs, and that you then pick a reasonable amount of items (<10 probably?) from those lists as currently in progress (that’s also how it’s stored in iCal). This then gives you a nice little list of things during the day/week/whatever suits you, that you can tick off.

New items can quickly be entered using keyboard shortcuts (press “?”) and that’s about it for the time being.

I think sub-todos might find their way eventually in there, but the rest should rather be quality of life improvements and eventually taking other sources of “things you need to act on” into account, such as emails that you should probably be answering or events that need to be prepared.

The todo view was the last officially missing piece, so with that we are view-complete (feature complete may be a bit a stretch still).

The keyring

Having to enter your account password for every account whenever you start Kube doesn’t make for a great user-experience, so this was fairly high on the nuisance list.

Naturally the first thought was that we would just use your platform’s keyring, but regrettably there still isn’t a solution that works on multiple platforms (not even on Linux, libsecret was never implemented for KDE),
so that results in a lot of effort for implementation and maintenance.

Fortunately, there is an alternative.

We already rely on GPG for end-to-end encryption, so why not use your GPG-key to also secure your account related secrets?

We already had an experimental feature that stores the account password encrypted using the key as a POC, so the next was to build this into the core and improve the experience somewhat.

The result is that you will no longer have to enter any account passwords after the initial entry, but will instead be prompted to unlock your GPG-keyring (if not already unlocked), and just like that we’ll gain a keyring and sidestep the keyring mess. With gpg-agent we can at least reuse something that we rely on anyways, and that we have available on all supported platforms.

The one fly in the ointment is that we currently have to start a gpg-agent inside the flatpak, so we can’t reuse an already unlocked keyring on the system.

Kube Commits, Sink Commits

Previous updates

More information on the Kolab Now blog!

“Kube is a modern communication and collaboration client built with QtQuick on top of a high performance, low resource usage core. It provides online and offline access to all your mail, contacts, calendars, notes, todo’s and more. With a strong focus on usability, the team works with designers and UX experts from the ground up, to build a product that is not only visually appealing but also a joy to use.” For more info, head over to: kube-project.com

Yeah, I’m back! =D

Now I have updated the Atelier plasmoid to use our beloved profiles setup. Profiles on Atelier are shared by any interface that uses AtCore Machine Info to lookup for each profile that you have saved of your machines.

The quick print is now really quick: Select profile -> Connect -> Select File -> Print.


Check the code and install it on your Plasma Desktop now! =D


* Thanks to Kai Uwe that helped to fix a bug! =D

That’s all folks!

By Niccolo Venerandi

On the 20th of February, our first video contest finished and winners were decided by a panel of judges.

This was the first time we run a video contest and we were really excited to see how much the community got involved, the quality of the videos and the onboarding effect that this contest would have.

All the submitted videos show great effort on behalf of the creators and it was extremely difficult to select the winner -- at one point there was even a tie! But, at last, we were able to select a winner and finalists for each category.

Without further ado, let's dive into the results:

Plasma Video Contest

The winner of the Plasma contest is Skye Fentras with their video "Plasma 2020". Congratulations! Skye will get a fantastic TUXEDO gaming PC, featuring a powerful Intel core i7, 16GB of RAM, 250GB NVMe SSD, 2TB HDD and an Nvidia GTX1050Ti video card.

Check out Skye's video below:

Skye Fentras: "Plasma 2020"

The three finalists for the Plasma category are:

  • KonqiDragon with his video "Plasma 5.18 Promo"
  • Nayam Amarshe with "This is Plasma"
  • Kubee for "This is Plasma"

All finalists will receive a package with a KDE baseball cap, a plush Tux, and more.

See their videos below:

KonqiDragon: "Plasma 5.18 Promo

Nayam Amarshe: "This is Plasma"

Kubee: "This is Plasma"

Apps Video Contest

The second category of this contest was for videos showcasing KDE applications. The winner of this category is KonqiDragon, with their stunning "KDE applications Promo" video. KonqiDragon wins a TUXEDO InfinityBox, featuring an Intel core i3, 16GB of RAM and 250GB of SSD.

See the winning video below:

KonqiDragon: "KDE Applications Promo"

The two finalists for this category are:

  • Katia with "Dolphin File Manager" and "Meet KDE Applications"
  • Tauheedelahee with "KDE Plasma Applications Promotional Video"

Again, they will both receive a package with a KDE baseball cap, a plush Tux, and more.

See their videos here:

Katia: "Dolphin File Manager"

Katia: "Meet KDE Applications"

Tauheedelahee: "KDE Plasma Applications Promotional Video"

We'd like to thank TUXEDO Computers for helping make all this happen. TUXEDO Computers have been incredibly generous providing prizes to both winners and finalists of the contest. We would also like to thank all participants and invite you all to carry on making videos promoting KDE!

February 24, 2020

When most of your email traffic is encrypted there are two things that really start to become a problem:

  • You can’t search for encrypted emails
  • If the sender is using a client that supports encrypted headers, such as thunderbird, your emails will be completely unrecognisable because the subject no longer contains anything useful.

To fix this we’re going to start decrypting encrypted emails when syncing and indexing the encrypted content. That way we can make sure encrypted emails are just as usable as non-encrypted emails, at least as long as you’re using Kube.

This means that in the future you will not only be able to search through all your email, it also means you get a more useful subject displayed than “…” or some other nonsense.

Who doesn’t love a conversation list full of descriptive subjects like “…”

This is of course a trade-off in terms of security; you will have at least parts of your encrypted email in decrypted form on your disk, and so an attacker that has access to your system will have access to the encrypted contents in plain text. However, it’s a reasonable trade-off as an attacker that has access to your system, which contains your private GPG key as well, will have have good chances of obtaining what he looks for anyway. It’s also a necessary trade-off to make encrypted communication usable enough so it can be used across the board.

Of course we could attempt to protect the index, but this is best left to the same tools that protect the rest of your system, such as full-disk encryption.

“Kube is a modern communication and collaboration client built with QtQuick on top of a high performance, low resource usage core. It provides online and offline access to all your mail, contacts, calendars, notes, todo’s and more. With a strong focus on usability, the team works with designers and UX experts from the ground up, to build a product that is not only visually appealing but also a joy to use.” For more info, head over to: kube-project.com

Como era de esperar, y un año más,  KDE participará en Google Summer of Code 2020 (GSoC). Esto siginifica que el proyecto de Google que potencia la interacción entre estudiantes y Software Libre en aras de un beneficio mutuo. A lo largo de muchos años, esta simbiosis entre la Comunidad KDE y el gigante multicolor ha sido muy provechosa para ambos, como hemos visto en muchas ocasiones en el blog, esperemos que éste también lo sea.

KDE participará en Google Summer of Code 2020

El equipo de KDE es uno de las Comunidades que siempre intentan colaborador con los proyectos sobre Software Libre que suele organizar cualquier compañía, y Google no es ninguna excepción.
KDE participará en Google Summer of Code 2016

De esta forma, un nuevo año la Comunidad KDE vuelve a estar seleccionada para participar en el GsoC aportando mentores e ideas para que los estudiantes practiquen programación en proyectos reales, ganen experiencia y algo de dinero.

Si estás interesado en participar KDE te ofrece su guía de inicio así como nos invita a colaborar en la lluvia de ideas de este año.KDE participará en Google Summer of Code 2020

Y si no podéis, no estaría de más promocionar esta participación. Os dejo todos los enlaces que KDE Promo ha elaborado para este anuncio.


¿Qué es GSoC?

Vía Somos Libres he encontrado esta magnífica descripción del programa GSoC:

Google Summer of Code (GSoC) es un evento organizado por Google, cuyo objetivo es hacer participar a varios estudiantes en el desarrollo de determinados proyectos Open Source elegidos por Google. Cada grupo debe cumplir con una lista de tareas específicas que deben realizar y elegidas por el representante del proyecto, también conocido como mentor.

Los objetivos del GSoC son:

  • Crear y liberar código Open Source para el beneficio de todos.
  • Inspirar a los jóvenes desarrolladores a participar en el desarrollo de aplicaciones Open Source.
  • Ayudar a los proyectos Open Source a identificar a nuevos y posibles desarrolladores.
  • Dar a los estudiantes la oportunidad de trabajar en algo relacionado a sus estudios. Dar a los estudiantes una mayor exposición a situaciones del mundo real de desarrollo de software.

En definitiva, una excelente iniciativa que beneficia a todo el mundo.

Akademy 2019 group photo

Past September the Italian city of Milan hosted the KDE contributors meeting called Akademy, the main KDE conference where contributors from different areas like translators, developers, artists, promoters and more stay together for some days thinking and building the future of KDE projects and community(ies).

Firstly before Akademy I departed from Brazil to Portugal to attendee an artificial intelligence conference in Vila Real, the EPIA conference. After that, I flew from Porto to Milan and started my days in Akademy 2019.

Unfortunately I arrived only in the end of the first morning, so I lost interesting presentations like Qt 6 and KDE’ Goals. But at the afternoon I could to watch the presentations of Plasma for mobile, MyCroft on automotive industry, the KDE e.V. report and the students showcase – nice to see interesting projects developed by the newcomers.

The second day I liked the presentations about KPublicTransportat, LibreOffice on Plasma, Get Hot New Stuffs – maybe I will use this framework in a project of my work –  and the Caio’s presentation about kpmcore.

After the social party (wow, that was a party), next days were full of BoFs, for me the most interesting part of Akademy.

The Gitlab workshop was interesting because we could to discuss some specific stuffs of KDE migration to that tool. I liked KDE move to Gitlab and I expect all our projects can do this migration ASAP. Cantor is there for some time now.

In the KDE websites BoF I could understand a bit more about the new Jekyll theme for our sites. I expect we will have a internationalization approach soon. After attendee this event, I created a new website for Cantor during LaKademy 2019.

The KDE Craft BoF was interesting to see how to build and distribute our software to Windows. I expect to work in this topic during this year and provide a Cantor package in Windows Store.

I attended the QML and Kirigami workshop organized by Maui project. Nice way to learn how to use Kirigami for future projects.

Lastly, I attended the “All About the Apps Kick Off” BoF. For me, this is the future of KDE: a international community of free software producing high-quality, secure and open source software to several platforms, from desktop to mobile. In fact this is how KDE is organized and works right now, but we don’t communicate it properly for the public. Maybe with the changes in our release approach, the websites for specific projects, and the distribution in different application stores can change how the public see our community.

The day trip was in Lake Como, in the city of Varenna. That trip was wonderful, I was every time thinking about spend my honeymoon in that city. I expect to back there in the future, and spend some days tripping across the cities like that.

Me in Varenna

I would like to thank you all the local team, Riccardo and his friends, for organize this incredible edition of Akademy. Milan is a very beautiful city, with nice food, historical spots to visit and discovery more about the Italians.

Finally, my gratitude to KDE e.V. for sponsor my attendance in Akademy.

In this link you can see videos of Akademy 2019 presentations and BoFs.

KD SOAP is a tool for creating client applications for web services.

The release of 1.9.0 brings a fair number of improvements and fixes, as the following text describes.


  • C++11 is now required. Qt4 is still supported, but this is the last release with support for Qt4. rpath for Unix/Linux/macOS (#181) is now fixed.
  • cmake usage is improved by setting the install interface directories on the library targets (#196). You can just link to KDSoap::kdsoap and you’ll get the correct include paths now.
  • Conan has a new installing file (WIP – see conan folder).


  • Support for selecting WS-Addressing namespace for send messages (#176) has been added
  • WS-Addressing spec compliance (#193) is fixed
  • Support for implementing SOAP-over-UDP clients (see KDSoapUdpClient) is fixed.


WSDL parser / code generator changes, applying to both client and server side:

  • An override indicator to generated files has been added. This requires C++11 for users of generated files.
  • An option for loading PKCS12 certificates (#190) has been added.
  • All special handling of soap/encoding namespace is removed, which fixes the use of soapenc:string and soapenc:integer for instance (#179).
  • A compilation error due to missing QSharedPointer include in generated code (#170) is now fixed.


  • The holidays examples have been replaced with bank-lookup examples. Less fun, but the holidays web service no longer exists…

Download KDSoap

KDSoap on Github

KDABSoap Releases

About KDAB

If you like this blog and want to read similar articles, consider subscribing via our RSS feed.

Subscribe to KDAB TV for similar informative short video content.

KDAB provides market leading software consulting and development services and training in Qt, C++ and 3D/OpenGL. Contact us.

The post KDSoap 1.9.0 released appeared first on KDAB.

Sup beloved readers!

I’m kinda sick this week as well, but this time it’s not so bad as to hinder me from writing this post. Moreover, this post is way more simple, straightforward and less tiring to write.

This is a series of blog posts explaining different ways to contribute to KDE in an easy-to-digest manner. This series is supposed to run parallel to my keyboard shortcuts analysis so that there can be content being published (hopefully) every week.

The purpose of this series originated from how I feel about asking users to contribute back to KDE. I firmly believe that showing users how contributing is easier than they think is more effective than simply calling them out and directing them to the correct resources; especially if, like me, said user suffers from anxiety or does not believe they are up to the task, in spite of their desire to help back.

Last time I explained the whole process of contributing with Localization to KDE. I’ve also posted a little article I made some time ago on how to create a live-test environment to translate Scribus more easily, given that Scribus might become a KDE application in the future. It’s a major decision for a project to do, so please respect the project’s choices regardless of the outcome, yes? It’s currently one of the main projects I work on, and I’ll continue to work on it regardless of such a decision anyways, especially now that I’ve become a language coordinator for Brazilian Portuguese for Scribus (yay!).

By the way, if you’d like to contribute to the Scribus project with translations, you can contact them over #scribus on IRC (Freenode). If you’re interested in helping with its Brazilian Portuguese translation, you may contact me directly through Telegram, I’m usually in the KDE Brazilian Portuguese Localization group; this way you’ll also get in contact with the localization team. In addition, you may also directly apply to join the team over Transifex.

Today’s post will essentially describe how quick and easy it is to work with localization for KDE software. My latest post might have sounded intimidating or people might have gotten tired from reading it in the middle, which is a shame; hence the reason for this post.

Oh, existing translators should also have a reason to read this post, as I’ll be showing brand new functionality in Lokalize too.

As a brief note, I’m currently using openSUSE Krypton with Plasma from master, meaning it’s as updated as possible. I’m also using the XWayland session, because it’s dope af. It doesn’t affect my workflow at all, either.

But well, let’s keep it short and begin.


Let’s first go to our localization folder. For those who didn’t read my previous post, it’s the folder containing the stable and trunk branches with strings to translate. You can find them through here:

In the case of Brazilian Portuguese, we have a small script that sets everything up for you, regardless of whether you have developer rights or not.

Figure 1 – My main localization folder, with terminal about to execute script.

After executing the script and since I have developer rights, I can simply type my password and download everything I need, with all files perfectly set up in their right place. For those who don’t have such rights, it will just download everything for you without requesting a password.

It takes a while since there are a lot of files to download.

(For those interested, this essentially does the same as the following script:
svn co svn://anonsvn.kde.org/home/kde/trunk/l10n-kf5/pt_BR/
svn co svn://anonsvn.kde.org/home/kde/branches/stable/l10n-kf5/pt_BR/
Just replace the pt_BR with your respective language code.)

If you already have developer rights to upload your translations, you should follow your localization team’s instructions to set up your system. After all, by now you should already have contacted them, since you need the approval of an experienced translator to request such rights. This post is to be succinct, and as such I’ll not explain the full procedure here.

Another way we can download everything and keep stuff up-to-date is by using kdesvn, and it’s my preferred method when I just want to translate one file. You can install it from your repository. I love this tool. Take a look on this functionality that is provided by kdesvn:

Figure 2 – Install kdesvn and get two new options in your context menu: Atualizar = Update, Enviar = Send.

Once you get to the folder containing the files you’d like to update, you can simply right-click the folder and select Update (kdesvn). This will update everything for you. The new dialog that appears should look similar to this:

Figure 3 – Update complete.

After that, just open the file you’re gonna work with. In my case, I’ll be using Lokalize to translate www_www.po, the file containing the strings for all KDE announcements.


And now, to work. If you’re acquainted with Computer Assisted Translation (CAT) tools, you’ll handle Lokalize just fine. Left pane shows the strings (or segments) to translate, the upper right pane shows the source text, the one immediately below is the field to input the translated text, yadda yadda. Pretty simple.

Now, one feature to be released soon with Lokalize is the ability to search according to filenames. Let’s take a look:

Figure 4 – Filter per filename.

This is particularly useful with this exact file, www_www.po. Since each release announcement is written in a different file, it follows that searching for all strings present in a specific file should render all strings pertaining to a specific announcement, and so it is very easy to verify whether you’re missing any strings. Here, I’m searching for plasma-5.17, since I want to translate all missing strings for all Plasma 5.17 announcements, namely versions 5.17.0, 5.17.1, 5.17.2, 5.17.3, 5.17.4, 5.17.5 and 5.17.90. Notice how their links are written; all of them contain the string of text “plasma-5.17”.

This is vital because, currently, Plasma announcements require that 100% of the announcement be translated before they show up on the website.

Next I’ll show you a bit on my workflow.

Figure 5 – Needs review.

Another recently added feature is the ability to zoom on of either translation pane and have the other zoom at the same rate. It’s awesome! I do tend to prefer big things, usually the bigger the better, and this makes it easier for you to read too.

As mentioned in my previous post, one interesting feature of .po file localization (Gettext files) is the use of fuzzy strings. These are strings that are pending review by the translator, either because a previously approved string was changed or because it bears a very similar structure to another string.

As can be seen above, it’s the latter’s case; also notice how the translation pane has the same color as the source text. The only differences between this and a previous string are shown in the bottom left pane, Alternate Translations; that is, the presence of \n, which should be removed, and the fact it’s month instead of week.

Figure 6 – After translation.

We can see here an issue with the current translation. This string begins with “This release adds […]”, the previous one too, but I decided to use “inclui” instead of “adiciona” as a translation for “adds”.

Since I saw this inconsistency, I couldn’t ignore it! You shouldn’t ignore inconsistencies in translation either. I took note of it and, after having translated all the remaining segments for 5.17, I turned the filter back to default and searched for “This release adds”. Then I fixed all strings containing this inconsistency issue.

And, since I now had the same word repeated, namely the verb “incluir”, I changed its second occurrence to something expressing a similar idea.

Figure 7 –All strings fixed. Way to go for consistency’s sake!

Now, with all the strings I’m willing to work on for today fixed, and having translated all 5.17 strings, it’s time send my translations!

Don’t forget to save your changes, of course. 🙂

Sending your translation!

Now for the section I wanted to show you the most.

If you don’t have developer rights, you won’t be able to use kdesvn to send your translations. It’s quite easy regardless, though: just send the file you just edited to your localization team, and they’ll upload it in your stead, keeping the information that you are the one that authored the commit.

Just open kdesvn using the menu/launcher and either open the folder containing the file(s) you changed, or the main messages folder; it should show all folders in a list afterwards. If you’ve worked with kdesvn before, you can just use Open recent URL:

Figure 8 – Opening the folder containing the translated file.

It’s quite straightforward: kdesvn will identify that you have downloaded the files for translation, will recognize your ssh key and, with your password, it will be able to send the translations for you.

It’s quite the handy tool with a minimal and simple interface.

The next thing we see is this:

Figure 9 – Listing all changed files.

Again, this is quite straightforward. I chose to open the www folder directly. It shows an up arrow since there’s something there you can upload, namely the red file on the right. You can safely ignore most of the toolbar buttons. With the folder selected, we can click on the Send button (just above the mouse in the screenshot).

It renders this screen:

Figure 10 – The changelog dialog.

This is also quite the easy-to-use interface. The upper left pane, “Review affected items”, contains all files that have been changed and can be uploaded. In this case it’s just one, but were you to have dozens of files that you wish to upload with different commits, you can easily choose which files to upload.

The bottom pane, “Define a commit message”, lets you write your commit message, unsurprisingly. This is just a message that will describe the upload of the file. I usually write my commit messages with the structure “Updates to file.po for pt_BR”, but I sometimes forget how I wrote my previous commit messages, and thus the “Or use a previous one” come very useful. Aside from those three things, you can safely ignore the rest and press OK.

Figure 11 – Translated files uploaded! Hurray!

If you see a message saying “Revision #number was sent”, then you’re done!

If your upload fails, then it’s because you’ve missed something in your translation, perhaps you forgot to include a tag or you missed a plural. You just need to fix those issues and try again, and it should upload successfully.

That’s it!

No, really, that’s it. It wasn’t that complicated either; this post just seems longer than it really is because of the number of screenshots, really. And because I like to keep things a bit more verbose than your typical tutorial, I suppose.

To summarize, the general workflow for a translator with developer rights is as follows:

  • Go to folder with file to translate — 10 seconds;
  • Right-click and update your files — 2 seconds;
  • Wait for update to finish — 60~90 seconds;
  • Translate — varies, could take hours;
  • Open kdesvn — 2 seconds;
  • Send files — 30~50 seconds.

And all of that done through the GUI, with windows, dialogs and whatnot.

Here’s the commit referenced in this post.

For the last bit of this post, I’ll add a few links for those willing to learn more or contribute.

Interesting links include the Get Involved wiki page for general contributing and the Get Involved Translation wiki page for a brief explanation on where to get more information; you may find the mailing list for your language in the links available here under kde-i18n or kde-l10n; you may also contact the general i18n team on IRC; if you’re Brazilian or speak Brazilian Portuguese, we have a Telegram group for you, and you can also check out br.kde.org and the KDE-Brasil group; if you’d like to translate widgets instead, you might wanna have a look at store.kde.org and search for the github page for the widget; most things related to KDE localization can be found on the official page, for instance the Translation HOWTO, which is an even more comprehensive guide than this blog post; and this online tool allows you to search already translated strings in KDE software, serving as an interesting translation memory that should even help in other fields. Some localization teams might be more approachable if they have a dedicated website for your country, such as fr.kde.org for France or kde.ru for Russia. If you’d like more information about translation on Linux, you may also be interested in checking TranslateOnLinux or a specialized distribution focused on translation called tuxtrans, made by an Austrian professor at the University of Innsbrück. If you’d like to know about other professional CAT tools, you may want to check the Proz comparison tool; some of the tools displayed there also run on Linux, either natively, using Java (like OmegaT, an open-source CAT tool) or through the browser.

February 23, 2020

Este domingo aparentemente tranquilo es ideal para dedicar un poco de nuestro tiempo a un evento muy querido por los desarrolladores del Software Libre. Y es que hace poco se anunció en el dot (página de noticias oficial de KDE) que ya estaban disponibles los vídeos de la Comunidad KDE de Fosdem 2020, una buena oportunidad de conocer de primera mano la aportación kdeera al evento.

Vídeos de la Comunidad KDE de Fosdem 2020

Como es habitual, la Comunidad KDE estuvo en Fosdem, un hecho que suelo comentar en el blog. Este año no ha sido ninguna excepción, y además del típico stand, tres desarrolladores tuvieron la oportunidad de realizar una charla.

Y, como es habitual en eventos de este tipo, las ponencias fueron grabadas y, por tanto, pueden ser compartidas.

Siendo específicos las charlas fueron:

  • Rendering QML to make videos in Kdenlive a cargo de Akhil Gangadharan Kurungadathil en la que pudo ver las posibilidades de QML en la creación de vídeos.
  • KDE on FreeBSD de la mano de Adriaan de Groot, donde se analiza del escritorio Plasma y las aplicaciones de la Comunidad KDEen FreeBSD.
  • KDE Itinerary con Volker Krause, donde se presenta el gestor de viajes privado.

Para ver los vídeos os recomiendo leer el artículo del dot (es decir, KDE News) realizado por Jonathan Riddell.

¿Qué es Fosdem?

KDE estará presente en FOSDEMPara aquellos que no lo sepan, FOSDEM (del inglés Free and Open source Software Developers’ European Meeting) es un evento anual de dos días que reúne a la comunidad del Software Libre) y que se celebra desde 2001, con cada vez más participantes, charlas y talleres. Se podría decir que aglutina los proyectos de Software Libre más importantes de la escena actual.

En esta ocasión el evento se celebraró el 2 y el 3 de febrero en el ULB Campus Solbosch y se congregaron miles de programadores, diseñadores, mantenedores y jefes de los equipos de los proyecto más  importantes del panorama actual del Software Libre.



At this point we’ve got nearly all of the significant regressions from Plasma 5.18 fixed (so go file bugs if you have any new ones) and we’re starting to re-focus on fixing longstanding issues and land work for Plasma 5.19. Hopefully you’ll find something in this week’s update to feel excited about! 🙂

New Features

Bugfixes & Performance Improvements

User Interface Improvements

How You Can Help

In Plasma 5.19, we really want to make a push on our Breeze Theme Evolution work. It’s proceeding, but would go faster with your help! There are tons and tons of mockups in the linked task and its child tasks, and what we really need at this point is people willing to help implement them. QML skills are helpful, and C++ is also useful for the needed work on the Breeze theme itself. If this sounds interesting to you, don’t be shy, step right up!

More generally, have a look at https://community.kde.org/Get_Involved and find out more ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

February 22, 2020

For historical reasons, I run a bunch of IT infrastructure at home. Mindful of sayings like the cloud is just other people's computers I’ve installed jails on my home FreeBSD NAS / server / router to deliver a bunch of services. Mail, for instance, and an LDAP server to experiment with, and something for package building.

From the road, I always used a fantastically convoluted SSH setup. A dozen tunnels were set up, so I could SSH from my laptop to my router. This has one downside, that DNS is screwed up. Inside my house, imap.localdomain is, while outside my house, it’s down the rabbit (SSH) hole at localhost:10193. I sort-of had KMail convinced of this, but changing laptops recently meant re-creating that whole setup and I failed at that.

In the end I decided that the SSH-tunneling aspect was just not tenable long-term. I needed something to connect more generally into my home network from afar. Last summer I made good use of Private Internet Access VPNs, which at least introduced me to the VPN and OpenVPN world. I ran into Kifar Unix which has a tutorial written pretty much for my exact scenario:

  • FreeBSD 12 server at home acting as the OpenVPN server
  • a single laptop to connect to it
  • a static IP and a friendly ISP (XS4ALL, although their culture is also changing now they have a large corporate parent)

I now have security/easy-rsa installed on a machine acting as certificate authority, which has spit out certificates for all my in-house services like imap.localdomain. In-house, I can check that all the services are on TLS.

The tutorial from Kifara got me through the rest. I needed to change some specific IP addresses, and punch UDP 1194 through the FTTH modem, and I wrote out some absolute pathnames, but it was remarkably painless. In fact, the biggest headaches came from all the places where I still had SSH-tunneling or /etc/hosts hacks lying around.

(or: “How to do your project a disservice by calling it names”)

For a change, this blog post isn’t about notifications but don’t worry: there’s enough thrilling stuff to come in this area soon. Anyway, during Akademy 2019 in Milan I began adding KDE Itinerary capabilities to my pet project Plasma Browser Integration. The idea was to provide at a glance information about the subject of a website the user is currently viewing. It’s been a while since I worked on it but that of course just means that I’ve been busy doing other awesome things. ;)

A browser window with akademy.kde.org/2019 website shown and a browser extension popup ontop of it with information about the event the website is showingPlasma Browser Integration showing details about last year’s Akademy, extracted from our website

Supported workflows for example include visiting a restaurant website where dropping them a call to ask for a table should be no more than two clicks away, or when surfing a trade show website, adding the dates to your calendar should be straightforward. If you want to read more about how the data gathering and processing in the background works, check out my previous blog post on the subject.

If you want to give it a try, install a recent kitinerary library (something along the lines of libkpimitinerary5), check out the itinerary branch of the plasma-browser-integration repository and follow the “How to install” instructions from source code on its wiki page. Once up and running, visit your favorite event, restaurant, and hotel sites and see if they have any structured data we can process! If you click “Inspect Element” in the popup’s context menu, the developer console will have some basic debugging information on the extractor.

Cleaning up the interface

Last week I finally cleaned up the UI code by introducing an HTML templating engine. I decided to use EJS for the purpose since I can relatively easily ship a pre-compiled version of the template, and it allows arbitrary JavaScript code for structuring. However, if you have a favorite templating engine I should check out, please let me know.

The most practical addition are contextual inline actions in the popup. For instance, whenever there’s a location – be it a venue address or departure/arrival airport – there’s now a little button that lets you send said location to your phone via KDE Connect. Alternatively, you could also open it in a mapping application, such as Marble or in any other application registered as “geo” URL handler. By the way, with Plasma Browser Integration you can already right-click any link on a website to send it to your phone!

A popup showing information about a flight (departure and arrival airports and dates) with a mapping application showing a map of the destination airportViewing OpenStreetMap in Marble to see where we’re headed

Additionally, you can have it just add the entire event or trip to the KDE Itinerary app on your computer or to the one on your phone. It can also convert it into an iCal file for adding it to your calendar. Should you have the kitinerary-workbench development tool installed, a button lets you inspect the structured data with it.

While KDE Itinerary’s raison d’être is for it to be a travel assistant, I believe in the context of a web browser a more common use case is trying to get information about places and events. More so, as I have yet to come across an airline or train operator website where my trip reservation shown on the website was annotated with the structured data we need. I sure can extract boarding passes and train reservation from the browser’s PDF viewer but I think that’s not very helpful when you got your ticket via email already.

Enter Itinerary Travelbird

Speaking of emails, I’ve been experimenting with Thunderbird’s extension API to come up with a solution similar to what KMail offers for booking emails. The inevitable migration of Thunderbird towards MailExtensions API is surely a big break for existing Add-ons, however for someone without a record it made development much more accessible. I could take Plasma Browser Integration’s host process virtually as-is and already had a working Thunderbird add-on talking to an external process.

A Thunderbird email window showing an airline boarding pass email with additional information about the trip (departure and arrival airports and times) added by KDE ItineraryThunderbird showing trip information extracted from the email powered by KDE Itinerary

Dealing with the XUL UI stuff was quite a chore, still, and currently the new APIs are very limited. Originally, I planned this project as “Plasma Thunderbird Integration” including KRunner plug-ins for searching your Thunderbird contacts and emails. Unfortunately, there currently isn’t even API to just open an email in a new window – without going the old XUL way, that is – making this idea not very feasible right now. At least getting raw email data is possible from Thunderbird 72 onward, which is why I then focused solely on KDE Itinerary integration.

That said, during FOSDEM Volker Krause (check out his talk btw) overheard that Thunderbird’s future roadmap seemed to include travel assistance features. Given our expertise on this topic, and the fact that Nextcloud Hub already uses KDE Itinerary externally, we believe Thunderbird could benefit greatly from it as well.

If you’re curious, you can find the code on KDE’s GitLab instance https://invent.kde.org/broulik/itinerary-travelbird/. You build and run it pretty much like you would Plasma Browser Integration in Firefox, see the wiki for instructions. It’s very early and crude, though, so apart from showing basic trip information, there’s not much else to see. Further, since there’s the chance of Thunderbird potentially having something like this built-in, I’ll put this project on hold for now.

February 21, 2020

In September, I made a mistake… We needed new laptops for Dmitry and Agata, and after much deliberation, we decided upon Lenovo Yoga C940’s. These are very cool devices, with HDR screens, nice keyboard, built-in pen, two-in-one convertible — everything in short for the discerning Krita hacker.

I accidentally ordered the S940 instead — two of them. These are very awful devices, without a pen, no touch-screen, don’t fold, don’t have HDR, don’t even have normal USB ports. Overpriced, under-powered — why the heck does Lenovo call these Ideapads yoga’s? I have no idea.

Well, no problem, I thought. I’ll just return them and ordered the C940 instead. The C940’s arrived in time for our BlenderCon sprintlet, and were all what one expected them to be. And I filled in Lenovo’s web form to return the S940’s.

That turned out to be a big problem. Here’s what happened:

  • I ordered them September 24th
  • They were delivered September 26th (nice and fast)
  • I filled in the return form on September 26th
  • Not having heard anything from Lenovo or TNT, I called customer support (by “Digital River”) and was promised I’d get a mail the same day with the forms needs to send the devices back; you cannot just send them back, you have to have the forms. There’s no other way to get to know the return address.
  • Not having heard anything back, I called them on October 21st. Same promises
  • Not having heard anything back, I called them on October 21st. I had to call twice, because as soon as she’d heard my name, the first customer support person closed the connection. I got promises of escalation to higher-ups
  • Not having heard anything back, I called them November 4th. I got the same person on the phone, who gave the same promise of escalation.
  • Not having heard anything back, I called them November 19th, and was promised that my money would be refunded immediately and they would figure out a way to get the laptops back.
  • Not having received my money, or heard anything back, I called them December 13th. They promised me they’d do something about it, but that I was very mistaken in supposing I should have had my money back, they hadn’t got the laptops, right? When I asked them for an address to send them to myself, I was told that was impossible, so sorry. I told them I would get legal advice if I didn’t hear from them.
  • Not having heard anything from Lenovo, I called my legal adviser, who called Lenovo to get an address out of them we could send a paper letter to. This is apparently impossible. My legal adviser told me he was shocked at how rude the Lenovo representative was.
  • I sent the required final demand letter by email in January…
  • And not having heard anything from Lenovo whatsoever, my legal adviser told me the only solution would be to sue…

Well, I’m not prepared to bother with that. I’ll take my loss, think black thoughts of Lenovo and find a use for the devices. In fact, I’ve handed one to Ivan who didn’t have a windows machine, and tried to setup the other as a test machine.

But Lenovo is really, really awful. These laptops come with something called Lenovo Vantage, which has only one reason for its existence: it can switch the media keys into proper function keys. That used to be in the bios, but no longer… For the rest it’s a marketing and spyware tool — like Windows 10 itself, of course. And then Lenovo Vantage was updated, this function is gone! People started complaining about that on the Lenovo forums, and as of writing, Google still found those posts, but Lenovo has deleted all of them.

I’ve bought Yoga’s, Thinkpads and even Ideapads in great numbers in the past twenty years… But I think it’s time to make a change.

February 20, 2020

Working on color imagery for QiTissue recently, I realized we were accidentally losing the alpha channel in multiple places. For efficiency reasons, we keep colors in memory using the QRgb type, and convert that to/from QString for serialization purposes via QColor as needed. Here’s what I discovered about why that doesn’t work, and some ways I fixed it.

Firstly, be aware there is no QRgba in the Qt API . There is only QRgb, for 8bit color channels. It can hold an alpha value too, despite the lack of a trailing a in the type name. Then there is QRgba64 which uses 16bit per color channel. For our purposes, 8bit per channel is sufficient. So where do we lose the alpha channel, when QRgb can store it in principle?

The first pitfall is QColor(QRgb), which calls QColor::fromRgb internally. Both of these functions silently ignore the alpha channel of the passed QRgb value and assume the color is fully opaque. To get around this, you have to use QColor::fromRgba instead.

QColor toColor(QRgb colorWithAlpha)
    // all bad: input alpha ignored, set to fully opaque
    return QColor(colorWithAlpha);
    return colorWithAlpha;
    return QColor::fromRgb(colorWithAlpha);
    // good:
    return QColor::fromRgba(colorWithAlpha);

Then you’ll find that QColor::name() also ignores the alpha channel. Here, you have to use QColor::name(QColor::HexArgb) instead.

QString toString(const QColor &colorWithAlpha)
    // bad: input alpha ignored, output is e.g. #112233
    return colorWithAlpha.name();
    // good: output is e.g. #00112233
    return colorWithAlpha.name(QColor::HexArgb);

Thankfully, the QColor constructors and QColor::setName function, which parse a string color name, won’t ignore the alpha channel when you pass an ‘#AARRGGBB’ string.

However, there is one more pitfall: When you have a QColorDialog with QColorDialog::ShowAlphaChannel, and listen to its currentColorChanged signal and set a color with an alpha channel on it, a stray change signal notification will be emitted with a fully opaque color. The reason is that, internally, the color dialog will first set the RGB color components, and then in a second step will set the alpha component. But both will trigger a change notification, where the first step holds a fully opaque color. This should be fixed upstream, but thankfully for now it is easy to workaround by ignoring the signal while setting a color from the outside.

About KDAB

If you like this blog and want to read similar articles, consider subscribing via our RSS feed.

Subscribe to KDAB TV for similar informative short video content.

KDAB provides market leading software consulting and development services and training in Qt, C++ and 3D/OpenGL. Contact us.

The post How not to lose the alpha channel appeared first on KDAB.

From January 31st to February 8th I went on a little tour, first at the two days of Fosdem in Brussels, then to Berlin for a KDE sprint about Plasma Mobile.

It was the first time i went to Fodem: it’s an awesome experience, even tough big and messy: which is the awesome of it… and the bad of it at the same time 🙂

Even tough there were 800 talks I didn’t attend that many, some about the Elixir language, some about retrocomputing, some about iot stuff. At Fosdem the best thing to do there.. is meeting a lot of interesting people, rather than attending talks, which are very interesting never the less, which you can find videos here.

I stayed most of the time at the KDE booth. in there we had as usual some hardware to show: besides the usual occasional “normal” laptops running Plasma, we had a PineBook pro running Plasma on Manjaro which runs impressively well for such a low resource machine and was in fact a favorite among the visitors.

Yep, there were a lot of people.

Besides that we had some Pinephones running Plasma Mobile, which they were very popular as well. The Plasma Mobile shell was very stable compared to last year fosdem which made me quite happy.

Looking people using it for the first time, was also a very precious feedback on what are the UI problems new users can encounter.

Feedback that turned out to be very useful the next week, when together other people working on Plasma Mobile and two perople from the UBports project few to Berlin for a Plasma Mobile sprint, graciously hosted by KDAB in their spaces.

There will be many points we will be able to collaborate with UBPorts, starting from background technology such as their telephony services, the content sharing infrastructure, and maybe push notifications. Tough in the end, we want their apps running smoothly on Plasma Mobile and our apps running smoothly on UBports as well, to have as many apps as possible.

Personally, the areas that i worked more at the sprint were the Plasma Mobile homescreen and fixes in Kirigami that were needed for some plasma mobile apps to look better.

On the Plasma Mobile homescreen, now dragging plasmoid thumbnails from the widget explorer to the homescreen works properly (fix in KWin, also drag and drop icons in your desktop wayland session should be fine now)

Plasma Mobile, Clean homescreen look

In order to make the homescreen look a bit more “modern” and less busy, I also removed most of the gray background rectangles that were there and in general simplified the homescreen code a bit, here is the result:

In general, it seems to me that Plasma Mobile is actually really start coming together 🙂

February 19, 2020

I've recently found some use for a first-generation Raspberry Pi (Pi 1 model B) which had been lying in a drawer since many years. A few days ago I've installed the Raspbian distribution in it, and was about to install motion on it, but I stopped as soon as I noticed that apt was suggesting to bring in 1 GB worth of dependencies. Adding --no-install-recommends reduced the proposal a bit, but it was still around 700 MB -- a bit too much for my taste. I figured out that the motion package for Debian (and Raspbian) depends on MySQL, PostgreSQL, FFmpeg and what not; so, I decided that I could probably just recompile it and disable all the stuff I didn't need at configure time.

But I didn't want to install all the build dependencies and the cross-compiler in my machine; containers exist for a reason, after all. So I had a look at the crossbuilder tool that we use in UBports: this is a nice little shell program that uses an Ubuntu-based LXD image to cross-compile a package after automatically fetching all its dependencies, and installs it into an UBports device. It does some magic with adb and stuff, but I thought that the basic functionality should work with minor modifications on any Debian-based distribution.

And indeed, some hours later, I got a branch where I can use crossbuilder to build packages for the Raspberry Pi. Assuming that you have LXD properly setup, the command

crossbuilder --raspbian source motion

will cause crossbuilder to create a container and download the Debian source package for motion; at this point you can modify the source code as you see fit, and rebuild it. I only changed the debian/rules file to add a few flags such as --without-mysql, --without-ffmpeg, etc. And

crossbuilder --raspbian

is the command to run in order to perform the build. This will first download all the dependencies (according to the debian/control file), build the package, and create a tar archive containing all the generated .deb files. This archive can then be copied into the target device and unpacked there.

Now, there's a small problem in that Raspbian claims to be armhf, while in fact its floating-point processor is somehow not compliant with the armhf architecture. So, you generally cannot use an armhf package from Debian or Ubuntu on the Raspberry Pi. Given that I didn't have the time to prepare a proper Raspbian image for LXD, I used the Debian distribution as a base instead, and I chose to target the armel architecture: this might impose some penalties on the performance (at least for floating-point code), but it seems to work fine on the Raspberry Pi. Unfortunately, this means that you cannot just install the generated packages o the Pi, as dpkg will complain about the architecture mismatch (your package is armel, while the distro claims to be armhf). But unpacking the debian package with

dpkg -x motion_<...>.deb tmp

will indeed give you package that you can use.

I will eventually get back to this and make the script work better with Raspbian, but this is a quick start.

So we recently held KDE India Conference 2020 in the college where I’m pursuing my B.Tech (CSE) in New Delhi. The conference was held from 17 January 2020 to 19 January 2020.

Photographs from the conference are available here: https://share.kde.org/s/tt6YWaDp36ni2si

Tweets from the conference used #cki2020 tag and are available conveniently through this link: https://twitter.com/search?q=%23cki2020

Day 1 of the conference talked about Open Source, and some of the cool KDE software that has eased many lives across the globe.

Day 2 of the conference talked about KDE software in general and bits about QML.

Day 3 of the conference talked about how specific KDE software and Qt Framework helps developers achieve amazing results with minimal hard-work and maximum smart-work.

Every day of the conference concluded with dinner at various good places in Delhi. We had Chicken Biryani, Butter Chicken, Indian version of pasta, and a bunch of other savories with our speakers while discussing random topics.

Biryani at Bikkgane Biryani, Connaught Place

Important Announcement

We have some KDE India hoodies up for sale. If you are interested, feel free to put a comment below and I will get back to you on how we can get the hoodie to you. You might also be able to get one from me at this year’s Akademy if you really want one of these. Hit me up! 🙂

The cost for 1 hoodie is INR 650/-, excluding any shipping costs. The hoodies were sponsored originally by the KDE e.V. (massive shout out to Adriaan de Groot for helping me out there). The money collected through the sales will be sent back to the KDE e.V. (the legal body that represents the KDE Community in all legal and financial matters) in form of a donation.

The hoodie design


The conference was able to educate 200+ unique attendees throughout the conference. For a free-entry based conference in Delhi, this was definitely a huge success. I had great fun in organizing the conference, and was really glad to see the huge turnout.

Day 1 :: 100+ attendees

Massive thanks to the volunteers for executing the conference in such a smooth manner. All of the volunteers were really helpful and responsible. I am grateful for having such a dedicated team of volunteers at conf.kde.in 2020.

Volunteers at conf.kde.in

Future Notes

For any future conf.kde.in iterations, I’d recommend to the organizers to collect a strong promotions and marketing team that can help promote the conference nicely. FB event, remote technical groups on IM platforms, mailing lists of technical communities, posts on social media are just some of the infinite ways that can be used to promote KDE India Conference. The really aware people are well versed with what KDE India Conference is, while those who don’t actually know a lot about Free Software in general are seldom unaware of the KDE India Conference.

The goal of KDE India Conference is not only to unite contributors and enthusiasts of the KDE Community across India, but also to encourage people new to software development that just want to work on real world software and learn valuable lessons about software development.

Thank you

Looking forward to the next iteration of conf.kde.in. Till, then, Happy Trails!

See you in 2021 ! \o/

SoK ended finally on 17th February 2020. I am happy to share that I have completed the project "Add multiple datasets to several activities" and passed the final evaluation!!!

KDE Project:

5 different tab bar UIs, 4 of which are KDE

We (as a UI shell project) see the limits of our territory as the window, when there is the assumption nowadays that MDI tabbed interfaces are where most significant user activity takes place. Yet interacting with different views/documents within those windows is not standardised, so the user has to remember which app they are using, then select the appropriate actions to:

  • recognise the current tab
  • switch tabs
  • move tabs in the current window or between windows
  • notice which tab is being switched to (different switcher UIs, not shown)
  • open/close tabs
  • be warned when closing a window with multiple tabs
  • use keyboard shortcuts to switch tabs
  • persist tabs between logins
  • share sets of tabs between devices

All this causes additional cognitive load/dissonance when using your computing device.

I'm not saying Plasma needs to become a tabbed window manager, but we can do better, and it is definitely time to declare war on the mess above.

We are pleased to announce that Plasma 5.18.1, is now available in our backports PPA for Kubuntu 19.10. This is the 1st bugfix release of the 5.18 LTS Plasma series.

The release announcement detailing the new features and improvements in Plasma 5.18 LTS can be found here.

To upgrade:

Add the following repository to your software sources list:


or if it is already added, the updates should become available via your preferred update method.

The PPA can be added manually in the Konsole terminal with the command:

sudo add-apt-repository ppa:kubuntu-ppa/backports

and packages then updated with

sudo apt update
sudo apt full-upgrade


Please note that more bugfix releases are scheduled by KDE for Plasma 5.18, so while we feel these backports will be beneficial to enthusiastic adopters, users wanting to use a Plasma release with more rounds of stabilisation/bugfixes ‘baked in’ may find it advisable to stay with Plasma 5.16 as included in the original 19.10 (Eoan) release.

The Kubuntu Backports PPA for 19.10 also currently contains newer versions of KDE Frameworks, Applications, and other KDE software.

Issues with Plasma itself can be reported on the KDE bugtracker [1]. In the case of packaging or other issues, please provide feedback on our mailing list [2], IRC [3], and/or file a bug against our PPA packages [4].

1. KDE bugtracker: https://bugs.kde.org
2. Kubuntu-devel mailing list: https://lists.ubuntu.com/mailman/listinfo/kubuntu-devel
3. Kubuntu IRC channels: #kubuntu & #kubuntu-devel on irc.freenode.net
4. Kubuntu ppa bugs: https://bugs.launchpad.net/kubuntu-ppa

A new version of Calindori, the calendar application of Plasma Mobile, is now available. In Calindori 1.1, a set of new features has been added as well as the user interface has been improved, following the KDE human interface guidelines.

Event reminders

You can now add reminders to calendar events. To manage event reminders, a separate background application, calindac, has been created. Calindac looks for alarms into the Calindori ical files and triggers alarm notifications. The users may dismiss the alarm displayed or suspend it for a configurable amount of time.

Add reminder Add reminder

Repeating events

In Calindori 1.1, repeating events can be added. In particular, you can mark an event as repeating on the event editor. An overlay sheet enables you to provide the repeating event details. Then, on the events list view, you can review the repeating information of each event.

Add repeating event Add repeating event

Month view swipes

To facilitate navigation among months, the month shown can be switched via vertical gestures; but you can still change the active month using the buttons on the bottom of the page.

Flat events view

To get an overview of your events, a flat view of all the registered events has been added. The events have been sorted by start date, displaying the upcoming events on the top of the page.

All events page All events page

User interface improvements

The user interface of the event and todo cards has been modified, to make the information displayed more clear. In specific, helper icons have been added as well as page space, which is important on mobile devices, has been saved. Finally, Mathis Brüchert designed a new Calindori icon. Thanks Mathis!

Under the hood

Last but not least, the Calindori code has been streamlined, improving performance and maintenace. Nicolas Fella put a lot of effort into this task.

Installing Calindori

Calindori is available on KDE Neon for Plasma Mobile as well as on postmartketOS. You can also install the flatpak build on any Linux distribution. Finally, the nightly build of Calindori for Android can be found in the F-Droid instance of KDE.

Coming soon

Looking to the future, the most important piece to be added to Calindori is online calendar synchronization. The good news is that there is already work in progress on this.

Meanwhile, if you are interested in getting involved in Plasma Mobile, you can check the Find your way guide and join us on matrix.

February 18, 2020

Something that may have slipped you by: Back in November, the German Federal Office for Information Security approved Gpg4KDE and Gpg4win for the transmission and processing of national classified information.

Gpg4KDE is the encryption system that you use each time you encrypt and sign messages in KMail. Gpg4win, used for encrypting and signing emails on Windows, is built upon KDE's certificate manager Kleopatra. The German Government has now ranked both secure enough to be used when transmitting messages with VS-ONLY FOR SERVICE USE (VS-NfD), EU RESTRICTED and NATO RESTRICTED levels of confidentiality.

In view of the recent Rubicon/Crypto AG/CIA scandal, this is further evidence that FLOSS encryption technology is the only reliable encryption technology.


Chennai Convention Centre

Personally, I think the venue choice this year was great again, as we were able to accommodate 20+ sponsor stalls while still not overloading the halls and having ample space to conduct multiple tracks of the conference scheduled for the attendees.

sponsor stalls at the conference

1000+  users and developers of the Python programming language

As have been the regular norm with the annual PyCon India conference, the conference was graced by a footfall of over 1000 attendees from all corners of India. Many international names famous for their contributions in Python programming world also attended the conference.

If you are looking for more photographs from the conference, they are available here: https://photos.google.com/share/AF1QipOnLxMo-JVp80gqQernNZxbHmDs5WPsBFtBtY4zZBPzLMWJHi1pPdIkDFRmrVp3KQ?key=bzRidDFDR0RLbXpycEx4YUdIMmpGc21iaWlXLWJB

Videos for the talks from the conference are available here: https://www.youtube.com/playlist?list=PL6GW05BfqWIfsflQt05LM3FTX6cd7PGps

Volunteering Experience

Volunteer experience is one of my sought-after reasons to attend any conference in general. Being a volunteer gives you many many perks over a normal attendee: –

  • Easy access to information about all that’s happening and will happen at the conference
  • Unrestricted backstage access at the conference
  • Better networking – meet fellow volunteers and network much easily over common tasks/ jobs

Apart from these, there also are some monetary benefits to volunteering at a conference- registration fee for volunteers is generally waived off at paid-ticket based conferences and some quite generous conferences also have accommodation options for volunteers during the conference days, free of cost.
Also, organizers usually have free goodies to give away to the volunteers at the end of the conference.

The volunteers met at the convention centre a day before the conference to prepare the goodies bags for the attendees. These bags simply consisted of a schedule page, a pen, a notebook and a couple of PyCon India stickers- one for you, and one for sharing with your pal.

full force!
all in an evening’s work

DGPLUG Staircase Meeting

DGPLUG stands for Durgapur Linux Users Group. While it originated in Durgapur, West Bengal, DGPLUG has evolved into a larger, remote, decentralized community that has members from Bangalore, Pune, Delhi, Punjab, all places of India. As has been the annual convention, we also had DGPLUG’s annual staircase meeting with the past alumni of the Summer Training. We also received an awesome DGPLUG TShirt from Sayan bhaiya!

Translation: Learn and teach others

I really cherish the TShirt, now that the training has been discontinued. The training brought long lasting progressive changes in me and hundreds of other who participated in the summer training every year. I really missed Kushal bhaiya, Shakthi bhaiya, Jason bhaiya some other mentors. I still loved to meet many students from various corners of India that assembled for the meeting. This meeting was my main reason last year to attend the PyCon India 2018. I am eagerly looking forward to the next year’s meeting.

DGPLUG at the annual staircase meeting!

Poster Presentation

The next highlight for me at the conference was PyCon India 2019 was Poster Presentation.

As PyCon organizers put it. There are many reasons to present a poster at PyCon India which can be read in the poster below: –

a poster promoting poster presentation

Unfortunately not a lot of people in India are aware of KDE as commonly as some other open source organizations. In a hope to change that, RItuka and I aimed at presenting a poster for KDE Community at PyCon India 2019. Poster presentation was discussed with the KDE family here: https://phabricator.kde.org/T11430

So, at Day 2, we grabbed a poster stand and set up our little poster presentation stall. Some photos from our poster presentation are here: –

Piyush, Rituka, Subin and Kuntal
some freebies for our friends at the PyCon India!

Since 1000+ attendees are a lot to cover within a 30 minute window, I planted KDE stickers at every booth – registration, TShirt distribution, help desk, and even planted the Konqui standee right in the middle of the hall to promote KDE as much as possible. People really liked the mascot Konqi and many posted pictures with Konqi online!

KDE at Help Desk
KDE in the hall

KDE Stickers and pamphlets up for grabs at the TShirt booth!

Some tweets for the poster presentation are available here: https://twitter.com/brute4s99/status/1183705289670791168


I really loved attending the conference. Every year I learn new things when I attend any conference, and this one was no different. If anything, I loved attending the different quizzes set up by the sponsor stalls with freebies as rewards. I grabbed most of those, so I’m quite happy with my loot from the conference! 😀

Volunteer squad at the conference

Looking forward to the next iteration of the PyCon India Conference!

February 17, 2020

Cutelyst the C++/Qt Web framework and SimpleMailQt just got new releases.

Cutelyst received many important bugfixes and if you are compiling it with View::Email it also requires SimpleMail 2, the latter got an Async API which is on production for a few months, allowing for a non-blocking send mail experience.

Check them out!



February 16, 2020

Last week I decided to take KDE Itinerary for a test tour. Between the train rides there was also time for some KDE stuff.


After writing an exam on Friday afternoon I took a train to Frankfurt. I did so not to enjoy the beautiful scenery of the area around Frankfurt central station at night but to be able to catch an early train towards Bruxelles for my first time at FOSDEM.

It has been a great experience to meet so many people interested in what KDE does at the KDE booth. It also was awesome to meet all the folks that are working hard on making Linux on the phone become a thing.

People in a restaurant looking at the cameraPine64, Manjaro, UBports and KDE having dinner together

Plasma Mobile Sprint

FOSDEM went by in no time and so I found myself on a train to Berlin on Monday. My ride managed to defeat KDE Itinerary’s cancellation notification handling, but Volker managed to fight back.

In Berlin we met for a week-long Plasma Mobile sprint, hosted by KDAB in their offices. This gave us the opportunity to plan, discuss and hack all the things in a much more focused and productive manner than normally.

A particular pleasure was meeting Marius and Dalton from UBports/Ubuntu Touch and discussing how our projects can benefit each other. Most of our interactions was me nagging them to upgrade their Qt to allow KDE apps to run on Ubuntu Touch, but there was also fruitful discussion on sharing content between apps and a common push notification service (codenamed ‘Phushan’).

In addition to the discussion I also managed to get a few things done:

  • We managed to build KTrip using Ubuntu Touch’s clickable build system (only for amd64, since crosscompiling Qt is a little more involved. If you find it easy please consider applying at KDAB).
  • I started revamping the dated code of the dialer UI.
  • Together with the Kaidan team I fixed an issue in KNotifications that was affecting them.
  • Kaidan (XMPP client), Qrca (barcode scanner), Kookbook (recipe manager), Keysmith (OTP client) and Ruqola (Rocket.Chat client) are now available for Android in our nightly F-Droid repository.

On Saturday KDE joined UBports in their regular Q&A where we reported about the whole week and answered questions from the crowd. Check it out!

I left Berlin a bit earlier than planned due to an approaching storm, which was fine given how action-packed the whole week was.

Looking forward to doing it again!

Part 2 - Hey Everyone, this is Part 2 of my update regarding my SoK Journey and probably the last since I’m updating my blog on the very last day 😅. Since my last blog, I got really busy with my college and got less time to work on the website. I took...

Part 2 - SoK has finally ended yesterday and it’s been a great learning experience for me. In these last 40 days, it really made me lot more comfortable and confident as an open source contributor :). In my previous report - previous report. I mentioned about the completion of smallnumbers and enumerate...

It is busy days at the moment – but in a positive way.

First of all – a huge thanks to everyone who submitted to the Call for Papers for foss-north 2020. We have over 70 hours (!!!) of contents to squeeze into two tracks over two days. As always, it will be hard to pick the speakers to create the very best program.

Other foss-north activities includes starting to populate the community day activities, as well as getting a whole bunch on sponsors onboard. An extra big thanks to Luxoft and Red Hat Ansible for helping us by picking up the Gold Sponsorship packages. Ansible are even running their European Contributor Summit as a part of the foss-north Community Day together with events by KDE, Gnome, FreeBSD, Debian, and a hardware hacking workshop. I’m really looking forward to this – if you want to join in with your own project, workshop, hackaton, etc – just ping me!

The other big foss-north change for this year is that we are finally abandoning Eventbrite for a self-hosted system. Big thanks to Magnus Hagander helping us getting the pgeu-system up and running. At the moment, we offer login via Github and Google OAUTH. We’re looking into setting up a self-hosted OAUTH service as well, to let you log in locally, but that will not happen for the 2020 event due to time reasons.

Closer in time is the next local foss-gbg meetup. We are running an event around React together with our good friends at Edument. We already have 50+ registered attendees, so it will be fun!

In other news – I’ve also released Ordmonster – if anyone has kids who wants to get started reading. This is a complement to the Mattemonster app for basic maths launched earlier. Both are made with Godot, a tool that I enjoy more and more.

Plasma 5.18 has been released! A ton of work went into this release and we’re very proud of it. However I’d like to apologize for it being a bit buggier than we’d have preferred. We’ve gone balls-to-the-wall off the chain bananas fixing the issues you folks are reporting! Almost all of the highest-profile issues are fixed already, to be released with Plasma 5.18.1 in a few days! And we’ve got the less major regressions in our sights too! But still, we know that stability hasn’t always been our strong suit and we’re aiming for a higher standard next time, discussing how we can get there. So thank you for your patience and understanding, and enjoy Plasma 5.18!

Oh and we also fixed some of the most long-standing issues with Samba shares. 🙂 Check it all out:

New Features

Bugfixes & Performance Improvements

User Interface Improvements

How You Can Help

Upgrade to Plasma 5.18 and find all the bugs we missed! 🙂 The first point release (i.e. Plasma 5.18.1) will be released in two days, so every bug report we get soon is super important.

More generally, have a look at https://community.kde.org/Get_Involved and find out more ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

Older blog entries