Manjaro ARM is proud to present the packages for Plasma 5.27.0 together with the packages for Plasma Mobile Gear (soon to be regular Gear) 23.01.0 for the mobile devices.
These packages are currently being tested in our Unstable branch and will soon be transferred to Testing and then finally to Stable branch when the time comes..
This also makes our next Beta images (Beta 15) the last that will be tagged as Beta. We are preparing to include PinePhone and PinePhone Pro images into our main release cycle from either 23.04 or 23.06.
How to try
If you want to try this early, you can switch your current Manjaro system running Plasma mobile to Unstable branch and update this way:
I am happy to announce Tokodon 23.02. This release contains around one month’s worth of improvements, and while it is only one month, this release is feature packed! This was an exciting month for me in general, I started working at KDAB, went to FOSDEM in Brusels where I meet a bunch of other KDE folks, and spend time enjoying my new life in Berlin.
Me at the FOSDEM booth
Fortunately I still found some time to contribute to Tokodon, and Joshua Goins has also been a very active contributor. The number of contributors is also growing with a bunch of new faces: Aakarsh MJ, Harshil Jani, Mohit Marathe, Raphael Gaschiganrd, Rishi Kumar who also contributed some code in this release.
So what is Tokodon? Is is basically a client for the federated social network Mastodon. It is built with Kirigami with the goal to have a great integration with Plasma Desktop and Plasma Mobile, but it also works on other desktop environments, and even Windows and macOS.
Get it!
You can download Tokodon 23.02.0 from Flathub and from F-Droid using the KDE repo. Currently we don’t offer binaries for Windows and macOS but if you want to help with that, please get in touch on Matrix.
Post composer rewamp
As part of this release, we reworked the post composer considerably. This is the central area of your interaction with Mastodon and we wanted it to be more reliable.
It is now possible to add an alternative description to images and videos sent via Tokodon. This is very important for accessibility as images without alternative description are invisible for screen readers. (Carl Schwan, Link)
Alternative text
It is also now possible to see the upload progress when uploading an attachment, giving you some visual feedback that something is happening. (Carl Schwan, Link)
An error message will be displayed when sending a message didn’t work. The post composer will only be closed once the message is sent, so if there is an network error the post you wrote is not lost and you can try posting it again. This should make Tokodon much more reliable for interacting with Mastodon. (Joshua Goins, Link).
Error displayed when an error occurred when sending a post
Another big thing is that we are now supporting editing posts, so in case you made a typo you don’t need to delete your post and post it again. (Joshua Goins, Link)
And finally Tokodon respects your default sensibility and visibility preferences when posting, and when replying to a message, the visibility of the message will be inherited in your reply. So if you are replying to a private message, the reply will automatically be set to be also private. (Carl Schwan, Link)
Timeline and notification view
Aside from the improvements to the post editor, we continued to polish the timeline.
The models for timelines has been completely refactored. Aside from making the code nicer to work with and a bit faster, it also made it possible to show the avatar of who boosted or liked a post. (Carl Schwan, Link)
Avatar of the user who boosted a post is now displayed
Tokodon now doesn’t only support image as attachments, but we now also have a prelimary support for videos and gifs. (Joshua Goins, Link).
Additionally the previews for attachements should be better displayed with correct aspect ratio. (Joshua Goins, Link 1, Link 2)
New attachment layout
Other ways to interact with a post are now available in an overflow menu for posts adding actions like a “Copy link to post” feature (Joshua Goins, Link), a bookmark feature (Joshua Goins, Link) and the previously mentioned edit feature (Joshua Goins, Link)
Overflow menu showing additional actions
There are now some new special pages available in the sidebar to display your bookmarks as well as your favorite posts. (Joshua Goins, Link)
Favorite timelines
We now handle notifications for poll updates (Riya Bisht, Link), and when a post you interacted with gets updated (Harshil Jani, Link)
There are now placeholders for when you currently don’t have any notifications or conversations instead of showing you an empty view (Mohit Marathe, Link)
Search
The search field introduced during the last released got a nice visual refresh…
Search popup
… And it now supports searching for hashtags. (Joshua Goins, Link)
Other Improvements
It is now possible to configure the color scheme used by Tokodon independently from the Plasma color scheme. (Joshua Goins, Link but most of the code was copied in good tradition from NeoChat)
Color Scheme
We added the missing separators in the settings pages (Rishi Kumar, Link)
It is now possible to directly edit your account from your profile page (Joshua Goins, Link)
The user’s avatar in the profile page now uses the standard Kirigami.Avatar component (Joshua Goins, Link)
The behavior of selectable text fields is now consistent (Aakarsh MJ, Link)
Important Bugfixes
A bug that broke loading the timeline in some conditions has been fixed (Carl Schwan, Link)
We fixed rendering of some attachments caused by a bug in the blurhash decoding. (Joshua Goins, Link)
Storing the account settings is now using the account username and instance hostname as a unique identifier. This fixes situations where someone had multiple accounts with the same username on a different instance. (Raphael Gaschiganrd, Link)
Technical Details
Aside from the many new features, there were several large re-factorings of the code base to cleanup some code that younger-me wrote. The C++ code base now has a coverage of 36%, this is a small increase compared to the previous release. Rishi Kumar is also working on integration tests as part of his Season of KDE project.
Get Involved
If you are interested in helping, don’t hesitate to reach out in the Tokodon matrix channel (#tokodon:kde.org) and I will be happy to guide you.
I’m also regularly posting about my progress on Tokodon (and other KDE apps) on my Mastodon account, so don’t hesitate to follow me there ;)
And in case, you missed it, as a member of the fundraising working group, I need to remind you that KDE e.V., the non-profit behind the KDE community accepts donations.
Glaxnimate is proud to announce the release of version 0.5.2.
This latest update brings several exciting new features and improvements to enhance your animation creation experience.
Animation along Path
A script element has been removed to ensure Planet works properly. Please find it in the original post.
Earth and Moon graphics are from Noto Emoji
One of the major additions in this release is the ability to animate objects along a path.
This is a feature that allows you to animate elements in a more natural
and organic way by having them move along a custom path instead of a straight line.
With this feature in Glaxnimate, you can create animations of objects following a curved path,
like a bouncing ball or a spaceship flying through space.
After you add position keyframes to an object, the path can be adjusted with the edit tool,
giving you full control over the motion of your elements,
and the ability to fine-tune your animations until they look just right.
Improved User Interface
The interface layout has also been updated with new presets to provide better display on smaller screens,
and the ability to set custom shortcut settings for plugins has been added.
Enhanced Input/Output Functionality
To make your workflow even easier, a new export option as an image sequence has been added to the menu.
This release also brings support for loading and saving Rive animations,
improving the quality of video exports,
and adding command line options for rendering images without starting the GUI.
Issues with loading Glaxnimate and old Lotties files have also been resolved, as well as a crash on SVG export.
Scripting Additions
For developers and advanced users, the new release features a function to render a node at a specific frame, providing even more control over your animations.
Bug Fixes and Minor Enhancements
This release also includes several bug fixes,
including resolution of issues with loading Lotties with hidden fill and stroke,
improved previews in the stroke style view,
and proper application of duration changes in the startup dialog to all layers.
Additionally, Glaxnimate 0.5.2 includes the addition of Flatpak,
improved Freedesktop file naming and metainfo, and the ability to view contributors.
Messages are also logged to a file for better tracking of errors and issues.
The Select tool has also been improved, allowing for better handling of ungrouped shapes,
making your editing process smoother and more efficient.
Download
We are confident that these new features and improvements
will enhance your experience with Glaxnimate and look forward to
continuing to bring you the best vector animation application.
If you're interested in trying it out, head over to our
download page to get started.
As always, if you have any questions or feedback, feel free to reach out
to us via our issue tracker.
Thank you for your continued support of Glaxnimate!
As announced previously, Plasma 5.27 will have a significantly reworked multiscreen management, and we want to make sure this will be the best LTS Plasma release we had so far.
Of course, this doesn’t mean it will be perfect from day one, and your feedback is really important, as we want to fix any potential issue as fast as they get noticed.
As you know, for our issue tracking we use Bugzilla at this address. We have different products and components that are involved in the multiscreen management.
First, under New bug, chose the “plasma” category. Then there are 4 possible combinations of products and components, depending on the symptoms:
Possible problem
Product
Component
The output of the command kscreen-doctor -o looks wrong, such as:
The listed “priority” is not the one you set in systemsettings
Geometries look wrong
kscreen
common
Desktops or panels are on the wrong screen
There are black screens but is possible to move the cursor inside them
plasmashell
Multi Screen Support
Ordinary application windows appear on the wrong screen or get moved in unexpected screens when screens are connected/disconnected
Some screens are black and is not possible to move the mouse inside those, but they look enabled in the systemsettings displays module or in the output of the command kscreen-doctor -o
kwin
multi-screen
The systemsettings displays module shows settings that don’t match reality
The systemsettings displays module shows settings that don’t match the output of the command kscreen-doctor -o
systemsettings
kcm_kscreen
In order to have a good complete information on the affected system, its configuration, and the configuration of our multiscreen management, if you can, the following information would be needed:
Whether the problem happens in a Wayland or X11 session (or both)
A good description of the scenario: how many screens, whether is a laptop or desktop, when the problem happens (startup, connecting/disconnectiong, going out of sleep and things like that)
The output the terminal command: kscreen-doctor -o
The output of the terminal command: kscreen-console
The main plasma configuration file: ~/.config/plasma-org.kde.plasma.desktop-appletsrc
Those items of information already help a lot figuring out what problem is and where it resides.
Afterwards we still may ask for more informations, like an archive of the main screen config files that are the directory content of ~/.local/share/kscreen/ but normally, we wouldn’t need that.
One more word on kscreen-doctor and kscreen-console
Those 2 commands are very useful to understand what Plasma and the rest of the system thinks about every screen that’s connected and how they intend to treat them.
kscreen-doctor
Here is a typical output of the command kscreen-doctor - o:
Here we can see we have 3 outputs, one internal and two via DisplayPort, DP-4 is the primary (priority 1) followed by eDP-1 (internal) and DP-3 (those correcpond to the new reordering UI in the systemsettings screen module).
Important data points, also the screen geometries (in italic in the snippet) which tell their relative positions.
kscreen-console
This gives a bit more verbose information, here is a sample (copied here the data of a single screen, as the output is very long):
Important also the section EDID Info, to see if the screen has a good and unique EDID, as invalid Edids, especially in combination with DisplayPort is a known source or problems.
This is a non-comprehensive list of all of the major work I’ve done for KDE this month of January. I think I got a lot done this month! I also was accepted as a KDE Developer near the start of the month, so I’m pretty happy about that.
Sorry that it’s pretty much only text, a lot of this stuff isn’t either not screenshottable or I’m too lazy to attach an image. Next month should be better!
[Bugfix]
As part of cleaning up some KDE games-related stuff, I also looked into the issue of duplicate “What’s This?” tooltips. This also fixes that visual bug where you can close normal tooltips that don’t have “What’s This?” information to actually open.
[Feature]
I added something that’s been wanted for a while, Kirigami’s own “About KDE” dialog! It’s currently sitting in Add-ons, but will most likely be moved in the future. If you would like to suggest what we do about the About pages/windows in KDE, please check out the proposal. See the merge request.
Media improvements in Tokodon
[Bugfix]
I did a lot of work improving media in Tokodon this month, including fixing the aspect ratios scaling correctly, video support (not merged yet) and other miscellaneous fixes. I also caught a bunch of blurhash bugs along with making the timeline fixed-width so images aren’t absurdly sized on a typical desktop display. Also a fix for three media attachments!
Krita.org dark theme
I’m starting to get involved in improving the KDE websites, and currently working on the new Krita.org website and adding a proper dark theme to it.
I worked a little on solving the kdesrc-build issue of manual package lists, and created cmake-package-installer. It parses your CMake log and installs the relevant packages for you. I want to start looking into hooking this into kdesrc-build!
I made some misc changes to the Community Wiki this month, mostly centered around fixing some long-standing formatting issues I’ve noticed. The homepage should be more descriptive, important pages no longer misformatted (or just missing?) and the Get Involved/Development page should be better organized.
Misc Qt patches
[Bugfix]
I cherry-picked a Qt6 commit fixing video playback in QML, which should appear in the next Qt KDE Patch collection update, mostly for use in Tokodon when video support lands. I also submitted an upstream Qt patch fixing WebP loading, meant for NeoChat where I see the most WebP images. See the GStreamer cherry-pick and the WebP patch.
Window Decoration KCM overhaul
[Feature]
This isn’t merged yet (but it’s close!) so it barely misses the mark for January, but I’ll include it anyway. I’m working on making the Window Decoration KCM frameless and give it a new look that matches the other KCMs. See the merge request.
Flatpak applications are based on runtimes such as KDE or Gnome Runtimes. Both of these runtimes are actually based on Freedesktop SDK which contains essential libraries and services such as Wayland or D-Bus.
Recently there were a lot of discussion about supply chain attacks, so it might be interesting to ask how Freedesktop SDK was built. The answer can be found in freedesktop-sdk repository:
So it is built using an older version of Freedesktop SDK image. There is now an approved merge request that completely reworks bootstrapping of Freedesktop SDK. It uses another intermediate docker image freedesktop-sdk-binary-seed that bridges the gap between freedesktop-sdk and live-bootstrap.
So what is this live-bootstrap? If you look at parts.rst you’ll see that it is a build chain that starts with 256 byte hex assembler that can build itself from its source and also 640-byte trivial shell that can read list of commands from the file and executes them. Then it proceeds building 130 (as of the moment of writing) other components and in the process builds GCC, Python, Guile, Perl and lots of other supporting packages. Furthermore, each component is built reproducibly (and this is checked using SHA256 hash).
Some caveat: at the moment freedesktop-sdk-binary-seed still uses older binary of rustc to build rustc but in principle one could leverage mrustc to build it. Or possibly rust-gcc will become more capable in future versions and will be able to bootstrap rustc.
So unless your flatpak application uses rust, it will soon be buildable from sub 1 KiB binary seed.
Up until this version, QCoro::waitFor() was only usable for QCoro::Task<T>.
Starting with QCoro 0.8.0, it is possible to use it with any type that satisfies
the Awaitable concept. The concept has also been fixed to satisfies not just
types with the await_resume(), await_suspend() and await_ready() member functions,
but also types with member operator co_await() and non-member operator co_await()
functions.
QCoro::sleepFor() and QCoro::sleepUntil()
Working both on QCoro codebase as well as some third-party code bases using QCoro
it’s clear that there’s a usecase for a simple coroutine that will sleep for
specified amount of time (or until a specified timepoint). It is especially useful
in tests, where simulating delays, especially in asynchronous code is common.
Previously I used to create small coroutines like this:
A small helper coroutine that allows a piece of function to be executed in the context
of another thread.
void App::runSlowOperation(QThread *helperThread) {
// Still on the main thread
ui->statusLabel.setText(tr("Running"));
const QString input = ui->userInput.text();
co_await QCoro::moveToThread(helperThread);
// Now we are running in the context of the helper thread, the main thread is not blocked
// It is safe to use `input` which was created in another thread
doSomeComplexCalculation(input);
// Move the execution back to the main thread
co_await QCoro::moveToThread(this->thread());
// Runs on the main thread again
ui->statusLabel.setText(tr("Done"));
}
Historically, this was probably a good decision. Who does not remember that XML was so much easier to read, parse, and work with compared to binary or virtually any propitiatory file format?
KDE is aiming to bump its major version to 6. This might be a good time to reflect whether DocBook should serve as the sole official documentation language. Well, I would like to open this to an optional second language.
I don't mind what the second language could be; possible candidates are reStructuredText / Sphinx, Markdown, AsciiDoc -- among others. I don't want to convert DocBook to any other format. But giving projects some choice, might help.
I am by far not the only person with regard to a replacement of DocBook: DigiKam recently switched to Sphinx for their user documentation after 20 years of using DocBook. Krita uses Sphinx for five years and Kdenlive for over a year. By the way, the Linux kernel left DocBook for Sphinx, too.
What do you think? This would be a good topic for an Akademy BoF. Where should we discuss this in the meantime?