--- title: "My work in KDE for April 2023" date: 2023-04-30 draft: false tags: - Linux - Open Source - KDE - Qt toc: true series: - My Work in KDE --- Here's my KDE contributions for this month! It's a little bit shorter than I'd like, but I'm still trying to find a nice balance between **$work** and KDE. ## Extra CMake Modules I put up MRs for a bunch of small fixes related to the QML module: * {{< add "bugfix" >}} Plugin initialization files [didn't contain a target name, so they were always named `_init.cpp`](https://invent.kde.org/frameworks/extra-cmake-modules/-/merge_requests/346). * {{< add "bugfix" >}} Private QML sources are [now marked as internal in the generated qmldir](https://invent.kde.org/frameworks/extra-cmake-modules/-/merge_requests/348). * {{< add "bugfix" >}} Overhaul static plugin initialization, [to prevent the linker from possibly throwing away important plugin init symbols](https://invent.kde.org/frameworks/extra-cmake-modules/-/merge_requests/347). These haven't been merged yet though, I still need to clean them up and give them some polish next month. ## Dr. Konqi I didn't work on the new UI this month unfortunately, but I did submit two MRs: * {{< add "bugfix" >}} [Don't ignore quality unless explicitly requested by the environment variable](https://invent.kde.org/plasma/drkonqi/-/merge_requests/101). * {{< add "bugfix" >}} [Start loading backtraces immediately as Dr. Konqi opens](https://invent.kde.org/plasma/drkonqi/-/merge_requests/100). Just like ECM this will be in my queue to merge these next month! ## Krita.org {{< add "feature" >}} I finally [merged the improved dark mode I started a while ago](https://invent.kde.org/websites/krita-org/-/merge_requests/18), for the new Krita.org website! Thanks to everyone, especially Phu and Scott for being patient with me. I can't wait to see this live soon :-) ## Tokdoon {{< add "feature" >}} I added [support for the new Maximize component](https://invent.kde.org/network/tokodon/-/merge_requests/200), which doesn't change anything functionality-wise but makes our code leaner: ![Screenshot of the Maximize component in action!](maximize.webp) {{< add "feature" >}} I also [pushed along the MR to use the SearchPopupField component](https://invent.kde.org/network/tokodon/-/merge_requests/144) from Kirigami Add-ons too, which is another change that doesn't change anything functionally but will make the code much leaner. {{< add "feature" >}} [Interaction icons were overhauled, not just visually but also their layout has improved](https://invent.kde.org/network/tokodon/-/merge_requests/211). Below is a screenshot of a mobile sized window, where the icons now spread out which will make them easier to tap (I plan on increasing the size on mobile too!) ![Screenshot of the new icons in mobile layout](new-icons.webp) {{< add "feature" >}} The [amount of characters you have left is now shown in the composer](https://invent.kde.org/network/tokodon/-/merge_requests/212), which should load from your server (I don't have anything but a 500-char limit to test with though): ![The character count shows up in the bottom-left](character-count.webp) {{< add "feature" >}} It's not merged yet, but I'm adding [overhauling how you view posts on profile pages](https://invent.kde.org/network/tokodon/-/merge_requests/214)! It has the usual separation of _"Posts"_, _"Replies"_ and _"Media"_ tabs but you can hide boosts too: ![The new profile tabs and post options](profile-posts.webp) {{< add "feature" >}} As a cherry on top, [I added icons to some of the menus](https://invent.kde.org/network/tokodon/-/merge_requests/217) which makes them easier to quickly navigate: ![Example of the new icon filled menu](new-menu.webp) Some more minor changes: * {{< add "bugfix" >}} Squashed [another binding loop](https://invent.kde.org/network/tokodon/-/merge_requests/206). * {{< add "feature" >}} Added [labels for replies](https://invent.kde.org/network/tokodon/-/merge_requests/215) so it's clearer especially when there's no @ mention. * {{< add "bugfix" >}} Only show statistics [on the selected post in a thread instead of all of them](https://invent.kde.org/network/tokodon/-/merge_requests/213) (if you don't have detailed stats enabled). ## Keysmith {{< add "bugfix" >}} I did some touching up work for Keysmith late this month: I fixed [a bunch of binding loops](https://invent.kde.org/utilities/keysmith/-/merge_requests/112), and added better keyboard navigation. {{< add "feature" >}} I also [added a passive notification when you copy the code to your clipboard](https://invent.kde.org/utilities/keysmith/-/merge_requests/113) too: ![Example of the notification](passive.webp) There doesn't appear to be an active maintainer, so I'll get another reviewer and merge them next month. I also cleaned up some duplicate bugs, and moved some spam off of the tracker. ## Kirigami {{< add "bugfix" >}} While debugging Tokodon, I fixed [a rare case where a Kirigami application using our QQC2 Desktop style could crash](https://invent.kde.org/frameworks/qqc2-desktop-style/-/merge_requests/244) when closing. This same "fix" could apply to Breeze style too, it warrants further investigation :-) {{< add "feature" >}} I realized that NavigationTabBar doesn't have it's own page on the gallery, so I [proposed a new one in Kirigami gallery](https://invent.kde.org/sdk/kirigami-gallery/-/merge_requests/42): ![New page thumbnail in Kirigami Gallery](new-page.webp) {{< add "bugfix" >}} I'm still looking for people who might know why [PlaceholderMessage fails handling overflow, which creates some recursive rearranges](https://invent.kde.org/frameworks/kirigami/-/merge_requests/1034). It might be a Qt upstream issue, so it's another thing to investigate soon! {{< series-nav "kde-march2023" "kde-may2023" >}}