Welcome to Planet KDE
This is a feed aggregator that collects what the contributors to the KDE community are writing on their respective blogs, in different languages
Sunday, 19 May 2024
KDE today announces the release of KDE Frameworks 5.116.0.
KDE Frameworks are 83 addon libraries to Qt which provide a wide variety of commonly needed functionality in mature, peer reviewed and well tested libraries with friendly licensing terms. For an introduction see the KDE Frameworks release announcement.
This release is part of a series of planned monthly releases making improvements available to developers in a quick and predictable manner.
New in this version
Breeze Icons
- Add audio/ogg and audio/x-vorbis+ogg icons
- Add audio/vnd.wave MIME type
Extra CMake Modules
- ECMAddQch: drop trying to set IMPORTED on targets with installed config
- Remove extraneous docs-build CI job that is no longer needed following the switch of api.kde.org to Gitlab CI
KActivitiesStats
- resultset: fix agent escape string
KCalendarCore
- Fix Calendar::updateNotebook event visibility updates
KContacts
- Restore country detection tests on FreeBSD
- Disable FreeBSD tests that recently started to fail in the CI
KDED
- Wait until kconf_update finished
KFileMetaData
- fix handling of attribute namespacing
KI18n
- KF5I18nMacros.cmake.in - don't look for python[2,3] on Windows
- KCountrySubdivision: unbreak support of iso-codes >= 4.16
KImageFormats
- TGA: added options support (bug 479612)
- More header checks (CCBUG: 479612) (bug 479612))
KIO
- Strip trailing slash in iconForStandardPath
KItemModels
- Trivial fix for crash in buddy() when sourceModel isn't set yet
KPackage Framework
- testpackage: Add a website so that the tests succeed
KRunner
- Add default arg to AbstractRunner QVariantList constructor
KService
- Fix warning: mimeType "x-scheme-handler/file" not found (bug 442721)
QQC2StyleBridge
- Localization support
Syntax Highlighting
- fix refs
- use (?:sub){0,2} to work with all pcre versions
Security information
The released code has been GPG-signed using the following key: pub rsa2048/58D0EE648A48B3BB 2016-09-05 David Faure faure@kde.org Primary key fingerprint: 53E6 B47B 45CE A3E0 D5B7 4577 58D0 EE64 8A48 B3BB
Saturday, 18 May 2024
KDE’s KContacts framework provides API for locale-aware address formatting and address format metadata since quite some time, with an upcoming change this will all also be available for QML code directly.
Country-specific address formatting
Addresses are generally formatted differently depending on the country they are in. Such differences can be whether the state or region is relevant/included, how different parts are ordered or how different parts are joined in the local language/script.
If we have address information in a somewhat structured form, ie. broken up into individual parts (street, postal code, city, country, etc), displaying that correctly requires knowledge of those formatting rules. As this is not an uncommon problem, the KContacts framework provides C++ API for this. Using that from QML without custom glue code is now also becoming possible.
Different formatting styles are supported (single- or multi-line, international or domestic, for display or for postal mail labels).
Address format metadata
Additionally, the metadata necessary for formatting addresses can also be queried. This is useful for example for:
- Showing only the input fields in an address edit form actually relevant for a specific country.
- Input validation of postal codes, as shown in the code example below.
- Ordering input fields in the canonical order in a given country.
More elaborate examples can be found e.g. in Itinerary’s address/location editor.
What’s still missing
Review and approval of this MR.
A few weeks ago, some of us discovered that KDE apps just looked terrible when run in GNOME. A lengthy discussion on icon theming ensued, with various improvements made on both sides. The KDE effort was spearheaded by Christoph Cullmann, as already described in his post on the subject. In a nutshell, KDE apps opting into the new system that are run outside of Plasma will always have the Breeze style and icons available, unless overridden by the system or the user. Apps opting in so far include Kate, Konsole, and Dolphin. Feel free to help opt more apps in by using those commits as inspiration!
Dolphin itself also received a lot of special attention this week, in addition to other cool stuff:
New Features
Dolphin now gives you the option to enable previews for folders on remote locations. Be aware that this can cause slowdowns, and the UI tells you that, too (Sergey Katunin, Dolphin 24.08. Link):
Discover now handles the case where one of your Flatpak apps has been marked as “end of life” and replaced with another one; it gives you the opportunity to switch to the new one, or cancel and keep using the old one anyway (Harald Sitter, Plasma 6.1. Link):
UI Improvements
Dolphin’s ability to let you change things as root when kio-admin
is installed has received a big upgrade: now it shows you a warning telling you what bad things you can do if you’re not careful, and also keeps a banner visible while you’re in root mode (Felix Ernst, Dolphin 24.08. Link):
Dolphin has received a number of UI improvements and better handling for viewing read-only folders (Jin Liu, Dolphin 24.08. Link)
Switched Spectacle over to using the common style for immutable toolview tabs in Kirigami apps (me: Nate Graham, Spectacle 24.08. Link):
KMenuEdit no longer annoyingly prompts you for confirmation when you delete a group (Kenny Hui, Plasma 6.1. Link)
The icons shown in our dialogs no longer themselves depict dialogs for mega dialog-ception; now they’re just normal colored icons (me: Nate Graham, Frameworks 6.3. Link):
Bug Fixes
Attempting to open multiple “New Folder” dialogs on a slow network location no longer causes Dolphin to crash (Akseli Lahtinen, Dolphin 24.08. Link)
Very small SVG images are now displayed properly in thumbnail previews (Méven Car, kio-extras 24.08. Link)
Fixed a case where our authentication system could crash and leave apps unable to request authentication (me: Nate Graham, Plasma 6.0.5. Link)
Turning on HDR mode no longer makes the screen colors wrong when using Night Color (Xaver Hugl, Plasma 6.0.5. Link)
Screens using fractional scale factors no longer get a weird row of pixels on the bottom edge that are held to the color of previously opened windows (Xaver Hugl, Plasma 6.0.5. Link)
Fixed several Plasma crashes that were introduced by porting some custom drag-and-drop code to the upstream Qt thing, but turns out to not be suitable for our purposes. Reverting to our custom code fixes the crashes (Kai Uwe Broulik, Plasma 6.1, Link 1 and link 2)
When Chromium-based browsers are running in native Wayland mode, dragging and dropping files into websites no longer makes them freeze and crash. This was a complicated bug largely caused by Chromium doing something unusual, but KWin now handles it properly (David Edmundson, Plasma 6.1. Link)
Visiting System Settings’ File Search page no longer sometimes causes a long hang when the file indexer is under heavy load (Janet Blackquill, Frameworks 6.3. Link)
If for some reason you want to use the Kickoff application launcher to search for a single character, close Kickoff, and then do the same thing again, the second search will now show results as expected (Alexander Lohnau, Frameworks 6.3. Link)
KSvg
items and Kirigami.Icon
used in Plasma now re-color re-colorable SVG images in the expected way when they’re displayed in Plasma irrespective of color scheme. This makes the CatWalk cat look correct while using a mixed light/dark global theme like Breeze Twilight (Marco Martin, Frameworks 6.3. Link):
Other bug information of note:
- 3 Very high priority Plasma bugs (same as last week). Current list of bugs
- 39 15-minute Plasma bugs (up from 38 last week). Current list of bugs
- 106 KDE bugs of all kinds fixed over the last week Full list of bugs
…And Everything Else
This blog only covers the tip of the iceberg! If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.
How You Can Help
The KDE organization has become important in the world, and your time and labor have helped to bring it there! But as we grow, it’s going to be equally important that this stream of labor be made sustainable, which primarily means paying for it. Right now the vast majority of KDE runs on labor not paid for by KDE e.V. (the nonprofit foundation behind KDE, of which I am a board member), and that’s a problem. We’ve taken steps to change this with paid technical contractors—but those steps are small due to growing but still limited financial resources. If you’d like to help change that, consider donating today!
Otherwise, visit https://community.kde.org/Get_Involved to discover other ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!
Friday, 17 May 2024
The MarkNote team is happy to announce the 1.2 release of MarkNote, KDE’s WYSIWYG note-taking application. Marknote lets you create rich text notes and easily organise them into notebooks. You can personalise your notebooks by choosing an icon and accent color for each one, making it easy to distinguish between them and keep your notes at your fingertips. Your notes are saved as Markdown files in your Documents folder, making it easy to use your notes outside of Marknote as well as inside the app.
Notes management
This releases brings highly wanted features like the ability to choose a custom folder where to store your notes. Mathis Brüchert also added the ability to change the sorting of notes from alphabetically to by date.
Mathis made the sidebar collapsable and added a focus mode where everything but the editing page is displayed.
Finally if you prefer to just use Marknote as a Markdown editor, we made it possible to just open any markdown files directly from the file browser or the console. Additionally Marknote supports markdown files with a so called front matter, which is a common way to inject metadata to markdown in static website generators like Hugo and Jekyll.
Editing
In term of edition support, the subset of markdown supported increased again. Now it is possible to add and edit tables.
Additionally we started transforming inline markdown directly to rich text as you type. Support is limited to a few markdown constructs but is likely to grow over time.
You can now customize the font used by editor.
Aside from being able to edit text, it’s now possible to also create sketches directly from MarkNote.
Mobile Support
Mathis took care of ensuring MarkNote was fully usable when used with Plasma Mobile.
Windows and macOS support
Marknote now provides nightly builds for Windows and macOS. While the Windows builds should be fully usable, the macOS build still has an issue where most icons are not displayed. This should be fixed as soon as we can make use of the new KIconTheme version.
As part of the work to improve the macOS support, Marknote also gained global menu support for Linux.
Others
- The command bar will show translated shortcuts. (Laurent Montel)
- Unify spelling of MarkNote and fix typos in the README.md (Jonah Brüchert)
Get Involved
Mathis created a Matrix channel for MarkNote: #marknote:kde.org. There is also still a lot of small improvements that can be done everywhere and which don’t require a lot of programming experience. Take a look at these two tasks !31 and !27 for some inspiration on what you could work on.
Let’s go for my web review for the week 2024-20.
Password cracking: past, present, future
Tags: tech, security
Ever wondered about the state of the art in password cracking? This is not an easy read but a good reference.
https://www.openwall.com/presentations/OffensiveCon2024-Password-Cracking/
Beyond public key encryption – A Few Thoughts on Cryptographic Engineering
Tags: tech, cryptography
There are other cryptography schemes out there with interesting properties. Too bad they’re not very much used.
https://blog.cryptographyengineering.com/2017/07/02/beyond-public-key-encryption/
SSD death, tricky read-only filesystems, and systemd magic?
Tags: tech, system, hardware, failure
Strange things do happen when the hardware fails… indeed the systemd open question at the end is mysterious.
https://rachelbythebay.com/w/2024/05/15/ro/
The new APT 3.0 solver | Blog of Julian Andres Klode
Tags: tech, debian, packaging
Interesting work. This is nice to see improvements and experiments in dependency solvers for package managers.
https://blog.jak-linux.org/2024/05/14/solver3/
Extensions for GNU Make
Tags: tech, tools, make
Looks like nice extensions to use GNU Make to run simple tasks.
https://github.com/mitjafelicijan/makext
Which filepath-join behavior is implemented for relative and absolute paths as arguments?
Tags: tech, system, filesystem
You expect joining file paths to be a simple operation? Think again, it’s definitely error prone and can change between stacks.
https://lukas-prokop.at/articles/2024-05-03-filepath-join-behavior
What even is a pidfd anyway?
Tags: tech, processes, system, linux
Definitely a recent and lesser known to interact with other processes. Could be useful in some cases.
https://www.corsix.org/content/what-is-a-pidfd
An informal comparison of the three major implementations of std::string - The Old New Thing
Tags: tech, c++, performance, memory
Interesting quick comparison, this shows the design tradeoffs quite well.
https://devblogs.microsoft.com/oldnewthing/20240510-00/?p=109742
GPUs Go Brrr · Hazy Research
Tags: tech, gpu, hardware, ai, machine-learning, neural-networks, performance
Interesting how much extra performance you can shave off the GPU by going back to how the hardware works.
https://hazyresearch.stanford.edu/blog/2024-05-12-tk
Sir, there’s a cat in your mirror dimension
Tags: tech, graphics, mathematics, funny
Funny experiment playing with the frequency domain and the spatial domain of an image. This gives unintuitive results for sure.
https://lcamtuf.substack.com/p/sir-theres-a-cat-in-your-mirror-dimension
Snapshot Testing For the Masses
Tags: tech, tests, snapshots
This is a technique which is definitely underestimated. There are plenty of libraries out there allowing to use them.
https://tigerbeetle.com/blog/2024-05-14-snapshot-testing-for-the-masses
Laurence Tratt: What Factors Explain the Nature of Software?
Tags: tech, programming, software, craftsmanship, engineering
Good food for thought. Explains quite well the factors which impact software development.
https://tratt.net/laurie/blog/2024/what_factors_explain_the_nature_of_software.html
Bye for now!
Tuesday, 14 May 2024
KDE e.V., the non-profit organisation supporting the KDE community, is looking for a graphic designer to implement materials (print design, logo design, infographics, etc.) for a new environmental sustainability campaign within KDE Eco. Please see the job ad for more details about this employment opportunity.
We are looking forward to your application.
Monday, 13 May 2024
So this is not quite an introduction since the plugin has been around for almost a year now, having been released in the 23.04 release but since I never got around to writing a blog about it, here I am.
In simple words, the formatting plugin allows one to format code easily and quickly. Well the "quickness" depends on the underlying code formatter but we try to be as quick as possible. So far if you wanted to do code formatting from within Kate, the only way to do that was to configure a tool in the External Tools plugin and then invoke it whenever you wanted to format the code. While this works it wasn't great for a few reasons. Firstly, you would loose undo history. Secondly, the buffer would jump and you would most likely loose your current position in the document. Thirdly, for every language you get a different tool and you need to remember the right tool to invoke on the right document type.
To simplify this, I decided to write a plugin that would expose a minimal UI but still provide a lot of features.
There are basically two ways to use this plugin:
- Manually using the "Format Document" action.
- Automatically on save
The correct formatter is invoked based on the document type in all cases. Additionally the plugin will preserve the document's undo history and user's cursor position when formatting the code so that the formatting of code doesn't disrupt user's workflow. This is especially important for automatic formatting on save.
Supported languages:
The current list of supported languages and formatters are as follows:
- C/C++/ObjectiveC/ObjectiveC++/Protobuf
- clang-format
- Javascript/Typescript/JSX/TSX
- Prettier
- Json
- clang-format
- Prettier
- jq
- Dart
- dartfmt
- Rust
- rustfmt
- XML
- xmllint
- Go
- gofmt
- Zig
- zigfmt
- CMake
- cmake-format
- Pythong
- autopep8
- ruff
Configuring
The plugin can be configured in two ways:
- Globally, from the Configure dialog
- On a per project basis using the
.kateproject
file
When reading the config, the plugin will first try to read the config from .kateproject
file and then read the global config.
Example:
{
"formatOnSave": true,
"formatterForJson": "jq",
"cmake-format": {
"formatOnSave": false
},
"autopep8": {
"formatOnSave": false
}
}
The above
- enables "format on save" globally
- specifies "jq" as the formatter for JSON
- disables "format on save" for cmake-format and autopep8
To configure formatting for a project, first create a .kateproject
file and then add a "formatting"
object to it. In the "formatting"
object you can specify your settings as shown in the previous example. Example:
{
"name": "My Cool Project",
"files": [
{
"git": 1
}
],
"formatting": {
"formatterForJson": "clang-format",
"autopep8": {
"formatOnSave": false
}
}
}
A few weeks ago I attended the KDE Goals April 2024 sprint
I was there as part of the Automation & Systematization sprint given my involvement in the release process, the "not very automatized" weekly emails about the status of CI about KDE Gear and KDE Frameworks, etc. but I think that maybe I was there more as "person that has been around a long time, ask me if you have questions about things that are documented through oral tradition"
I didn't end up doing lots of work on sprint topics themselves (though I participated in various discussions, did a bit of pair-programming with Aleix on QML accessibility issues, inspired DavidR to do the QML-text-missing-i18n check that he describes in his blog); instead I cheated a bit and used the sprint to focus on some of the KDE stuff I had a bit on my backlog, creating the KDE Gear release/24.05 branches and lots of MR reviewing and more!
Thanks KDE e.V. for sponsoring the trip, if you would like such events to continue please we need your continued donations
And remember Akademy talk submission period ends in 10 days, send your talk now!