Skip to content

Welcome to Planet KDE

This is a feed aggregator that collects what the contributors to the KDE community are writing on their respective blogs, in different languages

Wednesday, 6 July 2022

"VNC" (or Virtual Network Computing) compatibility has a long history in Qt, and we are now improving this story with Qt 6.4.



Spanish manufacturer (and KDE patron) Slimbook has just released their new KDE-themed Slimbook ultrabook.

The KDE Slimbook 4 comes with a Ryzen 5700U processor and KDE's full-featured Plasma desktop running on KDE Neon. It also comes with dozens of Open Source programs and utilities pre-installed and access to hundreds more.

The KDE Slimbook 4's AMD Ryzen 5700U processor is one of the most efficient CPUs for portable computers in the range. With its 8 GPU cores and 16 threads, it can run your whole office from home and on the go, render 3D animations, compile your code and serve up the entertainment for you during down time.

The Slimbook starts Plasma by default on Wayland, the state-of-the-art display server. With Wayland, you can enjoy the advantages of crisp fonts and images, framerates adapted to each of your displays, and all the touchpad gestures implemented in Plasma 5.25.

Talking of displays, the USB-C port, apart from allowing charging, comes with video output, letting you link up another external monitor. Another nifty detail is the backlit black keyboard with the Noto Sans monographed keys, the same font used on the Plasma desktop.

Remember that with every purchase, KDE receives a donation from Slimbook and KDE Community members get a generous discount!

Check out here complete details, specs and benchmarks.



Tuesday, 5 July 2022

KDE Dev-Vlog 4: Too Much Spectacle!

Sometimes it is the smallest thing that makes the biggest difference for our users. This video shows the cause and the thoughts behind such a small change on a small application. Such a change would normally never be sensationalised but then this video came along!

Monday, 4 July 2022

KDE PIM is the set of applications that helps you manage your email, contacts, appointments, tasks and more.

In the months since the KDE PIM March-April report there have been two patch releases for Kontact, and over 1300 changes made by more than 30 contributors have been integrated. Here are some of the highlights.

General Improvements

Laurent continued working on the Qt6 support. The KDE PIM packages are now compiling with Qt6.

KAdressBook with Qt6
AKregator with Qt6
Kleopatra with Qt6
Sieve Editor with Qt6

Kleopatra

Ingo worked mainly on improving the usability and accessibility of the certificate manager Kleopatra over the last two months:

  • Generating a new OpenPGP certificate is now possible on a Full HD display with 400 % magnification. (T5969)
  • Generating a new OpenPGP certificate has been made more accessible by replacing the QWizard-based dialog with a few separate dialogs. (T5832)
Certificate Creation - Step 1
Certificate Creation - Step 2
Certificate Creation - Step 3
  • The tool bar in the main window is now accessible with the keyboard. (T6026)
  • Links embedded in text labels now behave like normal links you would find on the web. This means that accessibility tools (such as screen readers) will read them as such, instead of like selected text. (T6034)
  • Labels that receive the keyboard focus are now marked with a focus frame. (T6036)
  • The accessibility of the Certificate Details dialog has been improved. (T5843)

Moreover, new features were added:

  • The Certificate Details dialog now allows refreshing an individual certificate from the configured keyserver and via Web Key Directory. (T5903)

Certificate Details dialog with an accessible focus indicator
Certificate Details dialog with an accessible focus indicator

  • Administrators can now specify the minimum and maximum validity of newly generated keys. (T5864)

And a few smaller things were added or fixed:

  • A few operations that are not possible for keys stored on smart cards, e.g. creating a backup of the secret key or changing the passphrase used to protect the secret key, are now disabled if a smart card key is selected to avoid weird error messages. (T5956, T5958)
  • Felix Tiede added a feature to publish a GPG key at a WKS-enabled mail provider.

As this requires Kleopatra to operate with Akonadi to evaluate a mail- transport for a GPG key user id and then send a MIME mail message, this feature is only available on systems where Akonadi is installed prior to building Kleopatra. On all other systems it is unavailable.

Kontact

Glen fixed a few issues in the settings for the Summary View of Kontact:

  • The Special Dates section obeys the check boxes for showing birthdays and wedding anniversaries of contacts, and for showing anniversaries in other calendars.
  • The check box for hiding open-ended to-dos in the Pending To-dos section is checked correctly.

KOrganizer

Glen also worked on the task view of KOrganizer.

  • Right-clicking on a task’s start date now displays a date editor widget which you can use to change the start date. Right-clicking the due date still edits the due date. If a change to either date would cause the start date to be later than the due date, the other date is adjusted. Additionally marking a task as complete in the Summary View of Kontact, will no longer cause a crash.
  • KOrganizer now uses the “stand-alone” form of month names in appropriate places (“June”, as opposed to “June 1”). In some languages the two forms are different.
  • In the Incidence Editor, unchecking the “Due” check box of a recurring to-do now accomplishes something.
  • If a yearly-recurring item has exceptions, the Item Viewer lists the exceptional years.

KMail

  • Laurent fixed a few memory leaks in KMail and he started working on integrating Message Disposition Notification (MDN) directly into the viewer instead of in a separate dialog. This will allow sending read receipts more easily.
  • He also fixed marking more than 1000 emails as read at the same time (BUG 453969).
  • Sandro Knauß worked on refactoring the key expiry checker in preparation for showing it in a non-blocking dialog in the future.
  • They also made it possible to overwrite the encoding of the PGP inline messages.

Pim-data-exporter

  • The data importer and exporter received a lot of bug fixes that will improve the import of maildir resource and the collectio attribute.

Calendaring

There are now Akonadi and Android plugins for KCalendarCore’s platform calendar access API. This isn’t aimed at calendaring applications like Kalendar or KOrganizer, but at apps for which just basic calendaring access is required. See the separate blog post for details: Android Platform Calendar Access.

KDE Itinerary

Please see the dedicated summary blog post: KDE Itinerary April May

KAlarm

  • David Jarvie fixed a crash in the font chooser after deselecting a default font (BUG 453193)
  • The fade controls won’t be displayed if the current phonon backend doesn’t support fade. And sound files are now correctly played when played previously with fade.

Kalendar

  • Carl worked on an address book integration for Kalendar. This now includes a contact viewer that more or less displays all the contact information, a basic contact editor and also handling for contact groups.
  • Also included is a Plasma applet and QR code for sharing contacts. More on this can be read on my previous blog post.
Contact Viewer
Plasma Applet searching for a contact
Plasma Applet
Editor
  • Claudio made it possible to show the parent and sub-tasks in the incidence drawer. This allows you to navigate between related tasks in the normal calendar views, and not only the task view.

Kalendar task
Kalendar task

  • Claudio also put a lot of effort into reducing the technical debt in Kalendar. He simplified the model for the month view, reorganized our QML files into subfolders. This should help us when adding more features in the future.

Help us make Kontact even better!

Check out some of our open junior jobs! They are simple, mostly programming-focused tasks, but they don’t require any deep knowledge or understanding of Kontact, so anyone can work on them. Feel free to pick any task from the list, then get in touch with us! We’ll be happy to guide you and answer all your questions. Read more here…

A script element has been removed to ensure Planet works properly. Please find it in the original post. A script element has been removed to ensure Planet works properly. Please find it in the original post.

Kimpanel is a plasma applet that uses plasma and dbus to display the input method popup window. In X11, people who want to have native plasma theme based input method window may use it to provide a nice integration with plasma.

So you might ask, we already having kimpanel in Plasma desktop, what’s point to have this feature in Fcitx 5?

Well, if you use the wayland.. you will notice that kimpanel does not work properly in terms of window positioning. The input window is a small popup window used by input method. It needs to be shown at the cursor position in order to make user eye focused at the point where they are typing. This popup window is critical for CJK input method users.

And you might ask again, why can’t we just fix kimpanel? Unfortunately, it’s hard to fix.

There are quite a few technical difficulties behind this. Kimpanel applet currently runs in plasmashell. Unlike the gnome implementation (also maintained by me, BTW :D), running within the compositor, Plasma’s kimpanel right now have no ability to obtain the information of other windows nor to move the window position freely. Kimpanel requires following things to make it work:

  1. If the client cursor position is absolute, move it to the position.
  2. If the client cursor position is relative, move it to current window top left corner + offset.
  3. For text-input client, there’s no position sending to input method, and compositor need to help input method to move the popup.

Unfortunately, to implement this support in wayland is really hard and would involves lots of changes in KWin. That somehow defeat the point to all the works we have done for zwp-input-method-v1 in KWin, because zwp-input-method-v1 protocol already has a concept of popup surface (need to be a surface from the same input method process). So I never try to do that due to the reasons above. Only until recently, I learned that KWin script can actually show real QML items, so I make a prototype that runs kimpanel within the KWin. You hit lots of KWin issues during writing the prototype, including kwin crash, flicker, etc. Luckily we are making progress with the help from KWin developer on unblocking the possibility of porting kimpanel to kwin (only for the popup, the action panel will still be in plasmashell). But until all the known issue are resolved, I can’t really submit the change the implementation of kimpanel from plasma-desktop to kwin script otherwise it will be totally broken. Also, we’d like to only use this on wayland, because for X11, expert user may choose not to use kwin at all.

Back to the original topic, Fcitx 5 is hardcoded to use client side input panel on KDE Wayland. The client side input panel always uses the classic ui theme (im module load classicui theme and render it). If kimpanel is allowed to be used wayland right now, the popup won’t show at the right position. In order to use Plasma theme, we need some support in the classicui addon of Fcitx 5. I wrote a simple tool to automatically generate a fcitx theme from plasma theme. I used to have such a tool around fcitx 4 era. This time, it’s even better, because we integrate the support of this tool in Fcitx 5 natively. If the Plasma theme is selected in classicui, it will run a small daemon, keep monitoring the plasma theme change and automatically regenerate the theme when needed. It can also be used as an standalone tool to generate the theme for one-time.

To use this feature, just get the latest stable version of fcitx5 & fcitx5-configtool. Simply choose “KDE Plasma (Experimental)” as Theme in fcitx5’s classic ui configuration, and that’s it.

Saturday, 2 July 2022

This week we’ve mixed in a lot of user interface polishing with our usual assortment of bugfixes!

15-Minute Bugs Resolved

Current number of bugs: 57, down from 59. 0 added, 1 found to already be fixed, and 1 resolved:

When using screen scaling with the on-by-default Systemd startup in Plasma, the wrong scale factor is no longer sometimes used immediately upon login, which would cause Plasma to be blurry (on Wayland) or everything to be displayed at the wrong size (on X11) (David Edmundson, Plasma 5.25.2)

Current list of bugs

User Interface Improvements

Spectacle now displays the global shortcuts used to open it with various capture modes right there in the combobox used to select a capture mode! (Felix Ernst, Spectacle 22.08):

While annotating a screenshot in Spectacle, the window now resizes itself to accommodate the screenshot at its full size, so you don’t have to pan and zoom to see the whole thing (Antonio Prcela, Spectacle 22.08)

Webcams no longer inappropriately appear in Skanpage’s list of scanners (Alexander Stippich, Skanpage 22.08)

In System Settings’ Colors page, the last custom accent color you chose is now remembered after you switch to a wallpaper- or color-scheme-based accent color and then back to a custom one (Tanbir Jishan, Plasma 5.26)

Middle-click now closes windows in the Desktop Grid effect, just like in the Overview and Present Windows effects; now they are all consistent (Felipe Kinoshita, Plasma 5.26)

The wording for the desktop icon arrangement setting has been tweaked to be clearer and more comprehensible (Jan Blackquill, Plasma 5.26):

Improved the ordering of KRunner search results by giving lower weight to exact matches for extremely short search terms (Alexander Lohnau, Plasma 5.26)

System Settings’ Autostart page now warns you if you try to add a login or logout script that is not executable, and it even gives you a big friendly button you can click on to fix it (Nicolas Fella, Plasma 5.26):

When you add a new network connection, it is now connected automatically after you close the dialog to enter its details (Arjen Hiemstra, Plasma 5.26)

The full-screen QR code view that the Networks widget can show can now be closed using the keyboard, and also has a visible close button in the corner (Fushan Wen and me: Nate Graham, Plasma 5.26)

The search field in Kicker is no longer slightly and irritatingly misaligned (me: Nate Graham, Plasma 5.26)

The current cursor and scroll positions in the Notes widget are now remembered after you restart the computer (or just Plasma) (Ivan Tkachenko, Plasma 5.26)

You can now configure Task Manager widgets to not automatically consume all available space on their panel, which lets them be placed immediately to the left of something else, like a Global Menu widget (Yaroslav Bolyukin, Plasma 5.26)

The Window List widget’s text display is now optional (but remains on by default) on a horizontal panel, allowing people to go back to the old style from Plasma 5.24 and earlier if they preferred it (me: Nate Graham, Plasma 5.26)

Bugfixes & Performance Improvements

Elisa’s sidebar should no longer sometimes take you to the wrong page when you click on various items in it under certain circumstances (Yerrey Dev, Elisa 22.04.3)

In the Plasma Wayland session, System Settings’ Tablet Mode page no longer crashes the second time you open it (Nicolas Fella, Plasma 5.24.6)

Fixed one of the apparently many ways that a panel on an external screen could disappear when that external screen is disconnected and reconnected (Fushan Wen, Plasma 5.24.6)

Grid items in the Kickoff Application Launcher now show relevant tooltips on hover, as originally intended (Noah Davis, Plasma 5.24.6)

Fixed one of the ways Plasma could crash right after login on a laptop with an external HDMI screen connected (David Edmundson, Plasma 5.25.2)

In the Networks widget, the “Show QR Code” button no longer inappropriately appears for networks that don’t support QR code discovery, like wired networks and VPNs (Nicolas Fella, Plasma 5.25.2)

In the Plasma Wayland session, changing the screen resolution to something not officially supported by the screen no longer sometimes causes System Settings to crash (Xaver Hugl, Plasma 5.25.3)

In the Plasma Wayland session, activating windows using a touchscreen in the Overview, Present Windows, and Desktop Grid effects once again works (Marco Martin, Plasma 5.25.3)

The password field in the lock and login screens is once again cleared and focused when you enter the wrong password (Derek Christ, Plasma 5.25.3)

When using Plasma, KWin effects no longer play at the wrong animation speed if in the past you ever adjusted the speed of animations in the System Settings Compositing page outside of Plasma (David Edmundson, Plasma 5.23.3)

It’s once again possible to manually open more than one instance of kcmshell (Alexander Lohnau, Plasma 5.25.3)

Fixed a variety of UI glitches in various non-default Task Switcher visualizations (Ismael Asensio, Plasma 5.25.3)

Okular now appears as expected in the “Open With…” dialog shown by sandboxed apps (Harald Sitter, Plasma 5.26 with Okular 22.08)

The list of recent documents in the GTK file dialog is no longer inappropriately cleared after using certain KDE apps (Méven Car, Frameworks 5.96)

When creating a new file using the common “create new file” menu items, any custom file extension you use in the filename is no longer replaced with the default one (Nicolas Fella, Frameworks 5.96)

Changes not in KDE that affect KDE

When you enable or disable one screen in a multi-screen arrangement, the desktops for the new arrangement now have the correct wallpaper (Fushan Wen, Qt 6.3.2, but it has been backported in the KDE Qt patch collection)

…And everything else

This blog only covers the tip of the iceberg! Tons of KDE apps whose development I don’t have time to follow aren’t represented here, and I also don’t mention backend refactoring, improved test coverage, and other changes that are generally not user-facing. If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.

How You Can Help

If you’re a developer, check out our 15-Minute Bug Initiative. Working on these issues makes a big difference quickly!

Otherwise, have a look at https://community.kde.org/Get_Involved to discover ways to 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.

This week I mainly programmed random things and haven’t finished any of them, some stuff did get merged though.


KWin

In KWin I fixed this bug, so now the desktop grid effect uses the middle mouse button to close windows making it consistent with the other window effects (overview, window view).

The previous behavior (of pinning windows to all desktops) assigned to this button was moved to the right mouse button.

Commit


Francis

Haven’t worked too much on Francis this week but Magno Lomardo has improved the flatpak build instructions! Thanks Magno!

Commit


Contributions are Welcomed

If you’re interested in helping me with my little projects I would love any help, be it with code or with bug reporting.

Thank you for reading! :)

Friday, 1 July 2022

In the last blog, I gave a laconic overview of my tasks for GSoC 2022.

The main features were those of adding datasets and improving the UI/UX components of the activity. The functioning of the Delegate Model in QML is one of the major takeaways from this week’s work. 

Apart from this, I also found it a tad bit challenging to maintain the smooth flow of communication with my mentors as the implementation of each feature begins with a tiny change in a day, which might not seem considerable to us as rookie contributors, but for the mentors it is significant. As one of my mentors, Johnny, rightly said, ” You never make a small change. You make a change, and we need to know what it is. “

 

The Three Zones

Zone 1: Plain Text Zone

Zone 2: The Selector Zone

Zone 3: Answer Zone

<GIF>

The plain text zone gives the view of the whole exercise, the selector zone contains the flickable items, and we can now select a question by simply tapping on it. The selected question is highlighted too, and the answer zone displays the selected row in an enlarged manner.

Accessing index in List Model

Accessing Index in List Model

A brute force way to get the index would have been to manually maintain it for every item.

However, if we exploit the concept of delegation modeling, our task can become much more convenient. Qt offers a built-in separation into model, view, and delegate (MVC) components and one auxiliary, a delegate. A delegate is the QML object that a user wants to display. Data is fed into the delegate through named data roles, which the delegate may refer to. Thus, by importing QtQML models, we defined an index property which is attached to each instance of delegate and thus can be used to attain the index for each item.

Major Learnings

  1. MouseArea for selecting the texts by tapping on it
  2. Functioning of QtQml Models

Challenges

  1. maintaining the genericity of the code so that it can be reused.
  2. to keep the structure of the zones intact with different numbers of digits.
  3. the concept of delegate and why we cannot get an index from a list model while trying to extract the index of items. This kept me baffled for quite some time.

What is Around the Corner?

We need to make the code more generic. Some interesting soundtracks can make the experience more worthwhile. Apart from this, the accurate presentation of data sets is also in queue. So, wait for it!

Let’s go for my web review for the week 2022-26. It’ll be the last one for a little while, I’m taking an extended break, other reviews will follow after that.


Facebook Brands Jane’s Revenge as Terrorists

Tags: facebook, censorship, politics

Their moderation rules keep being opaque, random and then… dangerous. Especially telling is this quote: “Ukrainians get to say violent shit, Palestinians don’t. White supremacists do, pro-choice people don’t.” They privately get to pick who they like or not.

https://theintercept.com/2022/06/28/facebook-janes-revenge-abortion-roe-wade-meta/


Give Up GitHub: The Time Has Come!

Tags: tech, github, copyright, licensing, machine-learning

There’s really a problem with GitHub overall… and the Copilot move is definitely worrying. Not Copilot by itself really but how they just don’t want to tackle the questions it raises.

https://sfconservancy.org/blog/2022/jun/30/give-up-github-launch/


GitLab CEO: ‘Remote work is just work’ | Fortune

Tags: tech, gitlab, remote-working, management

It’s great to see GitLab be such a public and outspoken champion of remote work. Let’s hope more organizations walk the path.

https://fortune.com/2022/06/21/gitlab-ceo-remote-work-just-work-careers-success-leadership-pandemic-sid-sijbrandij/


Run Windows, macOS and Linux virtual machines with Quickemu

Tags: tech, virtualization

Looks like a neat little project for easier desktop VMs management. Worth trying I think.

https://rk.edu.pl/en/run-windows-macos-and-linux-virtual-machines-with-quickemu/


Introduction to OpenRewrite - OpenRewrite

Tags: tech, java, refactoring

Looks like an interesting tool to port code to newer APIs… too bad this seems to be very much Java focused only.

https://docs.openrewrite.org/


What’s new in Python 3.11? - DeepSource

Tags: tech, python

OK, this looks like an interesting release, next to the performance improvements there are quite a few neat new features as well.

https://deepsource.io/blog/python-3-11-whats-new/


Don’t let dicts spoil your code - Roman Imankulov

Tags: tech, programming, python, type-systems, data-oriented

Good set of advices around dicts. This is Python centric but some of it applies to other languages as well. Mind the lack of anti-corruption layer.

https://roman.pt/posts/dont-let-dicts-spoil-your-code/


Things You Should Know About Databases

Tags: tech, databases, architecture

Nice primer of important characteristics of databases and transactions. With doodles so I’m biased. ;-)

https://architecturenotes.co/things-you-should-know-about-databases/


Write Better Commits, Build Better Projects | The GitHub Blog

Tags: tech, git, codereview, craftsmanship

This explains fairly well the reason why I spend so much time doing git rebases or push for more readable history in branches submitted for reviews. It helps a lot with the reviews and with finding root causes of issues later on.

https://github.blog/2022-06-30-write-better-commits-build-better-projects/


Prioritization is a Political Problem as Much as an Analytical Problem

Tags: tech, product-management, engineering, business

Very good set of advices in my opinion on how to prioritize product work in an organization. It very well accounts for the natural tension between sales/marketing and product/engineering.

https://www.mironov.com/pri-politics/


Questions to ask the company during your interview

Tags: hr, interviews

Since I keep telling candidates interviews are also for them to know the company before hand, I welcome this kind of list. I’d like to have more candidates ask some of that. :-)

https://github.com/viraptor/reverse-interview/


The Last Human – A Glimpse Into The Far Future - YouTube

Tags: scifi, philosophy, surprising

Interesting thought experiment… Let’s not screw up indeed and give a chance to loooots of people.

https://www.youtube.com/watch?v=LEENEFaVUzU



Bye for now!

Thursday, 30 June 2022

Community Bonding Period

During this period, I prepared the mock-ups for the activities “10’s complement” and “Grammatical analyze.” Based on my mentor’s reviews the mock-ups were modified further.

The design for other levels of 10’s complement can be found here.

This bonding period is provided so the newcomers can get familiar with mentors and projects. As I’ve contributed for a few months now, I am comfortable with mentors and a little less confident with the project. So I decided to increase my understanding by finding the sub-tasks in other activities I needed to complete 10’s complement and Grammatical analyze.
I also contributed to one another issue. Also, during this time, my first activity got merged (Left and Right Click Training which was later renamed as Mouse Click Training).

Current Progress

The first activity is going to be 10’s complement. This activity is divided into three separate sub-activities. The base logic is the same, but the implementation and difficulty of these activities are different. So for a better user experience, the activity is divided in this way. (here)

Level 1: Sub activity 1

In Sub-Activity 1, the user places the 10’s complement of the given number by, first clicking the number card inside the number container (left side pink box), then clicking on the question mark card to which user wishes to replace with.

Currently, the containers and the cards are implemented using dynamic size so that it is adaptable to different screen sizes.

Challenges faced and learnings

When I first started, I struggled with “what to do” and “how to do”, and now I struggle with “how to do” (mostly). I think earlier, I didn’t know where to find the solution to my problem, but during these months of contributing, one thing I’ve learned is that GCompris is a massive project with so many activities in it. Anything we are trying to do is already done in some way or the other we just have to find out “where”.

While implementing the replacing the number card with a question mark card, I was unable to implement this feature. What we are doing is, after the successful replacement of the card, the number card should be gone. In simpler terms, to change the visibility of the number card to “false” when we click on the question mark card. But after a few hours of struggle, it was solved. The solution is the number card is a separate component shown with the help of DataModel. First, we find the index of the card in the model we wish to change, and then using the setproperty function, we change the visibility property of the component to false on successful replacement.

What’s next?

  • Implement the next, reload, and okay buttons and make them functional.
  • Add datasets for all the levels in sub-activity 1.
  • Begin with sub-activity 2.