Planet KDE Planet KDE Planet KDE 48 48 Mon, 30 Mar 2020 18:28:36 +0000 New Icon theme Sun, 29 Mar 2020 19:39:05 +0000 <figure class="wp-block-image size-large"><img data-attachment-id="232" data-permalink="" data-orig-file="" data-orig-size="1280,764" data-comments-opened="1" data-image-meta='&#123;"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="IMG_20200329_210655_260.jpg" data-image-description="" data-medium-file="" data-large-file="" src="//" alt="" class="wp-image-232" srcset=" 1024w, 150w, 300w, 768w, 1280w" sizes="(max-width: 1024px) 100vw, 1024px"><figcaption>Konsole Icon</figcaption></figure> <h3>New icon theme </h3> <p>Like everyone else, I am also in quarantine, and during this quarantine I got closer to the program that I love, inkscape. I started to make smartphone mockups again, which I published on my Instagram profile (<em>maybe I will also make posts here</em>). But I started a <strong><strong>new icon th</strong>eme</strong> , since I have many free hours a day, I have a lot of time to devote to this project. </p> <figure class="wp-block-image size-large"><img data-attachment-id="237" data-permalink="" data-orig-file="" data-orig-size="1280,764" data-comments-opened="1" data-image-meta='&#123;"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="img_20200329_210657_0304512766611929788630.jpg" data-image-description="" data-medium-file="" data-large-file="" src="//" alt="" class="wp-image-237" srcset=" 1024w, 150w, 300w, 768w, 1280w" sizes="(max-width: 1024px) 100vw, 1024px"><figcaption>Digikam Icon</figcaption></figure> <p>I plan to release a first alpha by tomorrow evening :). I hope you like it very much. Let me know what you would change. See you tomorrow with the next post.</p> Andrea Del Sarto, RSIBreak 0.12.12 released! Sun, 29 Mar 2020 13:41:00 +0000 All of you that are in using a computer for a long time should use it!<br><br><a href=""></a><br><br>Changes from 0.12.11: <br> * Don't reset pause counter on very short inputs that can just be accidental.<br> * Improve high dpi support<br> * Translation improvements<br> * Compile with Qt 5.15 beta<br> * Minor code cleanup<br><br><a href=""></a> Albert Astals Cid Changelog: Nitrux 1.2.7 Sun, 29 Mar 2020 09:59:00 +0000 <h3><img class="size-full wp-image-3353 aligncenter" style="font-size: 16px;" src="//" alt="" width="1024" height="768"></h3> <div class="divider-wrap" data-alignment="default"><div style="height: 30px;" class="divider"></div></div> <h2 id="today-is-the-day-nitrux-124-is-available-to-download" style="text-align: left;">Today is the day! — Nitrux 1.2.7 is available to download</h2> <p style="text-align: left;">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.</p> <p style="text-align: left;">Nitrux 1.2.7 is available for immediate download.</p> <hr> <h2>What’s new</h2> <ul> <li>We’ve updated the kernel to version 5.5.13.</li> <li>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.</li> <li>Calamares fully supports disk-encryption during the installation of the operating system.</li> <li>We’ve fixed an issue with VVave not playing MP3 files.</li> <li>We’ve updated Firefox to version 74.0.</li> <li>We’ve updated the Nvidia driver to version 440.44.</li> </ul> <h2 id="known-issues">Known issues</h2> <ul> <li>N/A.</li> </ul> <h2 id="notes">Notes</h2> <ul> <li>OpenGL acceleration is used by default, if you use Nitrux in a VM open System Settings&gt;Monitor&gt;Compositor and select XRandr.</li> </ul> Maui Project This week in KDE: The calm before the storm (of new features) Sun, 29 Mar 2020 05:20:28 +0000 <p>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 <a href="">launching applications using cgroup slices</a>. We also did a ton of work on the <a href="">Breeze Evolution</a> 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:</p> <h2>New Features</h2> <ul> <li>It’s now possible to <a href="">switch the current timezone by clicking on a different one in the Digital Clock applet’s pop-up</a> (me: Nate Graham, Plasma 5.19.0):<br> <div style="width: 640px;" class="wp-video"> <!--[if lt IE 9]><script>document.createElement('video');</script><![endif]--> <video class="wp-video-shortcode" id="video-4752-1" width="640" height="360" preload="metadata" controls="controls"><source type="video/webm" src="//"></source><a href=""></a></video> </div> </li> </ul> <h2>Bugfixes &amp; Performance Improvements</h2> <ul> <li>While dragging a file in Dolphin, the cursor hint showing what will happen <a href="">now changes appropriately if you press different modifier keys</a> (Tranter Madi, Dolphin 20.04.0 when using Qt 5.15 or later)</li> <li>Files accessed using an <tt>sftp://</tt> URL <a href="">no longer show bogus creation dates when no creation date information is available</a> (Harald Sitter, Dolphin 20.04.0)</li> <li>Okular’s Find function <a href="">now finds occurrences of the given text that are split across multiple lines</a> (Albert Astals Cid, Okular 1.11.0)</li> <li>Filelight <a href="">now uses the correct font style in its tooltip</a> (Shubham, Filelight 20.08.0</li> <li>Fixed a case where Discover could <a href="">crash while updating when a terminal window is opened and used to perform a different kind of update (</a>Aleix Pol Gonzalez, Plasma 5.18.4)</li> <li>When using multiple virtual desktops, <a href="">adding or removing rows is immediately reflected in the pager applet</a> (Kai Uwe Broulik, Plasma 5.18.4)</li> <li>Fixed <a href="">various sizing issues with long dates displayed in vertical panels</a> (me: Nate Graham, Plasma 5.18.4)</li> <li>Disabled System Tray items <a href="">no longer show up in the config window as “Always visible” under certain circumstances</a> (Nicolas Fella, Plasma 5.18.4)</li> <li>Discover <a href="">now respects the user-configurable APT update interval on Debian-based systems</a> (Eli Acherkan, Discover 5.19.0)</li> <li>It’s no longer possible to accidentally click on invisible buttons in an unfocused Sticky Note widget, because <a href="">they’re now only clickable when visible</a> (me: Nate Graham, Plasma 5.19.0)</li> </ul> <h2>User Interface Improvements</h2> <ul> <li>When adding a radio in Elisa, <a href="">the “Title” text field is now focused by default</a> (Matthieu Gallien, Elisa 20.04.0)</li> <li>The Pin button in the System Tray and Digital Clock pop-ups <a href="">is now more appropriately sized</a> and <a href="">has a nicer icon</a> (me: Nate Graham, and Noah Davis, Plasma 5.19.0):<br> <img data-attachment-id="4757" data-permalink="" data-orig-file="" data-orig-size="553,493" data-comments-opened="1" data-image-meta='&#123;"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="Screenshot_20200328_231511" data-image-description="" data-medium-file="" data-large-file="" src="//" alt="Nicer pin button" class="aligncenter size-full wp-image-4757" srcset=" 553w, 150w, 300w" sizes="(max-width: 553px) 100vw, 553px"> </li> <li>Monitors for the Baloo file indexer in the KInfoCenter app and the <tt>balooctl monitor</tt> command <a href="">now consistently update once per second</a> (Stefan Brüns, Frameworks 5.69)</li> <li>When creating a new file in Dolphin or another KDE app that uses the standard “create new file” menu, <a href="">the appropriate file extension is now automatically appended to the filename</a> (Ahmad Samir, Frameworks 5.69)</li> <li>The “Open With…” dialog <a href="">now displays tooltips with additional information when you hover the mouse over app entries</a> (Ahmad Samir, Frameworks 5.69)</li> </ul> <h2>How You Can Help</h2> <p>In Plasma 5.19, we are making a push on our <a href="">Breeze Theme Evolution</a> 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 <a href="">the VDG channel</a> to find out how you can get involved and coordinate work.</p> <p>More generally, have a look at <a href="" rel="nofollow"></a> 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!</p> <p>Finally, consider <a href="">making a tax-deductible donation</a> to the <a href="">KDE e.V. foundation</a>.</p> Nate Graham Season of KDE 2020 and GSOC Sat, 28 Mar 2020 16:16:52 +0000 <p><span style="font-weight: 400;">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!</span></p> <p><span style="font-weight: 400;">I learned a lot during the coding period and would love to share my journey. </span></p> <h2><span style="font-weight: 400;">My Season of KDE Journey – Improve the Timeline Clips Color Palette<br> </span></h2> <h3><span style="font-weight: 400;">Week 1: Building the Development Environment</span></h3> <p><span style="font-weight: 400;">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.</span></p> <p><span style="font-weight: 400;">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. </span></p> <p><span style="font-weight: 400;">First things first, I got the Kdenlive source code from the GitLab instance of KDE, 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:</span></p> <blockquote><p><span style="font-weight: 400;">sudo apt-get build-dep kdenlive</span></p></blockquote> <p><span style="font-weight: 400;">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”.</span></p> <p><span style="font-weight: 400;">Either the application used an older version of a particular installed dependency or my system had an older version of the required library. This <a href="">site</a> </span><span style="font-weight: 400;">and <a href="">this one</a> </span><span style="font-weight: 400;">were very helpful.</span></p> <p><span style="font-weight: 400;">Finally, I changed my OS to KDE neon dev edition and all the errors got corrected.</span></p> <p><span style="font-weight: 400;">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.</span></p> <p><span style="font-weight: 400;">After setting up the development environment, I started going through the source code to understand how different components of the timeline work.</span></p> <h3><span style="font-weight: 400;">Week 2: Working on Title Clips</span></h3> <p><span style="font-weight: 400;">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. </span></p> <p><span style="font-weight: 400;">After much searching and googling, I figured out how to differentiate between different clip types while assigning colors to them. </span></p> <p><span style="font-weight: 400;">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. </span></p> <p><span style="font-weight: 400;">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. </span></p> <p><span style="font-weight: 400;">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.</span></p> <h2><img class="aligncenter wp-image-5547" src="//" alt="Title clip hardcoded color" width="897" height="212" srcset=" 980w, 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, 100vw"></h2> <h3></h3> <h3><span style="font-weight: 400;">Week 3: Hardcoding the colors is a big No-No</span></h3> <p><span style="font-weight: 400;">Nowadays every application has different themes according to the user’s convenience. Some like dark themes while some like light themes. </span></p> <p><span style="font-weight: 400;">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. </span></p> <p><span style="font-weight: 400;">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.</span></p> <div id="attachment_5548" style="width: 492px" class="wp-caption aligncenter"> <img aria-describedby="caption-attachment-5548" class="wp-image-5548" src="//" alt="Image clip with neutral color" width="482" height="314" srcset=" 482w, 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 482px, 100vw"><p id="caption-attachment-5548" class="wp-caption-text">Neutral color added to Image clip</p> </div> <p> </p> <h3><span style="font-weight: 400;">Week 4: Marker Comments</span></h3> <p><span style="font-weight: 400;">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.</span></p> <p><span style="font-weight: 400;">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.</span></p> <p><span style="font-weight: 400;">With the help of Kdenlive developers, I found out that kdenlivesetting.kcfg deals with assigning default va</span><span style="font-weight: 400;">lues to any component in the application. I then solved this issue by making the default value true for displaying comment markers.</span></p> <h3><span style="font-weight: 400;">Week 5: Adding color to the rest of the Clip types</span></h3> <p><span style="font-weight: 400;">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. </span><span style="font-weight: 400;">Using this, I added color to the title clip by combining red (Negative foreground role) and blue (Link foreground role). </span><span style="font-weight: 400;">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.</span></p> <div id="attachment_5546" style="width: 399px" class="wp-caption aligncenter"> <img aria-describedby="caption-attachment-5546" class="wp-image-5546" src="//" alt="Title Clip with mixed color" width="389" height="271"><p id="caption-attachment-5546" class="wp-caption-text">Title clip after combining the default colors</p> </div> <div id="attachment_5549" style="width: 558px" class="wp-caption aligncenter"> <img aria-describedby="caption-attachment-5549" class="wp-image-5549" style="font-weight: bold;" src="//" alt="Slideshow Clip" width="548" height="221" srcset=" 548w, 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 548px, 100vw"><p id="caption-attachment-5549" class="wp-caption-text">Slideshow clip after combining colors of image[ neutral] and video [link] clips</p> </div> <h3><span style="font-weight: 400;">Week 6: Review</span></h3> <p><span style="font-weight: 400;">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! </span></p> <h2><span style="font-weight: 400;"></span></h2> <p><span style="font-weight: 400;">During Week 2, I got the wonderful opportunity to meet the KDE developers of my country, India in the held in Delhi. I came to know about a lot of cool KDE and open-source related stuff in this conference.</span></p> <p><span style="font-weight: 400;">I also gave a light</span><span style="font-weight: 400;">ning 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</span></p> <p><img class="size-medium wp-image-5550 aligncenter" src="//" alt="" width="300" height="300"></p> <p> </p> <h2><span style="font-weight: 400;">The Road Ahead</span></h2> <h3><span style="font-weight: 400;">Proxy and Clip Effect visual confirmation</span></h3> <p><span style="font-weight: 400;">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.</span></p> <p><span style="font-weight: 400;">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.</span></p> <h3>Google Summer of Code 2020</h3> <p>I plan to work on adding <a href="">Basic Subtitling Support</a> to Kdenlive as part of my Google Summer of Code project. At present, since the<span style="font-weight: 500;"> subtitle files are hardcoded over the videos, the customization of the displayed subtitle text is not viable. </span>This project will deal with <span style="font-weight: 500;">extending the functionality of the existing Subtitle filter thereby giving users more choices over subtitle customization. </span></p> <h3><span style="font-weight: 400;">Continue Contributing</span></h3> <p><span style="font-weight: 400;">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.</span></p> Kdenlive This month in KDE Web: March 2020 Sat, 28 Mar 2020 16:00:00 +0000 <p>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.</p> <h2 id="updated-websites">Updated Websites</h2> <ul> <li> <a href="">Calligra</a>, the KDE office suite, launched a new website. This was done during <a href="">Season of KDE</a> by Anuj Bansal. This replaces the old Wordpress website. <a href="">See repository.</a> </li> </ul> <p><img src="//" alt="Calligra website"></p> <ul> <li> <a href="">Planet KDE</a> 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, <a href="">See repository</a>).</li> </ul> <p><img src="//" alt="Planet KDE Website"></p> <h2 id="progress-to-a-new-identity-service">Progress to a new identity service</h2> <p>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.</p> <p>A new account management service is currently in creation and should be based on a fork of the successful <a href="">Blender ID system</a>. This new system will be based on OAuth2.</p> <p>This month the homepage of the new identity service was updated to follow KDE branding (Me: Carl Schwan, <a href="">see commit</a>) and the settings are now using environment variables (Lays Rodrigues, <a href="">see commit</a>).</p> <p><img src="//" alt="KDE identity"></p> <p>But the most significant work was rewriting <a href=""></a> 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, <a href="">See repository.</a>).</p> <p><img src="//" alt="Season Website"></p> <h2 id="kdeorg-changes"> changes</h2> <ul> <li>The <a href="">hardware page</a> created last month was updated to include the Pinebook Pro (Niccolò Venerandi) and now includes hardware specifications (Me: Carl Schwan).</li> </ul> <p><img src="//" alt="hardware page"></p> <h2 id="library-updates">Library updates</h2> <ul> <li>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 <a href=""></a> and maybe others. Stay tuned! (Carson Black, <a href="">see repository</a>)</li> </ul> <p><img src="//" alt="Aether sphinx"></p> <h2 id="how-you-can-help">How you can help</h2> <p>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.</p> <p>You can join the web team through our <a href="">Matrix channel</a> , our IRC channel (#kde-www) or our <a href="">Telegram channel</a>.</p> Carl Schwan KDE in app stores Sat, 28 Mar 2020 11:00:00 +0000 <h2 id="introduction">INTRODUCTION</h2> <p>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 <a href="">KDE Goals</a>, 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.</p> <h2 id="android">ANDROID</h2> <p>Let’s start with one of the most popular operating systems in the world, Android.</p> <h3 id="google-play">Google Play</h3> <p>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 <a href="">single developer account</a>.</p> <p><img src="//" alt="KDE on the Google Play Store"></p> <p>There are only seven apps published, but one of them is a very popular indeed: <a href="">KDE Connect</a> has over <strong>half a million</strong> 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.</p> <p>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.</p> <p>Here are the stats for all available apps:</p> <table> <thead> <tr> <th>Name</th> <th>Active Installs</th> </tr> </thead> <tbody> <tr> <td>KDE Connect</td> <td>226 679</td> </tr> <tr> <td>KStars</td> <td>2 015</td> </tr> <tr> <td>KTuberling</td> <td>658</td> </tr> <tr> <td>KAlgebra</td> <td>572</td> </tr> <tr> <td>Behaim Globe</td> <td>511</td> </tr> <tr> <td>Kirigami Gallery</td> <td>165</td> </tr> <tr> <td>Klimbgrades</td> <td>92</td> </tr> </tbody> </table> <h3 id="f-droid">F-Droid</h3> <p>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 <a href="">KDE Connect</a>. There are no stats for downloads or active users on F-Droid.</p> <h2 id="windows">WINDOWS</h2> <p>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 <a href="">pre-made search link</a>.</p> <p>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.</p> <table> <thead> <tr> <th>Name</th> <th>Acquisitions</th> </tr> </thead> <tbody> <tr> <td>Kate</td> <td>32 067</td> </tr> <tr> <td>Okular</td> <td>23 811</td> </tr> <tr> <td>Filelight</td> <td>2 992</td> </tr> <tr> <td>Kile</td> <td>2 391</td> </tr> <tr> <td>KStars</td> <td>1 825</td> </tr> <tr> <td>Elisa</td> <td>945</td> </tr> </tbody> </table> <p>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!</p> <p>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.</p> <p><img src="//" alt="Kate on the Microsoft Store"></p> <p>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 <strong>millions of installs</strong>. 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.</p> <h2 id="snapcraft">SNAPCRAFT</h2> <p>This distribution independent app store hosts <a href="">96 KDE apps</a>. To get usage numbers I needed to go into each app manually, go to the metric tab and check the “Weekly active devices”.</p> <p>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.</p> <p>Anyway, here are the top 10 apps:</p> <table> <thead> <tr> <th>Name</th> <th>Installs</th> </tr> </thead> <tbody> <tr> <td>Okular</td> <td>34 862</td> </tr> <tr> <td>Krita</td> <td>33 874</td> </tr> <tr> <td>Kdenlive</td> <td>14 516</td> </tr> <tr> <td>Kolourpaint</td> <td>9 607</td> </tr> <tr> <td>Ark</td> <td>6 928</td> </tr> <tr> <td>Ktorrent</td> <td>6 210</td> </tr> <tr> <td>Kate</td> <td>3 483</td> </tr> <tr> <td>Umbrello</td> <td>3 253</td> </tr> <tr> <td>Ktouch</td> <td>3 186</td> </tr> <tr> <td>KCalc</td> <td>3 066</td> </tr> <tr> <td>…</td> <td> </td> </tr> <tr> <td>All other apps combined</td> <td>48 668</td> </tr> </tbody> </table> <p>Some observations:</p> <ul> <li>Not visible in the above list is the <strong>huge amount games</strong>! Most of them have anywhere from 200 to 1000 active users. Perhaps they’re good candidates to include in the other app stores?</li> <li>Elisa and Kile are both available in the Windows Store but not in the Snap Store. I think that’s a missed opportunity.</li> <li>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.</li> </ul> <p><img src="//" alt="Kmines screenshot"> <em>Can you beat me at Kmines?</em></p> <h2 id="flathub">FLATHUB</h2> <p>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 <a href="">search link</a>.</p> <p>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 <a href="">in the open</a>. I like this approach, but unfortunately the data provided is just raw download numbers that need some treatment to be useful. I used this <a href="">python tool</a> to help me with that.</p> <p>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).</p> <p>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.</p> <p>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.</p> <p>Based on all of these assumptions, here is my compiled list of top 10 apps that were updated on March 5th:</p> <table> <thead> <tr> <th>Name</th> <th>Downloads or updates between March 5-28</th> </tr> </thead> <tbody> <tr> <td>Kalzium</td> <td>38 959</td> </tr> <tr> <td>Kgeography</td> <td>38 561</td> </tr> <tr> <td>Knavalbattle</td> <td>36 107</td> </tr> <tr> <td>Kbounce</td> <td>31 467</td> </tr> <tr> <td>Kbruch</td> <td>31 282</td> </tr> <tr> <td>Kblocks</td> <td>30 971</td> </tr> <tr> <td>Kdenlive</td> <td>30 843</td> </tr> <tr> <td>kwordquiz</td> <td>30 169</td> </tr> <tr> <td>Ksudoku</td> <td>30 133</td> </tr> <tr> <td>Kgoldrunner</td> <td>30 038</td> </tr> </tbody> </table> <p>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.</p> <p>For completion, some other stats:</p> <table> <thead> <tr> <th>Name</th> <th>Downloads</th> </tr> </thead> <tbody> <tr> <td>Gcompris March 5-28</td> <td>22 363</td> </tr> <tr> <td>Gcompris since last update 2019-12-01</td> <td>67 961</td> </tr> <tr> <td>Kdenlive March 5-28</td> <td>30 843</td> </tr> <tr> <td>Kdenlive since last update 2020-02-11</td> <td>54 484</td> </tr> </tbody> </table> <h2 id="conclusions">CONCLUSIONS</h2> <p>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 <strong>more apps become published on all of the stores</strong> and the existing listings get some more love with <strong>reviews, better descriptions and screenshots</strong>.</p> <p>Direct file downloads from repositories or mirrors dwarf the app store download numbers, but the stats from those are not collected for privacy reasons.</p> <p>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 <a href="">matrix channel</a> for the <a href="">apps goal</a> to help out!</p> <h3 id="ps">PS</h3> <p>Some apps have their own listings on app stores like <a href="">Gcompris on the Play Store</a> or <a href="">Krita on Steam</a>. I did not include those in my stats.</p> Adam Szopa New QML language features in Qt 5.15 Fri, 27 Mar 2020 13:58:08 +0000 <div class="hs-featured-image-wrapper"> <a href="" title="" class="hs-featured-image-link"> <img src="//" alt="New QML language features in Qt 5.15" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"> </a> </div> <p>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.</p> <img src="//;k=14&amp;;;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "> Qt Dev Loop Krita Weeky #13 | 4.2.9 released Fri, 27 Mar 2020 10:41:48 +0000 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. Kuntal Majumder It’s just a matter of selecting the right search terms Fri, 27 Mar 2020 07:13:10 +0000 <p>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 <code>https</code> as transport protocol and therefore have to enter username and password for each and every push.</p> <p>On the other hand, I keep all my valuable credentials in <a rel="noreferrer noopener" aria-label="Pass: The Standard Unix Password Manager (opens in a new tab)" href="" target="_blank">Pass: The Standard Unix Password Manager</a> for a couple of years now. It stores them with strong GPG encryption on my disk, is nicely integrated into Firefox by a <a rel="noreferrer noopener" aria-label="plugin (opens in a new tab)" href="" target="_blank">plugin</a> and there is also a <a rel="noreferrer noopener" aria-label="KDE plasma plugin (opens in a new tab)" href="" target="_blank">KDE plasma widget</a> 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!</p> <p>Next, I started reading the documentation about <a rel="noreferrer noopener" aria-label="git-credentials (opens in a new tab)" href="" target="_blank">git-credentials</a> which seems to provide all that is needed. Just that <code>pass</code> 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.</p> <p>Using all kinds of combinations of <code>git-credentials</code>, <code>pass</code>, <code>password-store</code> 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.</p> <p>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 <strong><code>git-credential-pass</code></strong> since it is a helper for <code>pass</code>. But wait: one more trial using this name as pattern for the search engine of choice, et voilà: I found <a rel="noreferrer noopener" aria-label="pass-git-helper (opens in a new tab)" href="" target="_blank">pass-git-helper</a>, a nice python based script which does exactly what I looked for (and maybe a few more things).</p> <p>It already exists for a couple of years, so I wondered if I can find it in my <a rel="noreferrer noopener" aria-label="distro's (opens in a new tab)" href="" target="_blank">distro’s</a> repo to save some time and get automatic updates. Bad news, it does not exist. </p> <p>So it was a matter of <strong>git clone</strong>, manual installation and configuration to gain some more integration and automation.</p> <pre class="wp-block-preformatted">% git clone % sudo python3 install # test drive % pass-git-helper get protocol=https ^D Unable to parse mapping file % </pre> <p>Ah, I needed that mapping file, it does not work without it. OK, let’s do it then.</p> <pre class="wp-block-preformatted">% mkdir -p ~/.config/pass-git-helper % cat &gt; ~/.config/pass-git-helper/git-pass-mapping.ini [*] Target=$&#123;host} ^D % pass-git-helper get protocol=https ^D password=git-password username=login: git-username %</pre> <p>Hmm, works, but the lead-in text <code>login: </code> for the username is not a good idea to be returned to Git. Problem: I have that in most of my <code>pass</code> records and the firefox plugin can cope with it pretty well. But that could be tweaked by an extension to the <code>mapping.ini</code> file based on my favorites: regular expressions.</p> <pre class="wp-block-preformatted"> % cat &gt; ~/.config/pass-git-helper/git-pass-mapping.ini [DEFAULT] username_extractor=regex_search regex_username=^login: (.*)$ [*] target=$&#123;host} ^D % pass-git-helper get protocol=https ^D password=git-password username=git-username</pre> <p>Looks good to me. Now on to Git:</p> <pre class="wp-block-preformatted">% git credential fill url= ^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 '': ^C</pre> <p>Now it was just a matter to configure Git to use the new helper. This is done by setting the Git <code>credential.helper</code> option, which can be achieved with the following command executed in the top directory of the project:</p> <pre class="wp-block-preformatted">git config credential.helper '!pass-git-helper $@' # test drive % git credential fill url= ^D protocol=https username=git-username password=git-password</pre> <p>Yeah! That’s it. Now I am prepared for the next <code>git push</code> to that repo.</p> <p>The search engine btw, seems to have learned in the meantime: now when I enter my initial search arguments it presents <code>pass-git-helper</code> right away. Maybe other users benefit from this learning as well.</p> Thomas Baumgart (ipwizard)