add kde feb 2023 draft
This commit is contained in:
parent
2cd14346d9
commit
34c860b59a
6 changed files with 123 additions and 0 deletions
BIN
content/blog/kde-feb2023/broken-toolbar.png
Normal file
BIN
content/blog/kde-feb2023/broken-toolbar.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
BIN
content/blog/kde-feb2023/fixed-toolbar.png
Normal file
BIN
content/blog/kde-feb2023/fixed-toolbar.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
123
content/blog/kde-feb2023/index.md
Normal file
123
content/blog/kde-feb2023/index.md
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
---
|
||||||
|
title: "My work in KDE for February 2023"
|
||||||
|
date: 2023-02-02
|
||||||
|
draft: true
|
||||||
|
tags:
|
||||||
|
- Linux
|
||||||
|
- Open Source
|
||||||
|
- KDE
|
||||||
|
- Qt
|
||||||
|
---
|
||||||
|
|
||||||
|
## New Gamepad KCM
|
||||||
|
|
||||||
|
The Joystick KCM is pretty bad shape right now, for numerous reasons:
|
||||||
|
|
||||||
|
* What the heck is a joystick?
|
||||||
|
* What is the purpose of this KCM if I can't even configure anything?
|
||||||
|
* Why is it telling me about device paths?
|
||||||
|
* What's up with all of the tables?
|
||||||
|
|
||||||
|
So one of my big "Plasma 6" goals is to rewrite the KCM with a few goals in mind:
|
||||||
|
|
||||||
|
* Rebrand it around "Gamepads" and "Game Controllers" instead of "Joystick". A lot of people have mentioned they didn't even know it supported regular game controllers.
|
||||||
|
* Based on modern APIs and frameworks such as Solid.
|
||||||
|
* QML-based, with clear a symbolic gamepad layout which makes it easier to test a controller. No more tables of buttons!
|
||||||
|
* Remap buttons for SDL games along with the regular calibration found in the old KCM.
|
||||||
|
|
||||||
|
I've been collaborating with Jeremy Whiting on this project, and it's been going through some technical turmoil but
|
||||||
|
it's making solid progress:
|
||||||
|
|
||||||
|
A picture of the work-in-progress KCM, which dynamically gets the correct buttons for the controller thanks to SDL2. This will pave the way to integrating it better into a GUI.
|
||||||
|
|
||||||
|
## Tokodon Changes
|
||||||
|
|
||||||
|
I landed a bunch of features in Tokodon this month, including some much needed bugfixes for some rough edges of the project.
|
||||||
|
|
||||||
|
### Web+ap Support
|
||||||
|
|
||||||
|
I landed support for the upcoming web+ap url scheme used to open ActivityPub objects in Tokodon! Just like matrix.to links in NeoChat, these allow linking to ActivityPub objects online. Once everything is in place, we will be one of the first clients to natively support it!
|
||||||
|
|
||||||
|
If you can't wait, it's also possible to open up regular `https` linked posts in Tokodon by passing it as an argument, if you want to hook it up somehow in your browser.
|
||||||
|
|
||||||
|
### Post Language Support
|
||||||
|
|
||||||
|
You can now select the language you're posting in! You can't view a post's language or filter them from within Tokodon yet, but it's a start[^1]. Your preferred languages (chosen through the Languages & Formats KCM if you're using KDE) is shown at the top of the list.
|
||||||
|
|
||||||
|
### Poll Support
|
||||||
|
|
||||||
|
Tokodon has supported vieiwng polls already, but not posting them. Now you can create polls! All of your usual options are exposed, including some not even shown on Mastodon Web.
|
||||||
|
|
||||||
|
## More Changes
|
||||||
|
|
||||||
|
* A bunch of Android bugs are squashed, including links not working. I just recently got my PinePhone working again too, so expect more mobile-related work soon! :)
|
||||||
|
* You can now configure the network proxy on the login page.
|
||||||
|
* Posting is much more reliable in general, and it's clearer when an error has occurred. Hopefully no more of your toots get eaten.
|
||||||
|
* When a network error has occured (like the homeserver is down, or your proxy settings is wrong) then an error message will actually show up.
|
||||||
|
* The README finally includes a screenshot!
|
||||||
|
|
||||||
|
## NeoChat Notification Badge
|
||||||
|
|
||||||
|
One thing that always irked me with Neochat is the notification badge. The number never feels right, and no matter how many rooms I read it never changes:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Now the badge will actually update based on your current notification count, hurrah!
|
||||||
|
|
||||||
|
## PulseAudio KCM
|
||||||
|
|
||||||
|
Last month I redid the Window Decoration KCM, and this month I did the same for the PulseAudio KCM, although the changes needed where much smaller.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Kirigami and QQC2 Desktop Style
|
||||||
|
|
||||||
|
For Kirigami, I tried to focus on fixing up Dialog behavior to mixed results. I wanted to change the dialog closePolicy, but that's been more complex than expected. I attempted to fix the extra horizontal scrolling bug in Dialogs, but that has unintended regressions in Discover and I'm not really happy with the solution. I also have a bunch of OverlaySheet fixes that I need to rebase :) So a bunch of half-baked things I should start finishing next month!
|
||||||
|
|
||||||
|
I noticed an issue where Breeze Icons on Android wouldn't work if you had a custom icon theme in your application - which I tried to fix but I'm not happy with the solution. It looks like the built-in icons index.theme is not installed properly, and I want to figure out if we can fix that first.
|
||||||
|
|
||||||
|
For qqc2-desktop-style, I fixed an odd case where you could select text in TextAreas that explicitly disabled it by using the right-click context menu.
|
||||||
|
|
||||||
|
## Plasma Welcome
|
||||||
|
|
||||||
|
Oliver landed the Plasma Welcome redesign for 6.0, which looks _wonderful_. As with all great features, this has had it's fair share of technical issues which I had the pleasure of helping with, including fixing this bug:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Embedded KCMs create and manage their own QML engine. Objects like `Kirigami.ApplicationWindow` are separated though, because that exists in Plasma Welcome's engine and not the KCMs, which breaks a lot of things including the global toolbar. I figured out that you can inject your own QML engine to KDeclarative, which will fix most of the issues. While doing this, I also simplified embedded KCMs in Plasma Welcome which will help developers creating their custom pages.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
There's one lingering issue -- KDeclarative get's a little bit too greedy with the engine we give it and will try to destroy it to due to `std::shared_ptr` shenanigans, but fixing it will require changes to the framework. Right now we work around the issue by not assigning a parent, but I want to look into changing that soon.
|
||||||
|
|
||||||
|
## Fun with Doxygen
|
||||||
|
|
||||||
|
This month we had a strange incident where [api.kde.org](https://invent.kde.org/frameworks/kapidox/-/issues/17) fails to generate a page for IconItem... why?
|
||||||
|
|
||||||
|
Of course the first thing I tried was running kapidox locally for plasma-framework, but there's a doc page for IconItem generated. Huh. So I started looking into what the binary factory actually does to see if there's some inherent issue with our system. What I got is a [bash script]() which emulates a local api.kde.org install.
|
||||||
|
|
||||||
|
What I noticed is terrifying, the _doc page doesn't show up_ here! So I had an idea, what if the problem is that the name is _colliding_? After some quick global code searches using our LXR, I discovered that Maui recently introduced a new type called IconItem which coincidentally fits within the timeline of IconItem disappearing. How can this even happen in the first place?
|
||||||
|
|
||||||
|
I'm no expert in doxygen (is anyone?) but there is something called "tags" which is basically an index of every type that doxygen indexes. Doxygen also uses these tags to interlink doc pages together, so what's going wrong? Well, kapidox actually runs the doc generation twice, once initially and then another time to interlink dependencies. What I theorize is that when it's plasma-framework's turn to generate, doxygen sees that "IconItem" is already in Maui's tagfile and refuses to generate the page again.
|
||||||
|
|
||||||
|
With this new caveat in mind, I submitted two MRs to hopefully fix the documentation problems:
|
||||||
|
* Removing unnamespaced classes
|
||||||
|
* Removing unnecessary qmldirs that were exposing private APIs
|
||||||
|
|
||||||
|
... Except that I forgot about the KF5/KF6 split, which makes this harder. Next month will be focusing on rebasing those into KF5, and then creating KF6-specific MRs if needed (but a lot of fat is being cut here, so it might not be).
|
||||||
|
|
||||||
|
## KDevelop.org
|
||||||
|
|
||||||
|
I took the responsibility of converting the bitrotting kdevelop.org site to Hugo, which should be live soon! Most of the old site content is brought over (and converted to Markdown) while pages are updated where needed. You can view the [preview on my domain](https://kdevelop.ryne.moe/) :)
|
||||||
|
|
||||||
|
## Updating go-kde-org
|
||||||
|
|
||||||
|
I opened an MR to update the matrix.to redirector hosted at [go.kde.org](go.kde.org/matrix) which should include a link to open in NeoChat! Once it's merged, I plan on replacing the links on the KDE Community Wiki with these instead of the WebChat links we have now.
|
||||||
|
|
||||||
|
## Changing Notification History Order
|
||||||
|
|
||||||
|
This is something that's been sitting on my backlog, but I'm super annoyed about the ordering of notification history. Whenever I miss a notification[^2] I scroll through my notification history. However, it's ordered seemingly randomly, because it's sorted by "type and urgency". That's not too helpful because neither criteria is really exposed in the UI. I propose changing it to "Date" which makes way more sense for a history view of notifications.
|
||||||
|
|
||||||
|
[^1]: If you're looking for a way to configure the default posting language, it's unfortunately not exposed in the Mastodon API yet, including some other preferences. Since the issue hasn't moved much, I want to look into another way to easily access those settings.
|
||||||
|
|
||||||
|
[^2]: Which happens surprisingly often, despite me using the default notification timeout...
|
BIN
content/blog/kde-feb2023/neochat-badge.webp
Normal file
BIN
content/blog/kde-feb2023/neochat-badge.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
BIN
content/blog/kde-feb2023/notifications.webp
Normal file
BIN
content/blog/kde-feb2023/notifications.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 27 KiB |
BIN
content/blog/kde-feb2023/pulse-pa.png
Normal file
BIN
content/blog/kde-feb2023/pulse-pa.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 154 KiB |
Loading…
Add table
Reference in a new issue