Skip to content

Sunday, 18 July 2021

KDE DEVLOG: Fixing Plasma Corners

It’s hard to believe, but we are now half-way through Google Summer of Code. Wow, does time fly. 6 weeks ago Kalendar let you view events from your local and online accounts — now, it does a lot more than that!

This week brings quite a few big changes. We don’t have one merge request, but three!! They’re all in the polishing phase, and they each should get merged over the coming days. You can find each of the MRs here:

  1. !8: Improved event info drawer, event collection editing, attachments
  2. !9: Add undo/redo functionality
  3. !10: Add a schedule view to Kalendar

There’s a lot of ground to cover, so let’s get started:

Improving the event information drawer/sidebar

Last week, we introduced the event information component, which appears on the right-hand side of Kalendar’s window. This week, we are adding more information to this component. With these additions, the event information drawer should display all the information you need!

You can now expect to see, on top of what you could already view:

  • Fancy descriptions of the recurrence rules for your chosen event
  • Glanceable icons at the top of the event info describing the type of the event as well as if it recurs or has reminders set
  • Files attached to your calendar event, with clickable names that will open said attachment

That conveniently leads us to…

The event editor’s new capabilities

The event editor has also been upgraded to allow you to add new attachments to or remove existing ones from your chosen calendar event. This is done with a UI that is similar to and consistent with the rest of the things you can add to an event, like reminders or attendees.

Clicking the ‘Add attachment’ button pops up a dialog that, upon file selection, will attach your chosen file to your event.

The event editor now also correctly lets you change an event’s parent calendar, which means you can move an event from one calendar to another even if the event has already been created.


Several people have asked for some way to prevent potentially destructive actions such as event deletion and modification from being permanent. With MR !9, there is now a way to undo these changes in your calendar with simple undo/redo actions (or the shortcuts you’re used to — CTRL+Z and CTRL+SHIFT+Z). Now you can undo event creations, changes, and deletions… or redo them!

A new view for Kalendar!

Since its creation, Kalendar has supported a month view that provided you with a clean view of all events in a given month, much like a traditional calendar would.

We are now working on a new view that will be able to use alongside the month view. This view is a schedule view.

The schedule view lets you view your current and upcoming events in a simple and attractive list of cards. It opens on the current day so you can see what you need to take care of over the next 24 hours. This will be especially useful for mobile devices, where the month view might be a bit cramped.

The schedule view’s cards contain all the basic information you’ll need to know about these events. Name, time, recurrence, if the event is multi-day — you got it.

You can interact with this view as you’d expect to. Double clicking an empty day opens the event editor so you can quickly create a new event; you can also right-click on a day and create a new event from the context menu.

This view is still under development, and it will take some time to merge. Still, it is quite exciting and I couldn’t help but share on the progress that has been made!

Coming up next

The next big change we are looking forward to is adding support for more calendar items besides events — mainly journals and to-dos. This should make Kalendar a much more versatile productivity tool, though it will require some wrangling behind the scenes to get everything working well.

Is there anything you’d like to see added to Kalendar? Get in touch! I’m on Matrix.

Saturday, 17 July 2021

Hi everyone, this is my 3rd blog post talking about my work during Google Summer of Code 2021.

Programming Maze Activity

This activity teaches to program Tux to find the fish using simple instructions like move forward, turn left or turn right, it has been created by Aman Kumar Gupta.

It consists of ten levels in which:

  • The first 5 levels is about having a Main Function where the instructions will be executed in order until there is no instructions left, or until Tux reaches a dead end or when the tux reaches the fish.
Programming Maze (Main Function)
  • The last 5 levels is about having Procedure area which stores a set of instructions which can be used in the Main Function.
Programming Maze (Procedure)

Supporting Loops in Programming Maze

Last two weeks, I was working on extending programming maze activity to support loops as well as procedures, I have added a loop area same as it is done with the procedure area.

The loop area stores a set of instructions which can be executed several times by setting a loop number for it.

This is done by:

  • Implementing a new instruction called Loops, it contains a ListModel in which instructions are stored in, and it has a loopCounter as a property which indicates how many this set of instructions will be executed.
  • Adding a loop counter initialized by 1, which can be decremented or incremented to reduce the number of instructions needed by Tux to reach its goal.
  • Adding an option to use or not use Procedures
  • Adding datasets for the maze displayed when using the loop area.
  • Modifying TutorialBase.qml to support loop tutorial instructions.
Programming Maze (Loops)

What’s next ?

Supporting loops in programming maze is about to be finished, I am waiting for mentors’ reviews and their new suggestions and ideas which make the activity more powerful, also it is suggested to use enum for the instructions used in the activity, there are 2 methods for implementing enum values and they are currently being discussed to select the best solution.

I would like to thank the GCompris community for providing me this amazing opportunity. Open Source contributions at GCompris helped me a lot in enhancing my coding skills and soft skills as well.

Special thanks to my mentors. It was a great learning experience for me to work with them during phase one.

Looking forward for an exciting phase two!

Thanks for reading.

A *loooong* conversation with Jeri Ellsworth, self-made inventor, chip designer, AR entrepreneur and keynote speaker at Akademy 2021. In this chat we cover her career as a Silicon Valley mover and shaker, women in tech, getting to grips with KDE software, and car-racing. Check out [Jeri's keynote at Akademy 2021](

Big big news today: Valve has announced the Steam Deck–a handheld gaming device running KDE Plasma under the hood! This is a big deal, folks. By using a Linux-based OS, Valve is hugely improving the gaming space on Linux, (eventually, hopefully) removing a blocker for a lot of people. And by running KDE Plasma, tons of people will gain exposure to our software when they use the device docked with a monitor, keyboard, and mouse–because yes, you can do that! This thing is a real computer and can be used like one too!

I’m really excited for the Steam Deck, and I see it as evidence that my plan for KDE World Domination is both achievable and in progress. We are going to get KDE software onto every device on the planet, folks!

Full disclosure: I worked (and am still working) on QA for the KDE software side of this project

In addition to that very exciting piece of news, KDE contributors continued plugging away on the usual crop of cool stuff:

New Features

System Monitor and sensor widgets can now display load averages for many sensor types (David Redondo, Plasma 5.23)

Bugfixes & Performance Improvements

Dolphin no longer sometimes crashes when hovering the cursor over the “Activities” item in the context menu (Harald Sitter, Dolphin 21.08)

Gwenview and Dolphin no longer crashes on launch if DBus is not available (Alex Richardson, Gwenview and Dolphin 21.08)

Okular no longer sometimes fails to display FictionBook books (Yaroslav Sidlovsky, Okular 21.08)

Improved the reliability of sorting in Dolphin when folder sizes are using real on-disk sizes (Christian Muehlhaeuser, Dolphin 21.08)

Empty folders in the trash now display the placeholder text “Folder is empty” instead of “Trash is empty” (Jordan Bucklin, Dolphin 21.08)

In the Plasma Wayland session, KWin no longer sometimes crashes when unplugging or re-plugging certain external displays (Xaver Hugl, Plasma 5.22.4)

The ksystemstats daemon (which provides sensor data to System Monitor and the various sensor widgets) no longer crashes on launch for some people with certain hardware (David Redondo, Plasma 5.22.4)

Info Center now displays correct information about non-x86 CPUs (Harald Sitter, Plasma 5.22.4)

KWin’s DRM pipeline has been completely overhauled to offer far-reaching improvements, such as faster speed and startup time, automatic recovery from certain driver bugs, and a modernized infrastructure to make future improvements easier (Xaver Hugl, Plasma 5.23)

When using Plasma’s optional systemd startup feature, KWallet now unlocks properly when it would otherwise be able to (e.g. the wallet is named “kdewallet”, its password matches the login password, and all the necessary PAM bits have been set up properly) (David Edmundson, Plasma 5.23)

When using Plasma’s optional systemd startup feature, the Baloo file indexer now starts up correctly (S Page, Plasma 5.23)

Info Center now shows a placeholder message when the Energy page would be blank, instead of, well, a blank page (Harald Sitter, Plasma 5.23)

In the Plasma Wayland session, left or right-clicking on an app’s System Tray icon no longer causes that app’s icon to start bouncing near the cursor as if it were being launched (David Redondo, Plasma 5.23)

Slightly reduced the resource usage for all QtQuick-based KDE desktop software (Aleix Pol Gonzalez, Frameworks 5.85)

Selecting a custom app/binary in the System Settings Default Applications page now works (David Edmundson, Frameworks 5.85)

When using a custom Plasma theme that lacks graphics for a UI element that Breeze does have graphics for (e.g. the header bar thingy that you see at the top of a lot of applets and notifications), the Breeze theme graphic is no longer inappropriately used anyway (Aleix Pol Gonzalez, Frameworks 5.85)

User Interface Improvements

Thumbnail previews now respect the scale factor and always look sharp and crisp (Méven Car, Dolphin 21.08)

Kate now ships by default with a session, which means that all of its session-specific features like automatically remembering open documents get enabled by default (Michal Humpula, Kate 21.12)

When showing arrows in the scroll tracks, the arrows are now always visible, rather than only being visible when hovering the cursor over the track (Jan Blackquill, Plasma 5.23)

In the Plasma Wayland session, the virtual keyboard state’s enablement/disablement status is now remembered when you restart the system (Xaver Hugl, Plasma 5.23)

System Monitor now exports a global menubar so that those of you who use a Global Menu applet can find things there just as you expect (Felipe Kinoshita, Plasma 5.23)

Buttons for sensors in System Monitor’s customization UI now look better (Noah Davis, Frameworks 5.85)

Traditional in-window menubars in QtQuick-based KDE apps now look like they do in other apps (Janet Blackquill, Frameworks 5.85)

…And everything else

Keep in mind that 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, where you can find blog posts by other KDE contributors detailing the work they’re doing.

How You Can Help

Have a look at 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.

Hey everyone !

I have recieved the Phase 1 evaluation from the mentors . For the Phase 1 I planned to implement two new features in the Reference Image Tool. Most of the work for them with updating the transformation for Pinned Reference Images Layer and the Crop in Reference Image is complete .

1. Pin Reference Images

Reference Images and its layer in Krita is a sub-class of vector shapes (the KoShape/flake in KDE can be used to wrap text or images etc) . This was difficult in terms of the individual shapes cannot have different transformation and shapes are objects which beongs to the document so they are transformed with the document. So when the canvas is modified with rotation , Pan or Zoom it updates the QPainter transformation everywhere including the reference image tool . But since Reference Image Layer are also a type of shape Layer so its transformation is calculated with the KisShapeLayer transformation as well . This way the image and canvas transformation can be applied on the reference images.

I have implemented both of these to get it working with Pinning but there’s a bit difficulty on unpinning the Layer which needs to take the same transformation ignoring the intermediate change done during the Pin operation , this is still work in progress .

2 Integrate Crop

Second feature was allowing reference images to be cropped in krita easily with the sliders and the handles directly. For this it needs to allow the handles to be manipulated with the new decoration and connecting those options with the UI . Finally adding an undo step with KUndo2Command to make the crop non destructive . This part is somewhat done except of some minor tweeks & polish left .

Here is gif for the feature also

Now for the second phase , I plan to add Syncing and updating the reference images from its file path so it always renders the updated image . This can be done with the QFileSystemWatcher class in Qt . There is a wrapper for this in Krita already which is used
for File Layer .

Cheers & Thanks for reading :)

Friday, 16 July 2021

I just wrote about a simple and straightforward way to bring KDE Plasma Desktop to a VirtualBox guest with FreeBSD. After a bunch of package installations and a bit of system-configuration tweaking – it can be condensed into two commands if you like – there’s a running KDE Plasma Desktop. This post examines some subsequent tweaks.

I mentioned “totally black screen after SDDM login”, that already had a FreeBSD PR, which I’ll tackle today.

I was asked if my installation had included the VirtualBox guest additions for FreeBSD. I didn’t mention them in my blog post, so no, I did not install them. Installing them is a real hazard to sanity and stability, though.

Installing VirtualBox Guest Additions

It’s simple enough, to install the additions and enable them:

pkg install virtualbox-ose-additions
sysrc vboxguest_enable="YES" vboxservice_enable="YES"

Then, for instance, reboot (you don’t have to, but those are short works-always instructions).

Not that video driver

VirtualBox error notification from Plasma
VirtualBox error notification from Plasma

With the system configured as described previously, it has VMSVGA as graphics controller and 3D Acceleration enabled. That works nicely before guest extensions, but the screen isn’t resizable, and is permanently stuck in 1024x768 mode. There might be an internal setting you can fiddle with. But after guest additions are installed, SDDM comes up as 800x600. Smaller than before! Um, ok.

Problems start when logging in:

  • a non-wheel user (e.g. a normal user not able to su root) can log in, but will be spammed to death with notifications that the guest additions do not work. Eventually, kwin will be overwhelmed by thousands of notifications and die.
  • a wheel user can log in from SDDM, and is greeted by the KDE Plasma splash screen, which then hangs after a couple of seconds. An ACPI shutdown can be used; the machine isn’t totally wedged, just the display is toast.

If we switch up the display configuration, using VBoxSVGA and no acceleration (but with the guest additions):

  • SDDM still comes up as 800x600
  • a non-wheel user still gets spammed to death, but the display is resizeable
  • a wheel user can log in and the display is resizable. If you pick View > Virtual Screen 1 and choose a size, this will be obeyed. Changing the window size (e.g. dragging a corner of the VirtualBox screen) can lead to performance issues at assets need to be re-rendered for 1121x999 screens or whatever weird-ass size you end up with. But once it’s settled down with a screen size, things are fine.


If you want a larger display (than 1024x768, and possibly resizeable) for KDE Plasma on FreeBSD in a VirtualBox:

  • you must add the users in the virtualbox to the wheel group
  • you must use VBoxSVGA as display adaptor.

Better late than never, Kdenlive 21.04.3 for Windows is out. There is also a hotfix for the AppImage version fixing missing Lumas.

Let’s go for my web review for the week 2021-28.

83% of Developers Suffer From Burnout, Haystack Analytics Study Finds

Tags: tech, burnout

The rampant burnout epidemic in software engineering keeps growing apparently. More workload, more impatient stakeholders and less quality… With software being everywhere nowadays this is a huge problem to tackle.

Risk Assessment of GitHub Copilot · GitHub

Tags: tech, ai, machine-learning, github

I think this is the best analysis about GitHub Copilot so far. Clearly using it in production today carries lots of risks. It might improve in the future but only marginally and likely with quite some effort. Not sure it’ll pass the threshold to be anything else than a funny toy.

A privacy war is raging inside the W3C - Protocol — The people, power and politics of tech

Tags: tech, web, privacy

Or why we can’t expect much from the W3C regarding privacy… I wonder the chances of this kind of entrenched debates actually just killing the W3C…

Martin Heinz | Functools - The Power of Higher-Order Functions in Python

Tags: tech, programming, python

A nice list of interesting nuggets from the functools python module.

Bye for now!

KDE Tips and Tricks for System Tray, Screenshots and More!

KDE Tips and Tricks for System Tray, Screenshots and More!