Skip to content

Monday, 12 May 2025

Hello KDE Community!

My name is Yelsin 'yorisoft' Sepulveda. I'm an engineer with experience in DevOps, Site Reliability, and Cloud Computing. I joined KDE as part of the GSoC application process early last month and have been contributing to a few projects ever since. Miraculously, my GSoC proposal has been selected! Hallelujah! Which means over this summer I'll be working on implementing game controller input recognition into KWin.

About the Project

Currently, applications directly manage controller input, leading to inconsistencies, the inability of the system to recognize controller input for power management, and unintentionally enabling/disabling "lizard mode" in certain controllers. This project proposes a solution to unify game controller input within KWin by capturing controller events, creating a virtual controller emulation layer, and ensuring proper routing of input to applications. This project aims to address the following issues:

  • System Power Management: KWin lacks controller input recognition, preventing activity reporting and causing premature system sleep.
  • "Lizard Mode": When KWin opens a file descriptor for certain gaming controller devices (like the Steam Controller and Steam Deck Controller), this disables those controllers' lizard mode (keyboard and mouse input emulation), since the controller detects that a program is now handling input?even if KWin isn't actively using it.
  • Decentralized Input Handling: Individual application input handling results in inconsistent input parsing and limited remapping capabilities.

Project Goals

The primary goals of this project are to:

  • Enable KWin to capture and process game controller input events.
  • Implement a virtual controller emulation layer within KWin.
  • Route physical controller input 1:1 to emulated devices, including haptics.
  • Prevent system sleep during active controller use.
  • Manage "lizard mode" for compatible controllers.
  • Establish a foundation for future features: global remapping, haptics settings, and advanced Wayland protocols.

About Me

I often spend my time surfing the internet learning new things, spending quality time with family and friends, or picking up new hobbies and skills-such as music! You could say I'm someone who likes to jump between multiple hobbies and interests. As of late, I'm learning a new snare solo and how to build an online brand.

I started my career as a DevOps Engineer and SRE where I learned tools like Jenkins, Docker, and Terraform. I then transitioned to a Solutions Architect role where I worked with many different cloud technologies and helped other companies design their cloud architecture. I am relatively new to contributing to open-source projects but have been an avid user of Linux and open-source tools for over 4 years, and am committed to learning and growing in this community. Check me out on GitHub.

Sunday, 11 May 2025

Tellico 4.1.2 is available, with a few fixes.

Improvements

Saturday, 10 May 2025

I attended KDE India Conf (conf.kde.in, CKI) 2025 in Gandhinagar, Gujarat. My last and first CKI was in 2020 in Delhi. Had written a blog then.

There was a CKI last year in Pune but I was unable to attend it. So it's been 5 years. The constant from then and now is Bhushan :)

My talk

Title of the talk was "Learnings from creating an input method for KDE". My primary desktop environment since 2018 is KDE Plasma. Varnam input method was created to use in KDE. The talk was about the learnings of creating the input method.

The talk has been uploaded here: https://mirror.freedif.org/KDE/files/confkdein/2025/learnings-from-creating-an-input-method-for-kde.mp4

Emoji picker

The current way to input emoji in KDE Plasma is by copy-pasting the emoji from a window. GNOME has a better emoji input where you could open the emoji suggestions box anywhere you type and directly insert it. Behind the conference, I looked at whether this can be improved.

I tried to make an emoji input method just like Varnam. The source code is here: https://github.com/subins2000/semoji

It was partially successful, it works, but one month in I still use the KDE copy-paste one.

I later saw that one of KDE goals this year is this, "We care about your input". There is already an issue open: https://invent.kde.org/teams/goals/we-care-about-your-input/-/issues/15

This is a very core thing to Qt, so it is beyond my expertise. I'm just gonna watch in the sidelines, and meanwhile I'll survive with copy paste 🙂.

Conference

Like all other free software conferences, I met people who shared the same interests as me, so there was lot to talk about!

Rishi has done an elaborate write up about the conference, so I'm not gonna repeat things. Link to Rishi's blog.

Rishi had also brought a Steam Deck which was fun to use! A popular mainstream device that comes with GNU/Linux? That has been a dream once. That too gaming!

One thing I have to mention here is Joseph's talk on End of 10. Windows 10 is about to end its support in 2025 October 14. The newer Windows 11 requires modern hardware. This would mean millions of working devices will end up being unupgradable, and potentially e-waste.

My personal computer from 2010 to 2018 was a 2GB RAM machine. I had to use Linux Mint + XFCE + i3wm to get the maximum out of the system. Windows 8 and 10 was uninstallable in that machine.

There was a BoF on the same, and one major thing about India at least is that "if it works, then don't touch it". I've seen retail stores using Windows 7 to even Windows XP (A display in Cochin international airport). When they have a working flow, it's difficult for them to change.

Adobe Pagemaker that was deprecated in 2003 is still being used here. It works because Windows is very good in backwards compatibility. If Windows ever breaks it, maybe they'd upgrade.

My state Kerala already uses GNU/Linux widely across school, government departments etc. School students are usually given a laptop which is low-end hardware that already runs GNU/Linux. No way can these laptops and machine run Windows, even Windows 10.

Next conference

This is the second time CKI has been ogranized in Gandhinagar. I've lowkey suggested that maybe Kerala can host it next year 🤞. Last time it happened in Kerala was in 2015, that's 10 years ago!

A good place to do it would be a university. I've been helping organizing Kochi FOSS meetups for the past 2 years. There is definitely audience for the conf, it's just that where would we do it.

Let's see.

Thursday, 8 May 2025

A bugfix release for Falkon containing crash fix, general fix and wayland fixes.

  • Fix crash with bookmark toolbar (BUG: 501535)
  • Fix editing SiteSettings and Cookies permissions
  • Wayland: Fix issue that location bar can’t use input methods when locationcompleterview popups on wayland (By Signal Kirigami)
  • Wayland: Fix tooltip in tabbar (by Signal Kirigami)
Modern TableView in QML: What’s New in Qt 6.8 and Beyond

Over the years, the capabilities of QtQuick's TableView have evolved dramatically-from early custom implementations to well supported feature in Qt 6.8 and newer. In this article we explore the progression of QtQuick/QML's TableView, outline the limitations of early versions, and highlight newer features such as custom selection modes, header synchronization, and lightweight editing delegates. Check it out.

Continue reading Modern TableView in QML: What’s New in Qt 6.8 and Beyond at basysKom GmbH.

I’m thrilled to announce that I’ll be participating in Google Summer of Code 2025 with the KDE community and my mentors Claudio Cambra, Carl Schwan and Aakarsh MJ!

This summer, I’ll be working on the Merkuro suite with a focus on a project called Merkuro – Porting Away from QtWidgets.

The Challenge: Why Merkuro Needs to Slim Down

Merkuro is a KDE application suite, aiming to provide a seamless experience for email, calendaring, and contacts. At its core, it leverages Akonadi, KDE’s powerful PIM data storage framework.

Currently, many Akonadi agents and resources (the components that fetch and manage your data from various services) load their configuration dialogs using QtWidgets. While QtWidgets is a robust UI toolkit, it’s also quite “heavy.” This means these components, by default, include substantial UI code, leading to:

  1. Increased Memory Footprint: Each agent/resource can consume an extra 15-20 MiB of RAM just by including these UI elements, even when they’re not actively being configured.
  2. Performance Hindrance on Mobile: For Merkuro to truly shine on mobile devices, where resources are often constrained, this overhead is a significant bottleneck.

The goal is to make Merkuro lean, efficient, and perfectly suited for both desktop and mobile environments.

My Objective: Decoupling UI for a Lighter Future

The primary goal of my GSoC project is to refactor these Akonadi agents and resources by decoupling their configuration dialogs from their underlying logic.

The plan is as follows:

  1. Separate UI from Logic: I’ll move the QtWidgets-based configuration dialogs out of the core agent/resource code.
  2. Dynamically Loaded Plugins: These UI dialogs will become separate, dynamically loaded plugins. This means the core agent/resource can run without loading any UI code unless a host application (like Merkuro or KMail’s settings) specifically requests the configuration interface.
  3. Reduced Dependencies: By doing this, we can remove heavy QtWidgets header file inclusions from the core components. For example, we can switch from QApplication (which pulls in all of QtWidgets) to the much lighter QCoreApplication for the agent’s primary functionality.

This separation not only brings immediate benefits in terms of memory and performance but also lays crucial groundwork for the next big step: modernizing the user interface by transitioning to QtQuick/QML. With a clear segregation, future efforts can focus on building sleek, modern QtQuick UIs without wrestling with embedded QtWidgets code.

Key Deliverables: What I’ll Be Working On

Over the summer, I’ll be focusing on several key areas:

  • Refactoring Core Components:
    • Targeting specific Akonadi agents in KMail (like archivemail, mailfilter, sendlater agents) and resources in the KDE PIM Runtime (like pop3, imap, google, ews resources).
    • The main task here is to strip out embedded QtWidgets dependencies from their primary functionality.
  • Modifying Build Configurations: Updating CMake files to reflect these changes, ensuring unnecessary UI files are not compiled into the core components, and reducing overall dependencies.
  • Creating Dedicated Configuration Plugins:
    • Implementing plugin factory classes (conforming to Akonadi::AgentConfigurationBase and Akonadi::AgentConfigurationFactoryBase interfaces). This ensures that host applications can dynamically discover and load these new UI plugins.
    • Providing accurate metadata (via JSON files) for each plugin to integrate smoothly with the existing Akonadi framework.
  • Testing and Documentation: Rigorously testing all changes to verify the memory usage reduction and ensure the new plugin-based system works flawlessly on both desktop and mobile. I’ll also be documenting the changes for future developers.

Wednesday, 7 May 2025

First, credit where credit is due: the following solution was cobbled together combining both advice from Kdenlive developers and a

These past two days I attended the Qt World Summit 2025


It happened in Munich in the SHOWPALAST MÜNCHEN. The venue is HUGE,  we had around 800 attendees (unofficial sources, don't trust the number too much) and it felt it could hold more. One slightly unfortunate thing is that it was a bit cold (temperatures in Munich these two days were well below the average for May) and quite some parts of the venue are outdoors, but you can't control the weather, so not much to "fix" here.

 


The venue is somewhat strangely focused on horses, but that's nothing more than an interesting quirk.

Qt World Summit is an event for the Qt developers around the world and the talks range from showcases of Qt in different products, to technical talks about how to improve performance along others less Qt centric talks about how to collaborate with other developers or about "modern C++".

As KDE we participated in the event with a stand trying to explain people what we do (David Redondo and Nicolas Fella were more in the stand than me, kudos to them)


For following years we may need to re-think a bit better our story for this event since I feel that "we do a Linux desktop and Free Software applications using Qt" is not really what Qt developers really care about, we maybe should focus more on "You can learn Qt in KDE, join us!" and "We have lots Free [Software] Qt libraries you can use!".

 

Talks for the videos will be published "soon" (or so I've been told). When that happens the ones I recommend you to watch are "Navigating Code Collaboration" by  LAURA SAVINO, "QML Bindings in Qt6" by ULF HERMANN and "C++ as a 21st Century Language" by BJARNE STROUSTRUP, but the agenda was packed with talks so make sure to check the videos since probably your tastes and mine don't 100% align.

 

All in all it was a great event, it is good to see that Qt is doing well since we use it for the base of almost everything we do in KDE. Thanks to The Qt Company and the rest of the sponsors for organizing it. 

 


 

It has been quite a long time since I attended any KDE sprint, last sprint for me was Plasma Sprint in Valencia, Spain before pandemic and personal life got in a way. Last month I had chance to attend Plasma Sprint 2025 in Graz, Austria. This was good opportunity for me to meet some of long time contributors to Plasma Mobile like Devin Lin and Luis, as well as other Plasma contributors to discuss some of technical details about my upcoming power management work.

Monday, 5 May 2025

I'll soon start my second project supported by NLnet and the European Commission. For the first one I spent way too much time figuring out if I need to pay taxes on the funding I receive. At least value added tax does not apply! However, German tax law is not clear about income tax from what I can tell, and even writing a petition to the federal ministry of finance to clear things up still leaves me with most of the uncertainty. In any case, I did not need to pay income tax on the funding the first time around. Who knows if it will stay this way?

If you might find yourself in a similar situation one day, I strongly recommend to save yourself many hours of headaches and read my German blog post about this. Here it is: https://wordsmith.social/felixernst/wie-man-keine-steuern-auf-europaisch-geforderte-softwareprojekte-bezahlt

I don't want to translate German legalese into English.

If you can't read German, that's a bit of a cliffhanger now, isn't it? Well, sorry about that. However, you might want to cherish the fact that you probably don't need to deal with German tax law! Also consider that it is probably better for your sanity anyway if you don't spend your time learning about taxation in other countries. It's not a good conversation starter, trust me.