redstrate.com/content/blog/kde-aug2023/index.md

14 KiB

title date draft tags toc series
My work in KDE for August 2023 2023-08-23 false
Linux
Open Source
KDE
Qt
true
My Work in KDE

I'm posting this a little bit earlier this month, because I'll be busy until next week and won't have a chance to finish anything. I have a lot of new features to show, and important documentation work to showcase!

Plasma

More KCMs have their footer actions moved to the header, such as Application Style:

So long, footer actions!

Kirigami

The Kirigami Add-ons AboutPage should be nicer to use for non-KDE projects, and stops them from opening up the QML file itself in your default text editor when you click on certain links.

Components in AboutPage now have support for viewing their licenses and webpage!

Now you can read GPL to your heart's content!

Kirigami's FlexColumn now respects the spacing parameter, allowing applications that use it to use Kirigami units.

MobileForm/FormCard's SpinBox and TextField delegates now use the disabled color when needed in it's labels.

MobileForm/FormCard's separator now hides when navigating it via keyboard.

Kirigami Add-ons is now REUSE compliant.

Tokodon

I added support for focal points in media attachments! This means that media won't be centered carelessly, but will be cropped to the author's wishes. This feature will appear in 23.12.

This artwork is now focused as it should be!

You can set the focal points in Tokodon as well! I really needed this feature because I post art on Mastodon, and had to use Mastodon Web because that was the only place I could set focal points.

{{< tube "https://tube.ryne.moe/w/wiUG3bnkbKzuussxWznvUz" >}}

I added a new floating button on the timeline to scroll back to the beginning. This feature will appear in 23.12.

The new scroll back button.

Now you can now share to the Fediverse via Tokodon! Right now it only supports URLs, but this can be expanded in the future. This feature will appear in 23.12.

{{< tube "https://tube.ryne.moe/videos/embed/c6297c5a-26a6-4fd8-9c0e-055e66522bdc" >}}

When it comes to media in posts, it should be much easier to add them. Now you can drop or paste them into the composer! This feature will appear in 23.12.

Account and hashtag links in profile descriptions should now open inside of Tokodon. This feature will appear in 23.12.

Do you use Pleroma or Akkoma? If you found the experience a bit lacking in Tokodon, it should now be a whole lot better. The language selector should no longer disappear, and the correct maximum character count is fetched. The local visibility option and custom poll limits are supported now too! Everything but the local visibility option will appear in 23.08.

There's now an option to disable Tokodon asking for the admin scope when logging in. This is useful for admins who don't feel safe with giving Tokodon permissions, or if your server (like Pixelfed) does not correctly handle it when logging in. This will appear in 23.12.

The new moderation toggle, visible on the login page.

For the cherry on top, the post margins should now look much, much better. This will show up in 23.12.

Bug Squashing

Sometimes I wonder if it's worth describing each bug I fix, but I think it's important to make it known that we're fixing our old features too. Most of these apply to 23.08 as well:

Work In Progress

Here's a list of features I'm working on, but are not quite finished yet. The first is Cross-account actions! This means you can interact with a post from another account, without the hassle of searching for it again and losing your place on the timeline.

{{< tube "https://tube.ryne.moe/videos/embed/81249d54-4207-42cc-a57c-e09ba7232c43" >}}

Ever wanted to still receive notifications, even though Tokodon is closed? Say hello to Push Notifications! (powered by KUnifiedPush. There's also going to be more granular notification settings, and the ability to turn off all notifications for an account.

It's not really interesting to see a notification, so say hello to Tokodon in the Push Notifications KCM!

You can check out the work-in-progress MR here but it's still a little finicky to set up.

NeoChat

When you paste an image that contains a URL and a bitmap, NeoChat won't still put the URL in the textbox as well.

The space drawer context menu should behave and look a little bit nicer now, with icons!

The space context menu.

The avatar used in notifications should be more resilient, including transparent and weirdly shaped avatars.

The attachment chooser dialog should now be functional again, the one that asks if you want to "Paste from Clipboard" or "Choose Local File".

The room and user completion menu should no longer show invalid entries, such as rooms that have no canonical aliases (so you couldn't link them anyway!)

The "Explore Rooms" page now looks nicer, and also functions better. It should be clearer when it's still loading or there's actually no rooms.

The nicer looking Explore Rooms page.

Image attachments are now resized, improving memory usage and smoothing. In my testing, a 4K image (that didn't have a thumbnail) now takes up ~30 MB less memory.

More about images, NeoChat will soon have support for sending blurhashes, which improves the loading experience for clients that support it. Blurhash generation should be faster as well.

And of course, logging out shouldn't crash NeoChat anymore.

Dr. Konqi

I made the save report dialog a little clearer, and it now defaults to your home folder.

When on a mobile device, the buttons on the main page are now laid out vertically.

Dr. Konqi when it's vertically constrained.

Discover

Fixed a bug in the Flatpak backend where Discover could crash... when trying to log an error.

Documentation

There's an obvious documentation problem in many KDE repositories: they have no README! This month, I took some time to write out a basic template (with the help of Thiago, thanks!) and pushed them to some projects that desperately needed one.

If you haven't heard me soapbox about this before, READMEs are small but vital lifeline for a project. To some people (including myself), if a project doesn't have a detailed README it feels more "dead" even if the commit history is active. Some repositories are closely related (e.g. Breeze and Breeze Icons) but have no visible link between them on Invent - and let's be honest, it's search functionality sucks. To make matters more complex, some of our projects may be viewed elsewhere, like from the official GitHub mirror!

Here's some important points I try to include a README:

  1. What is the purpose of this project?
  2. If this is a end-user facing application, what does it look like? (Note: not everyone knows what a "Gwenview" is but might be able to recognize it from a product screenshot.)
  3. If this is a complex, multi-layered and multi-component library - what is the folder called "autotests" or "kcms"? What does it contain? For some projects, this information shouldbe separated into a CONTRIBUTING document if it's too long.
  4. If I want to contribute, how do I do it? And link to the community.kde.org if you can, instead of trying to maintain manual instructions. There can be exceptions.

For new developers, it's important to strike down these blockers because it may not be totally obvious to some people what a "Plasma Framework" is. Or that you're not actually supposed to open a GitHub PR or a GitLab issue. It's a document you really only need to write once, update sometimes and it passively helps everyone.

And here's the KDE projects I got to so far:

I encourage anyone reading this to look at the README for the projects you maintain (or even contribute to), and see if there's room for any improvement!

Somewhat related, some repositories were missing Bugzilla links on Invent and someone told me how to fix them:

Thanks to everyone who helped review and push these along!

Outside of KDE

For Akkoma users, I contributed limited support for the Mastodon Preferences API! This is useful for Tokodon and other clients.

I fixed a qmlformat bug that added an extra space after target bindings. I hinted at what else we need to work on before qmlformat can be adopted in KDE here.

{{< series-nav "kde-july2023" "kde-sept2023" >}}