All of you that are in using a computer for a long time should use it!

https://userbase.kde.org/RSIBreak

Changes from 0.12.11:
* Don't reset pause counter on very short inputs that can just be accidental.
* Improve high dpi support
* Translation improvements
* Compile with Qt 5.15 beta
* Minor code cleanup

http://download.kde.org/stable/rsibreak/0.12/rsibreak-0.12.12.tar.xz

Sunday

29 March, 2020

Today is the day! — Nitrux 1.2.7 is available to download

We are pleased to announce the launch of Nitrux 1.2.7. This new version brings together the latest software updates, bug fixes, performance improvements, and ready-to-use hardware support.

Nitrux 1.2.7 is available for immediate download.


What’s new

  • We’ve updated the kernel to version 5.5.13.
  • We’ve updated KDE Plasma to version 5.18.3, KDE Frameworks to version 5.68.0, KDE Applications to version 19.12.3, and Qt 5.14.1.
  • Calamares fully supports disk-encryption during the installation of the operating system.
  • We’ve fixed an issue with VVave not playing MP3 files.
  • We’ve updated Firefox to version 74.0.
  • We’ve updated the Nvidia driver to version 440.44.

Known issues

  • N/A.

Notes

  • OpenGL acceleration is used by default, if you use Nitrux in a VM open System Settings>Monitor>Compositor and select XRandr.

This week we worked really hard on a lot of important backend stuff that’s not so user-visible but will pay dividends down the road, such as launching applications using cgroup slices. We also did a ton of work on the Breeze Evolution project, however most of it is still in heavy development and not ready to be announced. It should trickle in during subsequent weeks, but until then, have a look at what did get landed:

New Features

Bugfixes & Performance Improvements

User Interface Improvements

How You Can Help

In Plasma 5.19, we are making 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! Head over to the VDG channel to find out how you can get involved and coordinate work.

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.

I was introduced to a whole new world of Open Source and version control systems a few months back and I have come a long way from there. I made my first pull request in October, worked on my project in November, took part in Season of KDE 2020 in December, worked on my SoK project in January and now, I am happy to say that SoK is finally over!

I learned a lot during the coding period and would love to share my journey. 

My Season of KDE Journey – Improve the Timeline Clips Color Palette

Week 1: Building the Development Environment

The first thing that one has to do before beginning to contribute to an organization is to build the code of the application from the source. And if this is the first time a person is building an app then he/she should be ready to do a lot of googling and praying for the CMake to compile successfully.

Kdenlive works with the help of a lot of dependencies and libraries. For the CMake to compile properly the system should have all these libraries installed in it. 

First things first, I got the Kdenlive source code from the GitLab instance of KDE, invent.kde.org. It is always best to checkout from the master to a new branch to prevent committing incorrect changes and spoiling your whole branch. Then I created a build file and ran the CMake code. This returned a LOT of errors when the required libraries and dependencies were not found in my system. Most of the errors were solved when the following command was executed:

sudo apt-get build-dep kdenlive

This installed most of the required dependencies. However, during CMake, since the errors were still there, I checked for the version required for the particular dependency, googled it, and installed it.  This is what took a lot of my time as I went through what is termed as “dependency hell”.

Either the application used an older version of a particular installed dependency or my system had an older version of the required library. This site and this one were very helpful.

Finally, I changed my OS to KDE neon dev edition and all the errors got corrected.

The next step was to build and install the application using make and make install. After Kdenlive was successfully installed I could finally open the application.

After setting up the development environment, I started going through the source code to understand how different components of the timeline work.

Week 2: Working on Title Clips

During Week 2, I dived right into the source code to get an idea of how the application identifies whether a particular clip in the timeline is of a particular type. As suggested by my mentor Farid, I went through the code related to the timeline in the src/timeline2/view  folder. Recently, a change was committed in master related to the target button colors. My mentor advised me to go through that commit to get an idea of how the colors are handled in the source code. 

After much searching and googling, I figured out how to differentiate between different clip types while assigning colors to them.

Since there already was a difference between the audio and video clips, I tried to understand how the application realized whether a clip is audio or not.

On searching, I found that definition.h contains the Producer enumeration which lists all types of clips. Clips in the application are checked for their type by comparing them against this enumeration.

I added the function that would first check whether a clip in the timeline is of title type or not, then would assign the color that was decided by the community for the title clips.

Title clip hardcoded color

Week 3: Hardcoding the colors is a big No-No

Nowadays every application has different themes according to the user’s convenience. Some like dark themes while some like light themes.

When one is working on adding a particular color to a component, one should consider how the color would appear in the other themes. This is where I had gone wrong the previous week. I had assigned a particular color to the title color that would remain the same irrespective of the current theme, i.e, I had hard-coded it. With the help of my mentor and the Kdenlive community, I realized my mistake and searched for different uses of QColor and KColorscheme classes that would rectify this. 

However, the color chosen for title clips was not a default Role in the KColorScheme and could be composed by mixing different default ones. Meanwhile, I worked on adding a function to check whether the clip is of image type image clip and then added the Neutral color of the ForegroundRole of KColorScheme class to the Image clip.

Image clip with neutral color

Neutral color added to Image clip

 

Week 4: Marker Comments

Comment markers are used in the timeline to add comments to the clip for a particular time. When the user first added a marker to a particular instant in the timeline, it wasn’t displayed making the user wonder if the feature works. He could make the comment markers display by going to the Kdenlive settings. However, this is time-consuming. So, I worked on making the markers display by default.

Since the codebase was still new to me, a lot of time was spent trying to figure out how the comments were handled by the timeline. I tried many ways to make it default however none of them seemed to work for me.

With the help of Kdenlive developers, I found out that kdenlivesetting.kcfg deals with assigning default values to any component in the application. I then solved this issue by making the default value true for displaying comment markers.

Week 5: Adding color to the rest of the Clip types

During this week, I finally understood how I could combine different default colors of ForegroundRole to form a new color as it is done for the color of the target button. Using this, I added color to the title clip by combining red (Negative foreground role) and blue (Link foreground role). I also added a function to identify Slideshow clips and then assigned the color, which is a combination of blue (Link Foreground Role) and orange( Neutral Foreground Role), to it.

Title Clip with mixed color

Title clip after combining the default colors

Slideshow Clip

Slideshow clip after combining colors of image[ neutral] and video [link] clips

Week 6: Review

In this final week, I pushed all my changes and requested the developers to review it. After a few minor changes, the changes were successfully merged! 

conf.kde.in

During Week 2, I got the wonderful opportunity to meet the KDE developers of my country, India in the conf.kde.in held in Delhi. I came to know about a lot of cool KDE and open-source related stuff in this conference.

I also gave a lightning talk about my Season of KDE 2020 project for Kdenlive. Since this was the first time I was attending any conference, giving a talk in one was overwhelming, but went quite well all things considered :p

conf.kde.in

 

The Road Ahead

Proxy and Clip Effect visual confirmation

I have started work on adding proxy clip visual confirmation. The user can’t know if a clip has the clip effect or is a proxy clip as there is no thumbnail to show otherwise.

I have gone through the codebase to understand where and how the proxy clip and clip effect is handled and how I could add the ‘proxy’ and ‘clip effect’  thumbnails.

Google Summer of Code 2020

I plan to work on adding Basic Subtitling Support to Kdenlive as part of my Google Summer of Code project. At present, since the subtitle files are hardcoded over the videos, the customization of the displayed subtitle text is not viable. This project will deal with extending the functionality of the existing Subtitle filter thereby giving users more choices over subtitle customization.

Continue Contributing

I enjoyed contributing to the KDE community during the coding period of Season of KDE and would love to continue to do so as much as I can.

This month KDE web developers worked on updating more websites and some progress was made in a new identity provider and a lot of other exiting stuff and a lot of background work was also done.

Updated Websites

Calligra website

  • Planet KDE is an aggregator of all the individual blogs of KDE contributors. It is the place where you can find technical details about a change, general KDE news, and blog posts about the life of KDE contributors. The website was updated and now contains feeds in more languages. (Me: Carl Schwan, See repository).

Planet KDE Website

Progress to a new identity service

KDE Identity was and still is a source of pain in the KDE infrastructure. It only supports OpenLDAP, doesn’t provide a great onbording experience and isn’t very flexible.

A new account management service is currently in creation and should be based on a fork of the successful Blender ID system. This new system will be based on OAuth2.

This month the homepage of the new identity service was updated to follow KDE branding (Me: Carl Schwan, see commit) and the settings are now using environment variables (Lays Rodrigues, see commit).

KDE identity

But the most significant work was rewriting season.kde.org and making it compatible with the new identity service. This is still in progress and a few features are missing but everything should be finished soon. (Me: Carl Schwan, See repository.).

Season Website

KDE.org changes

  • The hardware page created last month was updated to include the Pinebook Pro (Niccolò Venerandi) and now includes hardware specifications (Me: Carl Schwan).

hardware page

Library updates

  • An Aether theme was created for the Sphinx documention engine based on the Read the Docs theme. This isn’t used yet for any website but in the future, it will be used for hig.kde.org and maybe others. Stay tuned! (Carson Black, see repository)

Aether sphinx

How you can help

We always need help with websites, fixing papercuts, upgrading old websites to the new Jekyll/Hugo infrastructure, making sure information on the websites are up-to-date, creating beautiful home page for your favorite project and a lot more.

You can join the web team through our Matrix channel , our IRC channel (#kde-www) or our Telegram channel.

Saturday

28 March, 2020

INTRODUCTION

If you use KDE software, there is a good chance you’re on a Linux distribution and you download the software from your distribution’s repositories. But the fact is you can get KDE software from a number of sources on different platforms. As project coordinator for KDE e.V. helping with KDE Goals, I was tasked to look at app download statistics. Join me in my quest to understand how popular KDE apps are in various app stores.

ANDROID

Let’s start with one of the most popular operating systems in the world, Android.

Google Play

First we have the Play Store, the default way of downloading apps in the Google ecosystem. You can find all of the KDE published apps under a single developer account.

KDE on the Google Play Store

There are only seven apps published, but one of them is a very popular indeed: KDE Connect has over half a million downloads, and a respectable 4,6 rating with almost 15 thousand reviews. If we dig deeper when logged into the developer console, we can see it has over 200 thousand active users.

I think that last metric is very important: raw downloads stats are informative, sure - but you can achieve a high download count with a good marketing push even if the app is mediocre. On the other hand, active users are those that installed and decided to keep the app, as Google Play defines “active installs” as those that had the app installed and were online in the last 30 days.

Here are the stats for all available apps:

Name Active Installs
KDE Connect 226 679
KStars 2 015
KTuberling 658
KAlgebra 572
Behaim Globe 511
Kirigami Gallery 165
Klimbgrades 92

F-Droid

The Google Play store is not the only way one can install apps. You can directly download .apk files and install them manually or you can use a 3rd party store like F-Droid. I’m not sure if there is way to link to all KDE apps available in F-Droid, but you can search for individual apps, like KDE Connect. There are no stats for downloads or active users on F-Droid.

WINDOWS

I wouldn’t expect most Windows users to use an app store to get KDE apps. For many years the normal process when installing new software in Windows was to google the name, find a download link, get the installer and install the application manually. But Windows does come with an app store of its own now and, of course, KDE has apps available there as well. I couldn’t find a way to link to a single publisher, so the best I could do is a pre-made search link.

We have six published applications in this app store. The Windows store has a number of stats available for developers, but I’ll highlight the 30-day “acquisitions” which I believe is comparable to the statistic from Google Play.

Name Acquisitions
Kate 32 067
Okular 23 811
Filelight 2 992
Kile 2 391
KStars 1 825
Elisa 945

We don’t have a single juggernaut this time, the numbers are comparable between the top 2 apps: Fun observation: KStars has a similar amount of users on both the Google Play Store and the Windows Store. Not so fun fact: Kate has 61 user reviews, Okular 108. That’s not much compared to the number of users. If you are using a KDE app, consider writing a review!

Note: The public listing on the store shows even less reviews, for example only three total reviews for Kate. I’m not sure if this is somehow filtered for me due to location or language.

Kate on the Microsoft Store

As I mentioned, the Windows Store is not the primary way of getting KDE apps on Windows. Using the stats available in the Microsoft Partner Center, I can see that Krita alone had reported millions of installs. Other apps like Kdenlive, Kile, Kdevelop and Okular all have at least 200 thousand installs. I’m not sure how to interpret all of that data, but it shows the huge differences of popularity between download methods.

SNAPCRAFT

This distribution independent app store hosts 96 KDE apps. To get usage numbers I needed to go into each app manually, go to the metric tab and check the “Weekly active devices”.

If there is ever a need to revisit these numbers more often I would spend some time developing something to get the stats in an automated way: the huge amount of apps published and the need for manual accessing each app makes this task very time-consuming.

Anyway, here are the top 10 apps:

Name Installs
Okular 34 862
Krita 33 874
Kdenlive 14 516
Kolourpaint 9 607
Ark 6 928
Ktorrent 6 210
Kate 3 483
Umbrello 3 253
Ktouch 3 186
KCalc 3 066
 
All other apps combined 48 668

Some observations:

  • Not visible in the above list is the huge amount games! Most of them have anywhere from 200 to 1000 active users. Perhaps they’re good candidates to include in the other app stores?
  • Elisa and Kile are both available in the Windows Store but not in the Snap Store. I think that’s a missed opportunity.
  • Some of the least popular packages are Kdevelop, Calligra, Filelight and Kontact. I think it shows that users of those apps either had them preinstalled on their systems or are predominantly looking for them elsewhere.

Kmines screenshot Can you beat me at Kmines?

FLATHUB

This other Linux focused app store has 38 KDE apps available. Similarly to the Windows Store, instead of a publisher listing I can offer a search link.

This store needed the most amount of work from me. Compared to the other stores, there is no “developer account” I could login into. Instead, all of the stats are available in the open. I like this approach, but unfortunately the data provided is just raw download numbers that need some treatment to be useful. I used this python tool to help me with that.

The other issue is understanding the numbers. The other app stores all provide some sort of metric that shows the active users in a time frame, but here I only have downloads. This means that if I try to look at the number of downloads of an app in the last 30 days, but the app had 1 or more updates in that time, it would duplicate the number of users (once for the initial download and then again for each update downloaded).

To make some sense of all of this, I decided to look at the number of downloads since the last app update - assuming that active users keep apps up to date. This would more or less show the current usage. Again, I needed to do this work manually (check the last update date and ask for stats from then to now, for every app) and if this is not a one-off exercise a better way needs to be developed.

Fortunately for me, most of the apps were updated on March 5th so I could query for many of them at the same time. Since I gathered the stats on March 28th, it should be enough time for most users to download the update and thus show up as a active user. There are however some problems still: some apps show no update date at all (perhaps they were truly never updated) or had updates a long time ago (querying from that date would show huge cumulative download numbers). The other issue is that Krita was updated on March 25th, which could result in smaller reported number of downloads as users haven’t updated yet.

Based on all of these assumptions, here is my compiled list of top 10 apps that were updated on March 5th:

Name Downloads or updates between March 5-28
Kalzium 38 959
Kgeography 38 561
Knavalbattle 36 107
Kbounce 31 467
Kbruch 31 282
Kblocks 30 971
Kdenlive 30 843
kwordquiz 30 169
Ksudoku 30 133
Kgoldrunner 30 038

Now this is quite different from all other app stores. The app composition is different (3 educational apps, 6 games) and the download numbers are quite similar in the top 10. This means that either my method is flawed, or flathub users are very different compared to those of other app stores.

For completion, some other stats:

Name Downloads
Gcompris March 5-28 22 363
Gcompris since last update 2019-12-01 67 961
Kdenlive March 5-28 30 843
Kdenlive since last update 2020-02-11 54 484

CONCLUSIONS

What did I learn after going through all of this data? While perhaps not the most popular way of acquiring KDE software, app stores still serve hundreds of thousands of users. This number grow a lot if more apps become published on all of the stores and the existing listings get some more love with reviews, better descriptions and screenshots.

Direct file downloads from repositories or mirrors dwarf the app store download numbers, but the stats from those are not collected for privacy reasons.

On the other hand, a successful app store listing is something we can show the world and say “look here, this is a popular KDE app, check it out and maybe check out the others”. If you’d like to assist with promoting KDE apps, join us in the matrix channel for the apps goal to help out!

PS

Some apps have their own listings on app stores like Gcompris on the Play Store or Krita on Steam. I did not include those in my stats.

While big changes are on their way for Qt 6.0, QML got some new language features already in 5.15. Read on to to learn about required properties, inline components and nullish coalescing.

So one of the toughest Krita releases is up today. Tough not in the sense there were a lot of regressions to solve but the mountain of build issues faced by the team.

Friday

27 March, 2020

Once more, I wanted to push a small change to a Git repository to which the owner gave me write access. This repo is currently the only one for me, for which I need to use https as transport protocol and therefore have to enter username and password for each and every push.

On the other hand, I keep all my valuable credentials in Pass: The Standard Unix Password Manager for a couple of years now. It stores them with strong GPG encryption on my disk, is nicely integrated into Firefox by a plugin and there is also a KDE plasma widget available, created by my fellow KDE developer Daniel Vrátil. So why can’t Git read (I was about to use pull here, but that might be confusing in the context of Git) the credentials from my password store? There must be a way!

Next, I started reading the documentation about git-credentials which seems to provide all that is needed. Just that pass was not on the list of helpers. Reading the specs, I expected it to be pretty easy to write a small wrapper that solves the issue. But: this sounds like a problem too obvious and to be solved already. So the search began.

Using all kinds of combinations of git-credentials, pass, password-store and some more I don’t remember, I always ended up on some general Git documentation, but no sign of what I was looking for. So maybe, it really does not exist (oh, I have not consulted the yellow pages) and I have to develop and provide it to the internet community myself.

Reading the specs more thoroughly – now that i need to understand the interface to such a wrapper – I came across the search pattern used by Git to find those credential helpers. I was tempted to name mine git-credential-pass since it is a helper for pass. But wait: one more trial using this name as pattern for the search engine of choice, et voilà: I found pass-git-helper, a nice python based script which does exactly what I looked for (and maybe a few more things).

It already exists for a couple of years, so I wondered if I can find it in my distro’s repo to save some time and get automatic updates. Bad news, it does not exist.

So it was a matter of git clone, manual installation and configuration to gain some more integration and automation.

% git clone https://github.com/languitar/pass-git-helper.git
% sudo python3 setup.py install
# test drive
% pass-git-helper get
protocol=https
host=git.example.com
^D
Unable to parse mapping file
% 

Ah, I needed that mapping file, it does not work without it. OK, let’s do it then.

% mkdir -p ~/.config/pass-git-helper
% cat > ~/.config/pass-git-helper/git-pass-mapping.ini
[*]
Target=${host}
^D
% pass-git-helper get
protocol=https
host=git.example.com
^D
password=git-password
username=login: git-username
%

Hmm, works, but the lead-in text login: for the username is not a good idea to be returned to Git. Problem: I have that in most of my pass records and the firefox plugin can cope with it pretty well. But that could be tweaked by an extension to the mapping.ini file based on my favorites: regular expressions.

 % cat > ~/.config/pass-git-helper/git-pass-mapping.ini
[DEFAULT]
username_extractor=regex_search
regex_username=^login: (.*)$

[*]
target=${host}
^D
% pass-git-helper get
protocol=https
host=git.example.com
^D
password=git-password
username=git-username

Looks good to me. Now on to Git:

% git credential fill
url=https://git.example.com
^D
# at this point, the normal 'enter username' dialog popped
# up, which I cancelled
error: unable to read askpass response from '/usr/lib/ssh/ssh-askpass'
Username for 'https://git.example.com': ^C

Now it was just a matter to configure Git to use the new helper. This is done by setting the Git credential.helper option, which can be achieved with the following command executed in the top directory of the project:

git config credential.helper '!pass-git-helper $@'
# test drive
% git credential fill
url=https://git.example.com
^D
protocol=https
host=git.example.com
username=git-username
password=git-password

Yeah! That’s it. Now I am prepared for the next git push to that repo.

The search engine btw, seems to have learned in the meantime: now when I enter my initial search arguments it presents pass-git-helper right away. Maybe other users benefit from this learning as well.

Kubuntu 20.04 Testing Week

The Kubuntu team is delighted to announce an ‘Ubuntu Testing Week’ from April 2nd to April 8th with other flavors in the Ubuntu family. April 2nd is the beta release of what will become Kubuntu 20.04 and during this week, there will be a freeze on changes to features, the user interface and documentation. Between April 2nd and final release on April 23rd, the Kubuntu team and community will focus on ISO testing, bug reporting, and fixing bugs. Please join the community by downloading the daily ISO image and trying it out, even beginning today.

QA tracker: http://iso.qa.ubuntu.com/qatracker/milestones/408/builds

From this main page, click on the ‘Kubuntu Desktop amd64’ link to arrive at the testcases page. On the testcases page, you can download the ISO by clicking the ‘Link to the download information’ and report test results to the various test cases for Kubuntu. If you see other flavors needing testing on the main page, please test for them as well.

Chat live on IRC (#ubuntu-quality) or Telegram (UbuntuTesters: https://t.me/UbuntuTesters) if you like, during this time of pandemic social distancing.

If you have no spare computer to use for testing, no problem! You can test without changing your system by running it in a VM (Virtual Machine) with software like Virtualbox, or running it in the live session from a USB or DVD, so you can also test if your hardware works correctly. We encourage those that are willing, to install it either in a VM or on physical hardware–requires at least 6GB of harddisk space–and use it continuously for a few days, as more bugs can be exposed and reported this way.

The easy way to report a bug is to open up Konsole by pressing alt+space and typing konsole or Menu > Konsole and then typing `ubuntu-bug packagename`, where packagename is the program or application where you experience the bug.

If you prefer working in the terminal, open the virtual console (terminal) by pressing control + alt + F2, 3, 4 etc. and typing `ubuntu-bug packagename`, where packagename is the program or application where you experience the bug. Control + Alt + F1 to return to your desktop. If a crash has landed you in the terminal, login with your usual user name and password, and report the bug as above.

Here is a nice youtube video showing the entire process, including one way to figure out what packagename is appropriate in GNOME: https://www.youtube.com/watch?v=CjTyzyY9RHw

Using ‘ubuntu-bug’ will automatically upload error logs and/or other files to Launchpad that developers need to fix the bug. By the way, the installer’s packagename is ubiquity. Experience tells us that is the most useful packagename to know for ISO testing when things go wrong with the installation. The live session software package is casper, should you encounter bugs affecting the live session itself, not programs. Other programs with bugs should be filed against their packages, for instance firefox, dolphin, vlc, etc. Only the bug *number* is needed when reporting the results of a test on the QA tracker.

Please test programs / applications that you regularly use, so you can identify bugs and regressions that should be reported. New ISO files are built every day; always test with the most up-to-date ISO. It is easier and faster to update an existing daily ISO with the command below (first right-click on the ISO’s folder in Dolphin and select ‘Open in Terminal’) or just open konsole or yakuake and `cd path-to-ISO-folder`. Zsync downloads only changes, so it’s very quick.
$ zsync http://cdimage.ubuntu.com/kubuntu/daily-live/current/focal-desktop-amd64.iso.zsync