Skip to content

Thursday, 22 January 2026

While the official coding period for SoK starts on January 23rd, my mentor, Finley Watson, kicked off a "preparation phase" this week to ensure we are ready to hit the ground running. I'm calling this "Week 0."

The goal was simple: set up kde-builder on my Fedora and compile Lokalize before the real work begins.

The Setup Struggle

I initially planned to use a manual build, but the Week 1 preparation guide provided by Finley explicitly recommended setting up kde-builder.

Of course, it didn't work on the first try. I kept hitting a Python error about a missing setproctitle module even though I had installed it.

After some digging, I realized my terminal path was missing ~/.local/bin, so the helper scripts weren't actually running. A quick fix to my .bashrc and a manual run of initial_setup.sh, and the build finally started.

Twenty minutes of compiling later, I had a working Lokalize built from source!

Since the build was working, I decided to take a peek at the bug I'm supposed to fix next week: the "Jumping Project Menu."

Basically, when you open a file, the Project menu physically shifts to the right. It's super annoying for muscle memory.

I dug into the .rc files (the XML that defines the UI) and found the culprit in lokalizemainwindowui.rc.

<MenuBar>
  <Menu name="file"><text>&amp;File</text>
    ...
  </Menu>

  <Merge/>  
  <Menu name="project"><text>&amp;Project</text>
    ...
  </Menu>

That tag tells KDE: "If a child window has extra menus, put them HERE."

When the Editor loads, it creates its own menus (like "Go" and "Edit"). Because of that tag, they get inserted right before the Project menu, pushing it down the line.

The Fix? I think I just need to "reserve the seats" in the main XML file. If I add placeholders for Edit, View, and Go in the main window, the Editor should merge into them instead of pushing everything else around.

I'll test that theory properly next week. For now, the environment is ready.

Image

Wednesday, 21 January 2026

Plasma + Usability & Productivity Sprint in Valencia, Spain | 2019 It’s been almost 7 years since I made a post titled “First steps in open-source” where I talked about joining KDE - a Linux community of kindred spirits working on free and open-source software. Brimming with optimism and still living the more or less...... Continue Reading →
Saplings in pots.

Every year the KDE Community actively helps people to become active community members and contributors to Free Software through our Season of KDE mentorship programs.

We would like to warmly welcome this year's mentees Aviral Singh, Keshav Nanda, Vishesh Srivastava, Varun Sajith Dass, Aditya Sarna, Jaimukund Bhan, Navya Sai Sadu, Kumud Sagar, Arun Rawat, Tanish Kumar, Ajay Singh, Mohit Mishra, Rohith Vinod, Shivang K Raghuvanshi, Onat Ribar, Hrishikesh Gohain, Aryan Rai, Advaith SK, CJ Nguyen, Siddharth Chopra, Nitin Pandey, Pavan Kumar S G, Sayandeep Dutta, Sairam Bisoyi, and J Shiva Shankar. They will be working on 21 projects covering a wide range of apps, frameworks, utilities and software in general to improve KDE.

Sok 2026 Projects

Standardise translation reference paths across all KDE projects

Translators work on PO files that contain the translation data, including the file path to the file that the specific translation comes from. To understand the purpose of a particular string, sometimes the translators need to view the translatable strings in the code itself. To allow KDE to build tooling around the paths, the PO files must be standardised so that all contain file path references relative to the project root rather than from an arbitrary directory.

This work has been started already but will be finished during this SOK project. Aviral Singh and Keshav Nanda will work under the guidance of Finley Watson on edge cases, testing and cleaning up the merge requests ready for merging. They will also improve the test script.

Lokalize tasks

All Lokalize projects will be mentored by Finley Watson.

Introduce Appium testing

Vishesh Srivastava will be integrating Appium testing in Lokalize. Appium is already used by other KDE software, and could be very helpful for testing UI changes, including keyboard shortcuts. This task will include coordinating with other mentees as they modify parts of the UI, as well as writing other general tests.

Improving logic consistency and MacOS platform stability

Varun Sajith Dass will work on fixing reported bugs, and improving string processing in many parts of Lokalize. Varun's aim is to increase the robustness of Lokalize's existing features, improve the quality of the output, and make following the Human Interface Guidelines easier for translators. This work will require coordination with other mentees e.g. for writing tests. Varun also aims to make it possible to build Lokalize on MacOS by fixing bugs related to this.

Fix the glossary

The glossary tab in Lokalize is unintuitive and hard to use, and currently crashes Lokalize unless you manually add the file that saves the glossary data to disk. Aditya Sarna and Jaimukund Bhan will update the UI so that it is easier to use, improve the glossary's behaviour, fix bugs and better follow the Human Interface Guidelines. They will work with the translators and visual designers to ensure their work follow KDE best practices and creates meaningful improvements.

Jump to next translation unit when sort filters are applied

The editor tab contains a dock widget called "Translation Units" which has the ability to filter and sort entries in translation files with the search bar. Moving between entries while approving them by using the shortcut jumps about in the list, rather than working down the sorted list correctly, one after another. Navya Sai Sadu and Kumud Sagar will be working together to fix this so the keyboard shortcut behaves as expected.

Redesign translation memory tab

The translation memory tab allows you to pick a TM (saved translation pairs from previous translation jobs / files) to search through, and shows the results in the list below. Arun Rawat will be redesigning the UI to enable searching multiple memories at once, with these settings saved per-project. Additionally, the Translation memories manager will be merged into the tab instead of existing separately e.g. by moving TM-specific entries into the right-click menu, and adding more general buttons into the TM tab page, or the toolbar that is specific to the TM tab.

Standardise menubar

Lokalize uses a KDE framework, KXMLGUI, to manage its menubar and status bar. In Lokalize, KXMLGUI allows you to define the contents of the menubar for each tab. Right now the tabs have different ordering of menus with some menus missing in certain tabs.

Tanish Kumar will re-design the menubar so all tabs to offer the same menubar. Where a tab does not use a menu, the menu will be added, with menu options disabled.

All Lokalize projects will be mentored by Finley Watson.

Investigate alternatives to dblatex to convert docbook to pdf

KDE’s documentation build pipeline currently relies on a legacy, copy-pasted fork of dblatex embedded inside the docs-kde-org repository. While functional, this setup obscures Git history, complicates upgrades, and makes KDE-specific customizations such as kdestyle difficult to understand and maintain.

Ajay Singh, under Johnny Jazeix guidance, will investigate the possibility of using other tools than dblatex (such as pandoc) to create the pdf from docbook. The aim is to see if it fixes the current issues we have with non-supported non-ascii languages. And if there is a working alternative, he will work on trying to have a similar style to what we currently have in the kdestyle.

Extract dblatex fork from docs-kde-org repo and improve non ascii languages support

we are currently reworking the documentation website. The first task was to generate the documentation of each repo in a specific job.

Mohit Mishra will work on extracting the dblatex from the code into its own repo (keeping the history) and finding out if we can directly clone the original repository instead of having a fork.

Mentored by Johnny Jazeix, the overall goal is to try to use the upstream dblatex (shipped in distributions) to generate the pdf, experiment with XeTeX PDF generation engine instead of pdfTeX to create PDF for non supported non-ascii languages (Arabic, Chinese, Japanese, Korean...). If we can't improve it, extract dblatex fork on a specific repo to ease the maintenance`

Implement font subsetting when saving files in Okular

Okular supports PDF annotations and form-filling. When a user adds text to a document, Okular must ensure that the text remains readable on any system irrespective of whether the font is installed locally or not. Hence the font data is directly embedded into the document using the PDF rendering library Poppler.

The problem arises due to the lack of proper font subsetting (as Poppler does not support this). Modern OpenType and TrueType fonts contain thousands of glyphs for various languages and symbols.

Okular approaches this by embedding the entire font file into the document. This causes an undesirably large file size due to all the extra unused glyphs/symbols being embedded.

Rohith Vinod and Shivang K. Raghuvanshi, under Albert Astals' supervision, will work on solving this problem using the hb-subset-input-glyph-set API.

Plasma Setup: mobile support

Plasma Setup is KDE's first run setup wizard, providing a friendly way to create the first user account and configure basic system settings. Unfortunately it only works on desktop form factors

Under Kristen McWilliam's guidance,Onat Ribar will work on supporting Plasma Setup for Plasma Mobile as well.

KEcoLab

Recent updates in the lab mean that X11-based emulation tools like xdotool are obsolete. Guided by Joseph P. De Veaugh-Geiss, Karanjot Singh, and Aakarsh MJ, Hrishikesh Gohain will be tasked with porting existing scripts to a Wayland-based tool. Once Wayland support is ready, Hrishikesh will prepare test scripts to measure the KDE Plasma Desktop Environment itself.

Turning mentorship.kde.org into a proper onboarding platform

mentorship.kde.org currently looks like a website, but does not behave like an onboarding system. Aryan Rai and Advaith SK will be required to convert the site into a guided entry point for KDE mentorship.

Anish Tak and Paul Brown will be guiding Aryan and Advaith throughout the project.

Automate Promo data collection

Promo collects data from different sources that measure how our followship grows, how many outlets are talking about us, what is our level engagement, etc. This information is currently collected by hand and is a massive time drain. CJ Nguyen, mentored by Paul Brown, will create systems to automate the collection, storage and analysis of this data.

Markdown and plain text editors for Marknote

Siddharth Chopra will be adding two editors to MarkNote, an app that lets you create rich text notes and easily organise them into notebooks. The first editor is a raw markdown editor for .md files and a plain text editor for .txt files.

Siddharth also plans to work on making some improvements to the current markdown editor.

Carl Schwan will be Siddharth's mentor in this project.

Making Cantor’s existing tests visible, reproducible, and actionable in CI

In this project, Avyakt Jain aims to activate Cantor’s existing testing infrastructure in a low-risk, incremental, maintainer-friendly way by (1) producing a clear, factual overview of current test coverage and gaps, (2) enabling a minimal, MR-scoped CI test job that provides visible JUnit-based feedback, and (3) improving reproducibility and documentation for running tests locally. The expected outcome is faster, more reliable feedback for maintainers and contributors, without enforcing new quality gates or changing Cantor’s runtime behavior.

Alexander Semke and Stefan Gerlach will be supervising Avyakt's work.

Call log synchronization and backup in KDE Connect

Nitin Pandey will be working on improving telephony integration in KDE Connect by implementing call log synchronization and backup from Android devices to the desktop. Instead of creating a separate desktop client for call history, the project will integrate call logs directly into the existing KDE Connect SMS client on the desktop, providing a unified communication view.

Albert Vaca will be mentoring this project.

Enhancement of KDE Mancala: Engine Parallelization and Digital Asset Creation

Pavan Kumar S G will speed up MankalaEngine by enabling it to use threads, Pavan Kumar SG will also create artwork to be used in the Mankala NextGen GUI.

This project will receive guidance from Benson Muite and Srisharan VS.

Improve Mankala GUI and add translations for Game variants

Sayandeep Dutta will improve the visual appeal of Mankala NextGen GUI and contribute towards it going through KDE Review. In addition, Tamil translations will be created for MankalaEngine and Mankala NextGen.

Srisharan VS and Benson Muite will support this project.

XMPP Support in Falkon through WebXDC

Sairam Bisoyi will create a Falkon extension to allow it to be used for chat using the XMPP protocol and its WebXDC extension..

The project advisors are Schimon Jehudah, Juraj Oravec and Benson Muite.

Adding Vamana Guntalu to Mankala Engine and a WebXDC bookmarking system in Falkon

J Shiva Shankar will add the Vamana Guntalu mancala game to MankalaEngine. J Shiva Shankar will also create a Falkon extension to allow synchronization of website bookmarks across different devices using the XMPP protocol in a WebXDC application.

The project advisors are Schimon Jehudah, Juraj Oravec and Benson Muite.


Stay in the loop!

You will be able to follow the progress of all mentees through their blog posts on KDE's planet, and by joining the relevant project communication channels.

Tuesday, 20 January 2026

The Skrooge Team announces the release 26.1.20 version of its popular Personal Finances Manager based on KDE Frameworks.

Changelog

  • Correction bug 512770: some accounts doubled in "amount" vs "today amount"
  • Correction bug 513589: QIF import errors
  • Correction bug 513016: skrooge-boursorama.py don't work
  • Correction bug 514649: Performance issue
  • Correction bug 514649: "Open transaction with..." and some other are empty

Monday, 19 January 2026

New features in NeoChat, new releases of Kaidan and Calligra Plan

Welcome to a new issue of "This Week in KDE Apps"! Every week (or so) we cover as much as possible of what's happening in the world of KDE apps.

With January well under way, the news regarding KDE apps is coming thick and fast. Let's dig in!

PIM Applications

Kleopatra Certificate manager and cryptography app

Tobias Fella added an option for remembering the signing/encryption configuration from the last operation (26.04.0 - pim/kleopatra MR #427).

Merkuro Mail Read and write emails

Florian Richer fixed some issues with the identity configuration dialog (26.04.0 - pim/kidentitymanagement MR #40).

Office Applications

Plan Project Management

Mickael Sergent released Calligra Plan 4.0.0 — the first version of Calligra Plan built with Qt 6! Also thanks to all packagers who fixed and modernized some of the CMake code after the release.

Marknote Write down your thoughts

Siddharth Chopra fixed the the font selection dialog (1.4.0 - office/marknote MR #82).

Creative Applications

Drawy Your handy, infinite brainstorming tool

Laurent Montel added support for drawing filled rectangles (graphics/drawy MR #216) and arrows (graphics/drawy MR #199), as well as changing the opacity of elements (graphics/drawy MR #205).

Kdenlive Video editor

Abdias J Moya Perez implemented a fixed centered playhead mode for the timeline. When enabled, the playhead remains locked at the center of the timeline view while the timeline content scrolls smoothly beneath it during playback, scrubbing, and seeking (multimedia/kdenlive MR #785).

Multimedia Applications

Photos Image Gallery

Noah Davis added a floating zoom bar (26.04.0 - graphics/koko MR #253).

Elisa Play local music and listen to online radio

Nate Graham removed two unnecessary buttons that appeared when hovering over songs in the playlist (26.04.0 - multimedia/elisa MR #737).

Utilities Applications

Kate Advanced text editor

Sahil Verma added support for importing user templates from local folders, which can then be used to generate files from specific templates (26.04.0 - utilities/kate MR #1969).

Network Applications

NeoChat Chat on Matrix

Joshua Goins split up the Permissions settings for rooms, because the members list (with lots of moderators) tended to dominate the page. He also moved the search bar for members to the top, and re-organized various permissions into more suitable groups.

Joshua also added a "Seen By" dialog to allow you to view the read markers in something that isn't extremely small!

Another new and useful feature introduced by Joshua is private notes. Someone has a confusing username and you can't remember who they are? Need to jot down their birthday or keep track of the bad jokes they keep telling you? 😛 Since this isn't standardized between clients, it's only available in NeoChat. But on the flipside, it will sync between NeoChat on different computers.

And regarding safety-related changes, there were a few small additions too. Joshua added a new helpful dialog where you can view your server's support information in-app if available. It also wasn't clear where reports are sent to, which has caused confusion.

Finally, Joshua also fixed a lot of small bugs all over the place. You can read his Mastodon thread to learn more!

Darshan Phaldesai made some nice visual changes to the reaction buttons: now they use rounded rectangles instead of circles, and their text is more legible.

Kaidan Modern chat app for every device

The Kaidan team released Kaidan 0.14.0. This release introduces advanced media sharing, filtering of XMPP providers when creating an account, support for XMPP URIs, and more.

You can see more details at the announcement post.

Additionally, Melvin Keskin added support for audio/video calls (network/kaidan MR #1472).

KDE Connect Seamless connection of your devices

Stephan Seitz made sure that the sample commands provided by KDE Connect for the "Run Commands" plugin are OS-specific (26.04.0 - network/kdeconnect-kde MR #897).

Educational Applications

RKWard KDE frontend to the R statistics language

Thomas Friedrichsmeier made some progress in adding support for Quarto files (education/rkward MR #73).

Minuet Music education software

Sandro Andrade ported Minuet to Kirigami (26.04.0 - education/minuet MR #54).

System Applications

Dolphin Manage your files

Thanks to Akseli Lahtinen, binary files and scripts are now executable from the context menu (KDE Frameworks 6.23 – frameworks/kio MR #2113).

xi ota has added the option to always show the tab bar (24.04.0 – system/dolphin MR #1152).

External Applications

Kraft Quotes and invoices for small business

Klaas Freitag presented version 2.0 of Kraft this week. Kraft is a business tool that helps you keep track of payments as well as creating quotes, invoices, and other business-related documents.

Version 2.0 is easier to install, implements a legal document life cycle from draft to finalized, comes with better PDF output, makes it easier to migrate from your earlier versions, and continues to protect your privacy as it integrates well with your own Nextcloud or OpenCloud instances.

Games

Manuel Alcaraz Zambrano added a bye editor to Chessament (games/chessament MR #39). What's a "bye editor"? Learn about Bye on this Wikipedia page.

…And Everything Else

This blog only covers the tip of the iceberg! If you’re hungry for more, check out This Week in Plasma, which covers all the work being put into KDE's Plasma desktop environment every Saturday.

For a complete overview of what's going on, visit KDE's Planet, where you can find all KDE news unfiltered directly from our contributors.

Get Involved

The KDE organization has become important in the world, and your time and contributions have helped us get there. As we grow, we're going to need your support for KDE to become sustainable.

You can help KDE by becoming an active community member and getting involved. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine! You don’t have to be a programmer either. There are many things you can do: you can help hunt and confirm bugs, even maybe solve them; contribute designs for wallpapers, web pages, icons and app interfaces; translate messages and menu items into your own language; promote KDE in your local community; and a ton more things.

You can also help us by donating. Any monetary contribution, however small, will help us cover operational costs, salaries, travel expenses for contributors and in general just keep KDE bringing Free Software to the world.

To get your application mentioned here, please ping us in invent or in Matrix.

Sunday, 18 January 2026

The Amarok Development Squad is happy to announce the immediate availability of Amarok 3.3.2, the second bugfix release for Amarok 3.3 "Far Above the Clouds"!

3.3.2 features a number of small improvements, including various small behaviour changes and bugfixes in e.g. user interface, audio backend and saving of playlist files. Additionally, 'added to collection' date, which previously was available in collection search only, is now displayed in track's details in tag dialog. KDE Framework depedency is now set at version 6.5, which was released in mid-2024. All in all, Amarok 3.3.2 should bring improved usability and stability, ensuring you can keep enjoying your music in 2026.

Changes since 3.3.1

FEATURES:
  • Show 'added to collection' time in tag dialog when available (BR 508899)
CHANGES:
  • Make single click open items and double click add to playlist in collection browser.
  • Amarok now depends on KDE Frameworks 6.5.
BUGFIXES:
  • Fixes to Magnatune collection update and playback (BR 508052)
  • Fix some issues in playlist layout editor UI
  • Fix disabling of notifications when using system notifications
  • Fix getting stuck in a loop if mute state was altered repeatedly
  • Fix podcast sort order for some channels (BR 511036)
  • Fix saving stream URLs in playlist (BR 509204)

Getting Amarok

In addition to source code, Amarok is available for installation from many distributions' package repositories, which are likely to get updated to 3.3.2 soon, as well as the flatpak available on flathub.

Packager section

You can find the tarball package on download.kde.org and it has been signed with Tuomas Nurmi's GPG key.

Edit 25/01/2026 documentation.yml is no more used, the documentation is built and published as part of the linux.yml and linux-qt6.yml pipelines. The post is updated to take this in account.

For the past few years, generation of user documentation at docs.kde.org was not working. After a few months on working on the related issue, we finally managed to make it functional again and it once again displays the documentation for almost 150 applications!

docs.kde.org website up-to-date

Previous issues

There were major issues with the previous workflow:

  • The documentation generation and publication were done on a dedicated machine.
  • It was a monolithic process: the generation of the documentation for all KDE projects was followed with the generation of the website and its publication.
  • Since the arrival of Qt 6, it was not possible to easily update the process to take it into account, so no new documentation was generated.

For ease of maintenance, it would be better if:

  • Each application took care of generating its own documentation
  • The website generation only cared about retrieving the existing documentation and building the website
  • We could have an easy way to reproduce it locally

Current solution

Update suse-qt610 image

We use the suse-qt610 docker image to generate the documentation. The different packages needed to build the html/PDF files and generate the website have been installed.

Generation of the documentation

We have created a new script generate-documentation.py that will generate the documentation and publish the documentation for a project to a specific registry. To ensure the documentation is well-generated, developers need to ensure that their project has:

  • 'frameworks/kdoctools': '@latest-kf6' listed in its .kde-ci.yml
  • kdoctools_install(po) in its CMakeLists.txt

Local generation

To generate locally, you can use the following commands. First retrieve and run the latest image:

podman pull invent-registry.kde.org/sysadmin/ci-images/suse-qt610:latest
podman run --user=root -it suse-qt610:latest

Inside it, clone your repository (the example will use GCompris-teachers handbook):

cd builds
git clone https://invent.kde.org/documentation/gcompris-teachers-handbook
cd gcompris-teachers-handbook

Clone the needed repositories and export the environment variables:

git clone https://invent.kde.org/websites/docs-kde-org.git docs-kde-org --depth=1
git clone https://invent.kde.org/sysadmin/ci-utilities.git --depth=1
git clone https://invent.kde.org/sysadmin/repo-metadata.git ci-utilities/repo-metadata/ --depth=1

export KDECI_GITLAB_SERVER=https://invent.kde.org/
export KDECI_PACKAGE_PROJECT=teams/ci-artifacts/suse-qt6.10
export KDECI_CACHE_PATH=/home/user/caches/
export CI_COMMIT_REF_NAME=master
export CI_PROJECT_NAME=gcompris-teachers-handbook
export CI_JOB_ID="job_id"
export DBLATEX_BASE_DIR=$PWD/docs-kde-org
export SGML_CATALOG_FILES=$PWD/_install/share/kf6/kdoctools/customization/catalog.xml

Note: we only need the docs-kde-org repository because of PDF generation. There is some work in progress to reduce this dependency.

Retrieve the dependencies and build the documentation:

python3 -u ci-utilities/run-ci-build.py --project $CI_PROJECT_NAME --branch $CI_COMMIT_REF_NAME --platform Linux/Qt6/Shared
python3 ci-utilities/generate-documentation.py --project $CI_PROJECT_NAME --output-folder webdoc --format html pdf --branch $CI_COMMIT_REF_NAME --doc-dir _staging/builds/gcompris-teachers-handbook/_install/share/doc/HTML/

The output will be in the webdoc folder. You can copy this to your machine using podman cp CONTAINERID:/builds/gcompris-teachers-handbook/webdoc/ . (use podman ps to get the CONTAINERID).

Website generation

Now that each project generates its own documentation, we have reworked the existing website scripts to use these files instead of generating all of them again.

The script will browse all the projects in KDE which have i18n branches in their metadata and fetch the corresponding documentation (if it exists).

The last step is to generate the indexes for the website's search feature, using Xapian.

Local website generation

To generate locally, you can use the following commands. First retrieve and run the latest image:

podman pull invent-registry.kde.org/sysadmin/ci-images/suse-qt610:latest
podman run --user=root -it suse-qt610:latest

Inside it, clone the needed repositories and create the needed logs folder:

cd builds
git clone https://invent.kde.org/websites/docs-kde-org.git
cd docs-kde-org
git clone https://invent.kde.org/sysadmin/ci-utilities.git --depth=1
git clone https://invent.kde.org/sysadmin/repo-metadata.git ci-utilities/repo-metadata/ --depth=1

You will also need to generate a gitlab token from your invent account. Make sure the read_api scope is selected!

export KDECI_GITLAB_SERVER=https://invent.kde.org/
export KDECI_GITLAB_TOKEN=generated_token
export KDECI_PACKAGE_PROJECT=teams/ci-artifacts/suse-qt6.10
export KDECI_CACHE_PATH=/home/user/caches/
export PYTHONPATH=$PWD/ci-utilities/
export CI_COMMIT_REF_NAME=master
export CI_PROJECT_NAME=docs-kde-org

Generate the website, copy static files and run the xapian indexing:

mkdir -p logs
./kdedocgen.py -r -s -l doclogconfig.ini -c docgen_conf.ini
./create_generated_used.php work >website/generated_used.inc.php 2>logs/genused.log
KDECI_PACKAGE_PROJECT=teams/ci-artifacts/suse-qt5.15 python3 -u ci-utilities/run-ci-build.py --project $CI_PROJECT_NAME --branch $CI_COMMIT_REF_NAME --platform Linux/Qt5/Shared --only-setup-environment
KDECI_PACKAGE_PROJECT=teams/ci-artifacts/suse-qt6.10 python3 -u ci-utilities/run-ci-build.py --project $CI_PROJECT_NAME --branch $CI_COMMIT_REF_NAME --platform Linux/Qt6/Shared --only-setup-environment
cp -R _install/share/doc/HTML/en/kdoctools5-common website/trunk_kf5/en/
cp -R _install/share/doc/HTML/en/kdoctools6-common website/trunk_kf6/en/
cp -R search/ website/
./website/search/do_xapian_index.sh

The output will be in the website folder.

Website deployment

The website repository has its own scheduled pipeline (once a week) to generate the website and publish it.

The deployment is done using the ci-notary service.

Future plans

There are still multiple issues to tackle:

  • Most non-ASCII languages (CJK, Arabic...) are not supported for PDF generation. We have two contributors in Season of KDE who will dig into finding a solution to improve this!
  • We have several hardcoded paths/links to Qt 6/KF 6. We need to drop those for when Qt 7/KF 7 comes (edit 25/01/2026: this has been handled in this commit!).
  • Updating deprecated documentation where it makes sense.

Saturday, 17 January 2026

Have you seen Activities in your system settings and wondered what they're used for? Have you read about them them in a blog post and wanted to know more? Have you been interested in giving them a try, but weren't sure where to start? This is where I was once upon a time, so I'd like to share how I've set up Activities to streamline my workflows. Maybe this can help others who also want to experiment. The experience hasn't always been smooth. Due to various bugs, there was one point where I threw up my hands and migrated everything back to virtual desktops in anger. Eventually, the bugs were fixed, and other improvements were made. I gave them another try and I'm glad I did. Many thanks to the contributors who fixed those bugs and who maintain this awesome feature! Today, Activities are now an integral part of my Plasma setup.

Activities? But I already have Virtual Desktops!

When I first discovered this "Activities" thing, I had no idea what it was, really. I was already using Virtual Desktops, what did Activities do that they couldn't? It wasn't until I found a few blog posts explaining the fundamentals that I got it. Activities are meant for different workflows a.k.a. contexts (not just tasks within one). At the most basic level:

Virtual Desktops, a.k.a. Workspaces, separate different tasks within a context / workflow / project. For instance, when doing KDE work, I might have the bug tracker and docs opened in a browser on Workspace1, and then on Workspace2 have a terminal and code editor. These are things related to the context of "KDE work".

Activities are meant for a higher level of separation based on a particular workflow or project. Some examples would be Work, Finances, Gaming, Development or Streaming. They can be added, changed and deleted in Settings -> Activities or in the Activities Manager (Meta+Q by default).

Benefits for organization and speeding up getting into a workflow

Each Activity can have a set of applications, widgets and linked files. You can tailor these to a workflow / context / project. You can quickly switch between them with keyboard shortcuts or the Activities Manager.

For me, they make it much easier to launch the tools I need, and maintain focus on the task at hand. My brain is context-driven, so this helps me keep track of where things are and avoid getting lost in a sea of stuff. My brain is also sometimes easily distracted. Having only the shortcuts and applications I need front of me helps me maintain focus.

So what can I actually do with Activities that I can't already do with Virtual Desktops?

Most folks already know that with Virtual Desktops, you can place different windows on specific or all desktops (Wayland has more flexibility than X11 here). Of course, this can be used to separate workflows, and there are plenty of people using them this way. That's the beauty of Plasma, you can make it fit your individual needs. Here are some things Activities allows for that Virtual Desktops do not.

Starting with the System Settings - Activities page, you can choose to enable or disable, for each:

  • Track file and app usage (disable for privacy, on a Financial Activity, for example)
  • Automatically turn the screen off (disable when gaming, presenting, streaming, etc.)
  • Automatically shut down or sleep the system (disable when gaming, presenting, streaming etc.)

Then, for these features, you can choose one Activity, multiple, or all.

  • Place different application windows (ex: your code editor on a Programming Activity) by launching it in that activity.
  • Pin an application to the task manager or in Favorites in the app menu (ex: your accounting software on a Financial Activity)
  • Desktop icons can be associated per Activity (Go to Settings -> Wallpaper -> Location and select "Files linked to current activity". This can be set per activity!)
  • Open an app in an activity (ex: opening your accounting software only on a Financial Activity, or a media player in all) with window rules

Additionally, for each Activity, you can have different wallpapers and widgets per Activity. This allows me to see, at a glance, which Activity is active and easily launch things.

Use cases

Here are some ways you can use Activities, and how I've found them helpful.

  • Separate your work stuff from your personal stuff Since I work from home, this helps me shift from my "at work" mindset to "at home". I much prefer this to relying on the old 45 minute commute ;)
  • Keep focus on the current task and context
    I can avoid being distracted by stuff not related to what I'm doing at the moment by keeping things separated. While working on KDE bug triage, for instance, I won't be distracted by stuff that's not related. As much. Squirrel.
  • Keep sensitive information from being accidentally displayed until you want it to be One day, at a coffee shop, I realized that I didn't want people around me to necessarily see shortcuts like "Budget". I created a Financial Activity to keep sensitive information related to financial stuff hidden unless specifically switching to it.
  • A sparse Activity for presentations / recording / streaming
    It could have nothing shown outside of the specific needs for that context. This not only avoids showing things to strangers you would prefer not to, it keeps your environment looking tailored.

How I organize my stuff by context

I have five Activities. All except the first one are configured to only show files related to the activity on the desktop.

Things common to all via pinned task manager icons:

  • Kate session chooser
  • Note widgets

Favorites and Quick Launch widgets per Activity:

  1. Personal - All the stuff that isn't specific to anything else (general browsing, emails, etc).
    No specific shortcuts, just a Weather widget on the desktop for my home city.
  2. KDE - Where I focus on bug related work, MR testing, and such.
    Favorites include a KDE Obsidian vault, Firefox KDE profile and a Discord client.
  3. Solus - Volunteer work for packaging and distro coordination.
    Favorites: Solus Obsidian vault and Vivaldi (it works better with Jitsi Meet than Firefox).
  4. Financial - Budgeting, accounting, etc.
    Favorites: an Obsidian vault and KMyMoney. There's a QuickLaunch widget containing links to a few folders, documents and spreadsheets.
  5. Conference - Conference tasks and notes. Favorites: (you guessed it) a Travel Obsidian Vault. Weather widget set to the city I'll be in.
    If speaking, I might have shortcuts to relevant documents and presentations.

Ramping up a workflow using the KDE Activity

To briefly illustrate efficiently getting into a workflow, I'll describe using my KDE Activity. It's based on my multi-screen setup at home. When I'm traveling and only have a single laptop display, applications are spread out across different Virtual Desktops as well.

  • Thunderbird email and Nheko chat have automatically started at login (through Session Saving). Using kwin window rules, they run on all Activities.
  • I open a music app via a Favorite (pinned on all Activities) and start playing music, which helps me focus. It has window rules to display on all Activities, so I can control it from wherever.
  • Then I launch applications from Favorites that are only on this Activity:
    • A Discord client for work chat
    • An Obsidian Notes vault for KDE (kwin rules also set position and size)
    • Firefox with my KDE profile. It has specific bookmarks, as well as tabs for a time tracker, the KDE bug tracker, Invent, specific bugs and merge requests I need to test etc.

And now I'm ready to start working.

Going further - Combining Virtual Desktops and Activities

As I mentioned above, sometimes I also use Virtual Desktops to segregate different tasks per context. For instance, in my KDE Activity, I might have VDs for: Communication - email, chat Development - terminal, code editor Documentation - browser, notes app

Wrapping up

These are some ways you can customize Activities. Hopefully, you can see how they might streamline your own desktop and help your workflows be more efficient.

Technical notes - making shortcuts for specific Firefox profiles and Obsidian vaults

Firefox

Open Firefox with firefox -p to gain access to the profile picker. Use one of the profile names in your shortcut. In the menu editor, for example, after copying and pasting the default entry, change the Arguments:

%u -p profile_name

Obsidian

To create a shortcut to an Obsidian Notes vault, I copied the default .desktop file to ~/.local/share/applications/ and changed it to load the vault by name:

Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=obsidian.sh --file-forwarding md.obsidian.Obsidian @@u %u @@ 'obsidian://open?vault=vaultname'

Then, I customized the icon through the Menu Editor.

To find the location of the default .desktop file on your system:

  1. Find Obsidian Notes in the application menu
  2. Right click, and click Edit Application
  3. Right click the entry in the Menu Editor and click "Open Containing Folder"

Friday, 16 January 2026

The Plasma Login Manager support has been merged into Ni! OS.

If you want to use it, there are two prerequisites:

  1. you are using Wayland, not X11; and
  2. you are on unstable NixOS.

It is in the “works for me” state. I don’t use auto-login, virtual keyboard, etc.

Going unstable

If you are on the stable channel, which would surprise me as you’re reading this post, it is easy to switch to unstable just by running these commands as root user (sudo, or su, or…).

nix-channel --add https://channels.nixos.org/nixos-unstable nixos
nix-channel --update
nixos-rebuild switch --upgrade 

This will switch you to the unstable version of NixOS.

Mind that, as NixOS is an immutable distribution, you can easily boot back into the stable version – the previous version of your system is still accessible in the bootloader menu.

Switching from SDDM to the Plasma Login Manager

There’s a new option in Ni! OS called experimental.use_plasma_login_manager. The only thing you need to do in order to switch from SDDM to the Plasma Login Manager is to set it to true, and just switch your setup to the new configuration with:

nixos-rebuild switch
Plasma Login Manager on Ni! OS
Plasma Login Manager on Ni! OS

Switching back is also trivial – just change the value back to false and do the switch again.

There and back again

One new thing in Ni! OS is a custom label for the versions of the system (derivations in NixOS terminology).

If you enable an experimental feature such as the Plasma Login Manager, the label will clearly denote that. It makes it easy to get back to a version without the experimental features enabled.

As you can see in the following screenshot, the default label is kde-ni-os and all enabled experimental features are appended to it – when enabling the Plasma Login Manager, the label becomes kde-ni-os:plasma-login-manager. These labels can be seen in the following screenshot:

Boot menu with labels shown
Boot menu with labels shown

[edit] Upstream

Was notified by NixOS KDE maintainer K900, that PLM will officially become a part of nixpkgs as Plasma 6.5.5 gets updated to 6.6.

You can follow the progress of the patch here.

Once Plasma 6.6 is released, and it becomes available in nixpkgs, Ni! OS will start using the official package instead of my local hack.

Thursday, 15 January 2026

Happy New Year! The first maintenance release of the 25.12 series is with the usual batch of stability fixes and workflow improvements. Highlights of this release include further polishing of the new welcome screen, added AMF encoding profile for Windows, fixes to audio capture and effects alongside numerous smaller improvements throughout the interface. See changelog for more details.

For the full changelog continue reading on kdenlive.org.