Planet KDE

Subscribe to Planet KDE feed Planet KDE
Planet KDE | English
Updated: 23 hours 25 min ago

Calamares ABI Checking

Sun, 2024-07-07 18:00

Seems like over 3 years ago I wrote something about ABI stability checking and investigated a little how tools could be used to help maintain ABI stability for Calamares. Here are some callback notes.

Tooling Choices

I ended up using abigail for ABI checking, because it’s available on FreeBSD and Ubuntu and just seems like it has a compatible mindset for what I want to do: tell me the ABI difference between two Calamares releases.

The tool for that is abidiff and applying the tool is literally a matter of getting two versions of a shared object (.so) and running diff.

In Calamares I put together some scripts to automate this, since building versions of the Calamares shared objects is not quite trivial. The scripts also help out with the ABI-stability promise (or, um .. pinky swear, maybe).

Calamares ABI Stability Policy

When the Calamares 3.3 series started, one of the ideas was that in 3.3, the ABI should be stable, so that external / third party modules for Calamares should be able to keep working without a recompile. During 3.2 development, things were very unstable and everything needed to be recompiled all the time – and having a Boost dependency didn’t help much either, since there are so many distro’s with poor .so hygiene.

So the idea was to keep ABI stability, and to check that it was so.

Unfortunately, 3.3.0 released with a wide-open ABI because I forgot to turn on hidden-visibility by default, and there were a lot of not-quite-there cleanups that still needed doing.

By the time 3.3.3 came out, three months later, things were in better shape.

Right now, I’ve defined 3.3.3 as “the stable starting point”, and check ABI compatibility against that every now-and-again. Not regularly, not as part of releases (I suppose I would accept a PR that added a check that enforces it as part of the release script).

Anyway, the idea is that there should be “minimal” ABI changes. That is a lot less strict than, say, the KDE Frameworks Policies about C++ compatibility (hm .. those pages talk a lot more about kdelibs and KDE4 than I would have expected). New classes are ok, and it’s also ok for them to take a couple of releases before “settling down”.

Calamares Current ABI Issues

Abigail is fairly verbose and quite explicit about changes; I like that. Here’s the summary of summary information between 3.3.3 and 3.3.9 (not released yet, development branch):

Changed leaf types summary: 1 leaf type changed Removed/Changed/Added functions summary: 0 Removed, 2 Changed, 8 Added functions Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 1 Added variable Function symbols changes summary: 0 Removed, 4 Added function symbols not referenced by debug info Variable symbols changes summary: 0 Removed, 3 Added variable symbols not referenced by debug info

Added isn’t a problem (there was an issue where the PC would suspend / sleep during installation if you didn’t prod the mouse, and I added a class to manage sleep-inhibition through the XDG DBus API). Changed ones are more serious:

'struct Calamares::CommandLine at CommandList.h:31:1' changed: type size changed from 128 to 256 (in bits) 2 data member insertions: 'std::__1::chrono::seconds m_timeout', at offset 128 (in bits) at CommandList.h:101:1 'std::__1::optional<bool> m_verbose', at offset 192 (in bits) at CommandList.h:102:1

I’ve decided that this class is sufficiently “internal-ish” and sufficiently new that I’m not going to worry about it – independent of the question whether anyone even builds external C++ modules for Calamares that use it.

Calamares Big ABI Changes

Just for the record, there’s nothing planned. I can imagine one or two things that would drive a big ABI upheaval: one is adding a virtual function to modules to help with consistent configuration loading – so that we can get better checking up-front of what distro’s are putting into the configuration files, rather than waiting for an installation to be botched.

Categories: FLOSS Project Planets

Kate and OrgMode

Sat, 2024-07-06 20:00

I have a very.. unusual notetaking and task setup with Kate, using Orgmode files. I wanted to showcase it and explain how it works, maybe someone else has similar needs.

Here's a small screenshot of my journal notes, I blurred out some things I didn't want to share.

Why OrgMode?

I actually prefer markdown much more. I enjoy writing markdown files and it just works in most editors. However, there is zero markdown note taking apps on android, that allow me to sync from my nextcloud and have notifications.

I write very journal style notes. I have one big journal file (used to be a file per day before), where I write down all the interesting things that happened, plus most importantly, my work tasks.

I tried to use calendar with tasks before.. But theres way too much context switching between notetaking apps, calendars, tasks (and on android you have to have two apps for tasks and calendar!!!). I was drowning in various apps and windows, constantly hopping around..

All I wanted to do was write down a task in my journal, then have that task notify me on my phone and on my desktop whenever it was scheduled.

So eventually I found an app called Orgzly Revived. It lets me take the outline style notes where everything is a bulletpoint, with tasks and such, timers, repeats.. And it has the dang phone notifications no other note taking app has. So it's perfect. Works awesome for my needs.

Only thing is that it requires Orgmode files. Okay, I can do that. I first used Logseq with both markdown and orgmode files, but it's quite slow app, even on my nice PC. And no notifications on mobile of course.

I then realised that I am trying to overcomplicate things. I live a lot of my work life in Kate editor, so I decided to start using that. I had to update the Orgmode Kate syntax file a bit to make it work better for me (it's been upstreamed now yay), but other than that it works really nicely.

And why not Emacs? I need an editor, not an OS. Well, jokes aside, I am just not really into learning yet another tool for something like note taking. Last time I tried to set up Neovim config that works for me, I just ended up doing everything in Kate.. I wager same would happen with emacs. I am very happy with Kate, that's all. And I contribute to it now and then, so it just makes sense to use it. :)

Now I just sync all my note files through my Nextcloud to my phone and my computers. I have couple scripts that make figuring out my agenda and have notifications on my PC as well.

My Kate setup

My setup took some time to get together and with couple scripts and snippets it works pretty well.

  • First, you need to git clone https://codeberg.org/akselmo/kate-orgmode.git
    • In there I have couple python and shell scripts, and snippets for Kate
    • You need to create a .venv for it with python -m venv .venv and then pip install -r requirements.txt
    • Check the Readme file for how to use the snippets
  • Create session called Notes.
    • In Plasma, you can just search "Notes" in KRunner and open the Notes session, that just opens the files.
  • Symlink the org mode snippets to ~/.local/share/ktexteditor_snippets/data/ and make sure they work in Kate
    • Snippets are incredibly powerful in Kate, i recommend using them for many things!
    • These snippets automate stuff like "worktask" entries.
    • Unfortunately any timestamps need to be modified by hand, i have not yet had time to make an external tool that spawns a calendar view and spits out a timestamp.
    • For example, "worktask" adds a following item.
* TODO [#ABC] task_name :work: SCHEDULED: <2024-07-07 Sun 21:12> DEADLINE: <2024-07-07 Sun 21:12> :PROPERTIES: :CREATED: [2024-07-07 Sun 21:12] :product: product :kdebug: [[https://bugs.kde.org/show_bug.cgi?id=bugid][bugid]] :merge-request: UPDATE_ME :END:
  • Add an "external tool" entry for the run-orgagenda.sh item in the files.
    • Set the "Output" setting to "Display in a panel"
    • For the scripts, make sure they're reading right folder (where your notes are)
    • Now you can press ctrl+alt+i and type Org Agenda and it shows you a fun lil overview in a panel of all your items in agenda
  • In your DE's autostart, add the run-orgnotifier.sh script.
    • This will send notification for anything you have set as scheduled or deadline before 30 min, and before/after 5 min of the timestamp.

That should be it for the setup, the code for these scripts is absolutely horrid but you should check that all filepaths match yours etc. I need to clean up the code when I feel like it but honestly it Just Works:tm: for now.. lol.

Journaling?

I have one single file that is called Journal-2024 and I create new journal every year. In this journal file, I prepend new items on top of the file, like this.

* Daily notes 2024-07-07 :PROPERTIES: :CREATED: [2024-07-07 Sun 21:20] :END: Some notes for this day ** Some specific subnote for this daily note blabla * TODO [#A] do this task ples :personal: SCHEDULED: <2024-07-06 Sat 21:22> DEADLINE: <2024-07-07 Sun 21:23> :PROPERTIES: :CREATED: [2024-07-05 Fri 21:22] :END: blalbla * DONE [#B] ancient task :work: :PROPERTIES: :CREATED: [2000-01-01 someDayIdk 21:23] :END: its been 24 years #+BEGIN_SRC code ancient code #+END_SRC

This means that you can just quickly see all the new items. Also in Kate, there's a handy feature for folding all toplevel nodes when you press ctrl+alt+i so you get just list of all headers. I use it all the time. Folding the nodes only works with the newest ksyntaxhighlighting since i recently updated the orgmode syntax file to support that lol.

Anything else

Any other items go to their respective note files.

For example anything related to programming goes to "Programming notes" file. Then I use tags for those items to categorize them based on language, framework, etc..

Instead of having many small files, I have multiple big files, where I categorize items with tags. I can then easily search for items by typing :tag: in the search field in Kate, and it shows me all items related to that tag. Just, well, remember to tag your items! :D

Wrap up

To wrap it up, this system has made things much easier to remember for me, and I can handle more complicated tasks like repeating workout tasks with my phone. (I can do it in Kate too but it requires manual number changing).

I wouldn't mind changing back to markdown if there was a markdown app for phone that has actual notifications.

Sorry this post is a bit all over the place, but there's really not much more interesting things to share about this. It's just couple scripts reminding me or showing all the items in my agenda, and the rest is snippets in Kate and writing orgmode files.

And I am quite happy with my system. Maybe it'll help you to get some ideas too!

Also please tell me about any markdown note taking apps that have notifications on mobile and desktop, if you know any. You can ping me on fedi, which you can find on my about section.

Thanks for reading!

Categories: FLOSS Project Planets

Kids ‘n Billies 2024 (Music Review)

Sat, 2024-07-06 18:00

Kids ‘n Billies is a yearly music festival in Nijmegen. The genre is rockabilly, folk, ’50s, punk. It is a family friendly festival, outdoors in the fairly small (seats 900) open-air theatre the Goffert. I got “married” – by two Elvis impersonators – to my nepgenoot at the festival in 2012, so it’s our yearly musical outing. Here are some notes from this year’s edition, which was two weeks ago already.

The festival is arranged around two stages. Main stage is the central theatre, and there is a bospodium (forest stage) in the shrubbery where maybe 50 people can crowd around a stage that is about 4-by-3 metres. My preference goes out to the bospodium, because it is such a more intimate experience.

On the whole, this is also a kid-friendly festival (like there’s buckets where you can re-load your water pistols, if it’s a sunny day). The birds are singing, you sit on the grass or stand under the trees. That does make some genres feel a bit out-of-place.

Notes from the Main Stage
  • The Gories felt out-of-place. If I was at a dark and boozy get-together and hanging around at the edge of the pit, it’d be fine. Not by the light of day.
  • King Salami and the Cumberland 3 seemed like a racist caricature of themselves. I felt a bit uncomfortable watching them – because is it me projecting racist expectations, is it them playing with my expectations, or are we just all having fun – but they absolutely had a blast on stage and were really good with the kids. King Salami is a top-notch front-man.
  • Slim Cessna’s Auto Club did not resonate with me at all. Kinda slick country, and I thought George Cessna’s solo set (Bospodium) was way better.
  • Tornado Beat! have all the right moves and a very traditional rockabilly line-up. Danceable, and a tight set.
  • Angry Zeta are a pack of raccoons (mapaches, as they translated for me later) from Buenos Aires in punk rock clothes with rockabilly sensibilities and a bunch of really sweet people, too. I learned some Spanish, and was reminded of various independence movements by their tour poster – as in, their tour locations were in Euskal Herria, Catalunya, Schweiz, Nederland, .. . They look scary, make a lot of noise, and have fun doing it.
Notes from the Park

Thanks to Korte Metta for doing my hair, so I had lovely flowers and ’50s girly bows and things. At the festival she mostly does kids and a few adults, and I commend her for making one big hairy dude totes adorable.

Notes from the Bospodium
  • Posessed by Paul James had two sets, and they played in Eindhoven a couple of days later and was good enough that I had to go see him again. One guy with a guitar, a banjo, and a violin. “Posessed” is a really accurate description. It’s personal, it’s wild.
  • Hymn for Her was a trio – no dog on this tour – for the set and projected really well. With a synth piano, which I thought was a bit daring at a rockabilly festival, but Diver (the pianist) nailed it. The way the family plays together is really nice to see.
  • George Cessna looked like a hipster, had a backing track he recorded earlier, and was both soulful and country and I really liked it. Raised my hopes for the Auto Club, later, but that was a disappointment.
  • Van Tastik reminded me a bit of the Reverend Deadeye. It’s a one-man band, good stage presence and connects to the audience. My nepgenoot didn’t like some of the first set, but the good fallen Reverend Van Tastik promised a more friendly second set, and delivered. That’s one really nice part of a small festival like this – you literally can grab a beer with the artists and sit a spell. Anyway, for grunchy-punchy one-man noise, this is a man to follow.

A recurring theme from the artists is that the socials are really important to them from a financial perspective. I’m personally not on any of those socials (YouTube, Twitter, Instagram, …) so I can’t help them there, but I figure I can at least make a little noise for them all. And buy the T-shirt.

Categories: FLOSS Project Planets

RIT Malayalam fonts: supporting a range of OpenType shapers

Sat, 2024-07-06 07:13

The open fonts for Malayalam developed by Rachana Institute of Technology use our independently developed advanced shaping rules since 2020. A conscious decision was made to support only the revised OpenType specification for Indic scripts (the script tag mlm2, which fixed issues with the v1 specification such as halant shifting). Our shaping rules provide precise, exact and definite shaping for Malayalam Unicode fonts on all major software platforms.

And yet, there are many users who still use either old or buggy softwares/platforms. Hussain and Bhattathiri have expressed angst and displeasure in seeing their beautifully and meticulously designed fonts not shaped correctly on some typeset works and prints (for instance, Ezhuthu is used by Mathrubhumi newspaper showing detached u-signs). I have received many requests over the years to add support for those obsolete (or sometimes proprietary) platforms, but have always refused.

Fig. 1: Detached ു-sign & other shaping issues with InDesign

Few weeks ago, CVR and I were trying to generate Malayalam epub content to read on a Kobo ebook reader (which supports loading user’s own fonts, unlike Kindle). We found that Kobo’s shaping software (quite possibly an old version of Pango) does not support the v2 OpenType specification. That did irk me and I knew it is going to be a rabbit hole. A little bit of reverse engineering and a day later, we were happy to read Malayalam properly shaped in Kobo, by adding rudimentary support for v1 spec.

Fig. 2: RIT Rachana shaped perfectly with Kobo ebook reader (ignore the book title).

Out of curiosity, I checked whether those small additions work with Windows XP, but it did not (hardly surprising). But now that the itch has been scratched; a bunch of shaping rules were added to support XP era applications as well (oh, well).

Fig. 3: RIT Rachana shaped perfectly in Windows XP.

Few days later, a user also reported (known) shaping issue with Adobe InDesign. Though I was inclined to close it as NOTABUG pointing to use HarfBuzz instead, the user was willing to help test a few attempts I promised to make. Adobe 2020/2021 (and earlier) products use Lipika shaper, but recent versions are using HarfBuzz natively. Lipika seems to support v2 OpenType specification, yet doesn’t work well with our existing shaping rules. Quite some reverse engineering and half a dozen attempts later, I have succeeded in writing shaping rules that support Lipika along with other shapers.

Fig.4: RIT Rachana shaped perfectly with InDesign 2021 (note: the characters outside margins is a known issue only with InDesign, and it is fixed with a workaround).

All published (and in progress) RIT Malayalam fonts are updated with these new set of shaping rules; which means all of them will be shaped exactly, precisely and correctly (barring the well-known limitation of v1 specification and bugs in legacy shapers ) all the way from Windows XP (2002) to HarfBuzz 8.0 (present day) and all applications in between.

Supported shaping engines

With this extra engineering work, RIT fonts now tested to work well with following shaping engines/softwares. Note: old Pango and Qt4 have shaping issues (with below base ല forms and ു/ൂ forms of conjuncts, in respective shapers), but those won’t be fixed. Any shaper other than HarfBuzz (and to a certain extent Uniscribe) is best effort only.

New releases

New releases are made available for all the fonts developed by Rachana Institute of Typography, viz.

Acknowledgements

A lot of invaluable work was done by Narayana Bhattathiri, Ashok Kumar and CV Radhakrishnan in testing and verifying the fonts with different platforms and typesetting systems.

End users who reported issues and helped with troubleshooting have also contributed heavily in shaping (pun intended) community software like RIT Malayalam open fonts.

Categories: FLOSS Project Planets

Port Arianna to Foliate-js - GSoC '24

Sat, 2024-07-06 04:00
Who am I?

I am Ajay Chauhan (IRC: hisir:matrix.org), currently in my second year of undergraduate studies in Computer Science & Engineering. I'll be working on porting Arianna to Foliate-js for my Google Summer of Code project. I have previously worked on Kdenlive as part of the Season of KDE '24.

I hope to help bring the said feature into reality, but also to sharpen my own development skills through real-world projects, contribute back to the open source community and gain more inner confidence.

What am I working on for this year’s GSoC?

Arianna uses epub.js, which is no longer actively maintained. This creates a challenge as the epub.js may not be able to keep up with the evolving standards and new changes. To address this issue, the proposed solution is to port Arianna to the Foliate-js, which is an actively maintained epub renderer and has more features compared to epub.js and is used by the Foliate ebook reader also.

The problem that this project aims to solve is the need for a reliable and up-to-date epub rendering solution for the Arianna ebook reader. By porting Arianna to Foliate-js, the project will ensure that Arianna can continue to provide support for the latest epub standards and features.

My mentors for the project is Carl Schwan, and I appreciate the opportunity to collaborate with and learn from him during this process.

My work done so far Setting up the development environment

First step was to setup the dev environment, I used Qt Creator for that, it’s fairly easy to set up the development environment.

Reading through existing codebase

The journey began with a thorough review of the existing implementation of epub.js (epub-viewer.js) in Arianna. I identified the features and functionalities that needed to be ported to Foliate-js, understanding how epub.js was used in Arianna for rendering, navigation, and user interactions, and the C++ backend code.

Next, I focused on identifying all the places where epub.js was integrated with Qt in Arianna. This involved comparing the existing implementation with Foliate-js's approach to implementing the same features. To document the changes, I prepared a draft merge request.

Familiarised myself with the current Foliate reader implementation of the foliate-js. However, challenging for me to understand the backend architecture and how different components are interconnected within Foliate-js, requiring additional time to fully grasp the codebase.

Implementing changes
  • Fixing the tricky part of the loading process. I had a hard time wrapping my head around how all the pieces fit together. My mentor helped me in this.
Implemented Table of Contents (TOC) functionality: const { book } = action.payload; if (book && book.toc) { applicationWindow().contextDrawer.model.importFromJson( JSON.stringify(book.toc) ); } else { console.warn("Book or TOC not available"); }

It takes the TOC data from the book and imports it into the app's context drawer. This way, users can easily access and navigate through the book's structure.

Added metadata handling: const metadata = action.payload.book.metadata; if (metadata) { backend.metadata = metadata; root.bookReady(backend.metadata.title); Database.addBook(backend.file, JSON.stringify(metadata)); }

Let me break down what this does:

  • First, it grabs the metadata from the book that's been loaded.
  • If there's metadata, it does a few important things:
    • Updates the backend with this new info.
    • Tells the app that the book is ready to go, passing along the title.
    • Stores all this metadata in the database.

What’s next?

In the following weeks of GSoC, I plan to first to focus on tackling the rendition setup. This is a crucial step - it's what will allow our ebook reader to display the content of ebooks correctly, and also setting the style for the reader. This will involve integrating the Foliate-js rendition module with Arianna's Qt implementation.

Thanks for your reading, stay tuned for updates on my progress via my blog and feel free to connect with me.

Categories: FLOSS Project Planets

Venue maps in Kongress

Sat, 2024-07-06 02:30

With Akademy 2024 hosted in a venue with OSM indoor mapping, what happens if we put KDE’s conference companion app Kongress and Itinerary’s train station indoor map view together?

Venue maps

Out of the box we get a multi-floor map, which is already an improvement compared to just showing building outlines on a conventional (outdoor) map. Visually it’s still far off from handmade conference venue maps though.

Indoor venue map in Kongress.

This is using vanilla OSM data (via KDE’s raw data tile server), which is following upstream within 24 hours. Any work done on the map data is thus not only benefiting a specific event but all OSM users.

Finding rooms

Using OSM raw data and client-side rendering rather than pre-rendered raster graphics allows for additional ways to interact with the map or browse the data.

Itinerary has a nearby amenity search feature for example. What you are also often looking for at a conference venue are rooms though. We can apply the same concept here, with a few adjustments on which data to display and how to group it.

Room search dialog in Kongress.

This is also the foundation for matching room information from the schedule to the map. That’s not implemented yet in the app though, as we’ll need the actual schedule for testing that.

Custom styles

For a conference in e.g. a university building only a small subset of rooms might be relevant for an event. Custom made venue maps often highlight those somehow, e.g. with different colors.

As our indoor map renderer uses MapCSS stylesheets to control the visual appearance, that’s easy enough to do here as well. And since MapCSS stylesheets can include other files, we also only need a small event-specific addition that then includes the default style.

Even-specific stylesheet highlighting and labeling relevant rooms. Custom content

While stylesheet can do a lot, they can’t generate new content on the map. That’s also needed though, as there might be structures that are only there for the event and thus too short-lived to be added to OSM.

This can be solved by applying an OSM changeset file on top of the loaded map data. That’s basically a “diff” for the map data with event-specific additions, changes or removals.

Event-specific additional map content.

This way event-specific content becomes part of the map data itself rather than being in an app-specific overlay. We can therefore make use of all the existing infrastructure for the custom content as well, from support for multi-lingual labels to being searchable.

Outlook

And there’s still more we could do.

Time-dependent elements

Some elements might only be available or applicable for a certain time of the event, or certain rooms might have different purposes on different days.

OSM has a complex mechanism to model time-dependent information, using opening hours expressions. We can parse and interpret those as well, but their use is currently limited to showing actual opening hours for amenities or shops. This is accessible to styles, so we can e.g. gray out currently closed things.

Generalizing this and also allowing to interpret opening hours expression on arbitrary tags in combination with custom styles should not be too far out and give us a really powerful mechanism to model time-dependent features.

Routing

Kongress also has our experimental indoor router integrated. For the Akademy venue this works ok-ish (apart from access to the elevator, the map data quality around that isn’t good enough yet).

Indoor map routing in Kongress.

An important still missing part here however is the ability to select and customize routing profiles, as routing becomes particularly useful when considering mobility constraints.

Also note that we are only talking about routing here, full navigation is much further away still as we need to have working indoor localization for that as well, which is a much harder problem to solve.

Do we actually need all this?

For a comparatively small event like Akademy in a relatively simple two-floor venue, probably not. But think about your first visit at a massive event like FOSDEM, or consider stairs being an insurmountable obstacle. Having support with finding your way around becomes much more important then.

Akademy is a great opportunity to experiment with this though, both from the software and the mapping perspective, and to show what’s possible with the data and technology we already have.

Categories: FLOSS Project Planets

This week in KDE: autoscrolling

Fri, 2024-07-05 23:25
New Features

You can now turn on the “autoscrolling” feature of the Libinput driver, which lets you scroll on any scrollable view by holding down the middle button of your mouse and moving the whole mouse (Evgeniy Chesnokov, Plasma 6.2.0. Link)

UI Improvements

When zooming into or out of a document in Okular using Ctrl+Scroll, it now zooms into or out of the actual cursor position, not the center of the page (Alexis Murzeau, Okular 24.08.0. Link)

Okular now scales radio buttons and checkboxes to the size of the form fields they inhabit, which looks better for forms that have huge or tiny versions of these (Pratham Gandhi, Okular 24.08.0. Link)

Dolphin now supports the systemwide “disable smooth scrolling” setting (Nathan Misner, Dolphin 24.08.0 Link)

Opening and closing Elisa’s playlist panel is no longer somewhat choppy (Jack Hill, Elisa 24.08. Link)

When quick-tiling two adjacent windows and resizing one, the other will resize too. The location of the split between them is now reset to its default position after all adjacent quick-tiled windows are closed or un-tiled (Erwin Saumweber, Plasma 6.1.2. Link)

.Desktop files in sub-folders below your desktop are now shown as they are on the desktop itself (Alexander Wilms, Plasma 6.2.0. Link)

On System Settings’ Accessibility page, the Open dialog for choosing custom bell sounds now accepts .oga files, and also tells you what types of files it supports (me: Nate Graham, Plasma 6.2.0. Link)

On System Settings Desktop Effects page, “internal” effects are no longer listed at all (even in a hidden-by-default state), which makes it more difficult for people to break their systems by accident, and also fixes an odd interaction whereby clicking the “Defaults” button would reset the default settings of internal effects changed elsewhere. You can still see the internal effects in KWin’s debug console window if needed (Vlad Zahorodnii, Plasma 6.2.0. Link)

Made a bunch of small changes to System Settings pages to align them better with the new human interface guidelines (me: Nate Graham, Plasma 6.2.0. Link 1, link 2, link 3, and link 4)

Improved the legibility of the text in Kirigami.NavigationTabBar buttons, especially on low or medium DPI screens (me: Nate Graham, Frameworks 6.4. Link)

Bug Fixes

Fixed a recent regression that caused the Powerdevil power management daemon to sometimes crash randomly when the system has any monitors connected that support DDC-based brightness control (Jakob Petsovits, Plasma 6.1.2. Link)

On the System Settings’ recently re-done Keyboard page, table columns in the layout table are once again resizable, and also have more sensible default widths now (Wind He, Plasma 6.1.2. Link)

Fixed one source of the recent issue with certain System Settings pages being sometimes broken when opened — this one being the issue where opening the Touchpad or Networks pages would break other ones opened afterwards. We’re still investigating the other issues, which frankly make no sense and shouldn’t be happening. Some of them may be Qt regressions. Investigation is ongoing (Marco Martin, Plasma 6.1.3. Link)

Icons in the new Edit Mode’s toolbar buttons are no longer slightly blurry (Akseli Lahtinen, Plasma 6.1.3. Link)

KWin’s “open new windows under pointer” feature now actually does, and ignores the active screen when that screen differs from the screen with the pointer on it (Xaver Hugl, Plasma 6.1.3. Link)

Fixed multiple recent regressions and longstanding issues with System Monitor widgets displayed on panels (Arjen Hiemstra, Plasma 6.2.0):

  • Text in small pie charts overflowing onto the next line awkwardly (link)
  • Adjacent pie charts overlapping at certain panel thicknesses (link)
  • Graphs not taking enough space on a thick panel (link)

With wide color gamut turned on or an ICC color profile in use, transparent windows are no longer too transparent (Xaver Hugl, Plasma 6.2.0. Link)

Showing and hiding titlebars and frames on a scaled display no longer causes XWayland windows to move diagonally by about 1px every time (Vlad Zahorodnii, Plasma 6.2.0. Link)

Fixed multiple issues and glitches affecting floating panels via a significant code refactor (Marco Martin, Plasma 6.2.0. Link 1, link 2, and link 3)

Fixed a recent Qt regression that caused Plasma to sometimes crash when screens were disconnected (David Edmundson, Qt 6.7.3. Link 1 and link 2)

Fixed a Qt regression that caused web pages rendered by QtWebEngine (most notably in KMail’s HTML message viewer window) to display have blocky, blurry, or pixelated text and graphics (David Edmundson, Qt 6.8.0. Link)

Other bug information of note:

Performance & Technical

Made the pam_kwallet library able to build with libgcrypt 1.11, restoring its ability to let the system wallet unlock automatically on login again (Daniel Exner, Plasma 6.1.2. Link)

Automation & Systematization

Added some UI tests to KCalc, ensuring that the recent prominent regression in functionality can’t happen again (Gabriel Barrantes, link)

…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

As I mentioned last week, if you use have multiple systems or an adventurous personality, you can really help us out by installing beta versions of Plasma using your distro’s available repos and reporting bugs. Arch, Fedora, and openSUSE Tumbleweed are examples of great distros for this purpose. So please please do try out Plasma beta versions. It truly does help us! Heck, if you’re very adventurous, live on the nightly repos. I’ve been doing this full-time for 5 years with my sole computer and it’s surprisingly stable.

Does that sound too scary? Consider donating today instead! That helps too.

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!

Categories: FLOSS Project Planets

Web Review, Week 2024-27

Fri, 2024-07-05 11:12

Let’s go for my web review for the week 2024-27.

Online anonymity: study found ‘stable pseudonyms’ created a more civil environment than real user names 

Tags: tech, internet, anonymity, privacy

There’s clearly an interesting balance between full anonymity and no anonymity at all. This is a path to keep discussions genuine and civil.

https://theconversation.com/online-anonymity-study-found-stable-pseudonyms-created-a-more-civil-environment-than-real-user-names-171374


Telegram says it has ‘about 30 engineers’; security experts say that’s a red flag | TechCrunch

Tags: tech, telegram, security, criticism

This organization indeed doesn’t seem healthy. Especially regarding the amount of user data they are responsible of.

https://techcrunch.com/2024/06/24/experts-say-telegrams-30-engineers-team-is-a-security-red-flag/?guccounter=1


ChatGPT is bullshit | Ethics and Information Technology

Tags: tech, philosophy, ai, machine-learning, gpt, ethics

Makes a strong case about why LLMs are better described as “bullshit machine”. In any case this is a good introduction into bullshit as a philosophical concept. I guess with our current relationship to truth these are products well suited to their context…

https://link.springer.com/article/10.1007/s10676-024-09775-5


I received an AI email - Tim Hårek

Tags: tech, ai, machine-learning, gpt, spam

A new era of spam is on us… this is going to be annoying to filter out.

https://timharek.no/blog/i-received-an-ai-email


regreSSHion: RCE in OpenSSH’s server, on glibc-based Linux systems

Tags: tech, ssh, security

Make sure your OpenSSH server is up to date.

https://www.qualys.com/2024/07/01/cve-2024-6387/regresshion.txt


POSIX 2024 Changes

Tags: tech, unix, posix, system, standard

From the perspective of a given implementation. Still this is a good list of what POSIX 2024 changes. I’m particularly interested to see that per-file-descriptor advisory locks finally made it to the standard. Still some progress to make in this department but it’s a good step already.

https://sortix.org/blog/posix-2024/


Serving a billion web requests with boring code - llimllib notes

Tags: tech, architecture, services, complexity, go, postgresql, databases, react

Nice return on experience of using a simple stack to serve loads of web requests.

https://notes.billmill.org/blog/2024/06/Serving_a_billion_web_requests_with_boring_code.html


Trip report: Summer ISO C++ standards meeting (St Louis, MO, USA) – Sutter’s Mill

Tags: tech, c++, standard

Looks like C++26 is going to be a big deal. The reflection and generation features alone are going to be a game changer. Now if it also gets contracts it’d be really nice.

https://herbsutter.com/2024/07/02/trip-report-summer-iso-c-standards-meeting-st-louis-mo-usa/


Reasons to use your shell’s job control

Tags: tech, shell, processes

This is too often underestimated. This article shows nice uses of job control.

https://jvns.ca/blog/2024/07/03/reasons-to-use-job-control/


X-Ray vision for Linux systems | 0x.tools

Tags: tech, linux, profiling, debugging, tools

Nice suite of tools. The eBPF based ones look promising.

https://0x.tools/


Modern Good Practices for Python Development · Field Notes

Tags: tech, programming, python

Obviously very opinionated. Still probably a nice list to pick from when making your own project specific coding guidelines.

https://www.stuartellis.name/articles/python-modern-practices/


A Structured Approach to Custom Properties

Tags: tech, web, css, frontend, maintenance

Interesting approach to structure CSS custom properties. Should help a bit with maintainability.

https://keithjgrant.com/posts/2024/06/a-structured-approach-to-custom-properties/


Synchronous Core, Asynchronous Shell

Tags: tech, programming, asynchronous

Not really Rust specific, this might be an interesting way to structure your code once async gets introduced. Should avoid some of the usual traps.

https://blog.sulami.xyz/posts/sync-core-async-shell/


There’s plenty of room at the Top: What will drive computer performance after Moore’s law? | Science

Tags: tech, hardware, software, performance

As Moore’s law fades away this question is indeed essential. Looks like there will be more pressure on software and algorithms than before (at last one might say, we had decades of waste there). Streamlining hardware architectures will have a role too, we might see simpler cores in greater numbers.

https://www.science.org/doi/10.1126/science.aam9744


TDD is Not Hill Climbing - by Kent Beck

Tags: tech, tdd, tests

Starting from a wrong analogy to raise real thinking and questions about TDD.

https://tidyfirst.substack.com/p/tdd-is-not-hill-climbing


Code Reviews Do Find Bugs

Tags: tech, codereview

Good reasons to really make sure your organization practice code reviews.

https://two-wrongs.com/code-reviews-do-find-bugs.html


Quality and productivity are not necessarily mutually exclusive

Tags: tech, quality, productivity

Good reminder that those two aspects are not necessarily competing which each other. In the long run quality improves productivity. In the short term it might as well.

https://www.haskellforall.com/2024/07/quality-and-productivity-are-not.html?m=1


Planning fallacy - The Decision Lab

Tags: management, organization, cognition, planning, bias

Very good primer on a widespread and very hard to avoid bias. This is why it’s hard for projects to properly meet deadlines.

https://thedecisionlab.com/biases/planning-fallacy


The 4 keys to creating team accountability

Tags: tech, team, organization, leadership, management

Interesting tips and actions to help frame the conversation. The goal is to get the team better self-organized and directed.

https://newsletter.canopy.is/p/the-4-keys-to-creating-team-accountability


Bye for now!

Categories: FLOSS Project Planets

Manual action needed to resolve boot failure for Fedora Atomic Desktops and Fedora IoT

Thu, 2024-07-04 18:00

Since the 39.20240617.0 and 40.20240617.0 updates for Atomic Desktops and the 40.20240617.0 update for IoT, systems with Secure Boot enabled may fail to boot if they have been installed before Fedora Linux 40. You might see the following error:

error: ../../grub-core/kern/efi/sb.c:182:bad shim signature. error: ../../grub-core/loader/i386/efi/linux.c:258:you need to load the kernel first. Press any key to continue...

Note: You can also read this post on the Fedora Magazine.

Workaround

In order to resolve this issue, you must first boot into the previous version of your system. It should still be functional. In order to do this, reboot your system and select the previous boot entry in the selection menu displayed on boot. Its name should be something like:

Fedora Linux 39.20240610.0 (Silverblue) (ostree:1)

Once you have logged in, search for the terminal application for your desktop and open a new terminal window. On Fedora IoT, log in via SSH or on the console. Make sure that you are not running in a toolbox for all the commands listed on this page.

If you are running a Fedora Atomic Desktop based on Fedora 39 and have not yet updated to Fedora 40, you first need to update to the latest working Fedora 39 version with those commands:

$ sudo rpm-ostree cleanup --pending $ sudo rpm-ostree deploy 39.20240616.0

If you are running Fedora IoT, then first update to the latest working version with this command:

$ sudo rpm-ostree cleanup --pending $ sudo rpm-ostree deploy 40.20240614.0

Then reboot your system.

Once you are logged in again on the latest working version, proceed with the following commands:

$ sudo -i $ cp -rp /usr/lib/ostree-boot/efi/EFI /boot/efi $ sync

Once completed, reboot your system. You should now be able to update again, as normal, using the graphical interface or the command line:

$ sudo rpm-ostree update Why did this happen?

On Fedora Atomic Desktops and Fedora IoT systems, the components that are part of the boot chain (Shim, GRUB) are not (yet) automatically updated alongside the rest of the system. Thus, if you have installed a Fedora Atomic Desktop or a Fedora IoT system before Fedora 40, it uses an old versions of the Shim and bootloader binaries to boot your system.

When Secure Boot is enabled, the EFI firmware loads Shim first. Shim is signed by the Microsoft Third Party Certificate Authority so that it can be verified on most hardware out of the box. The Shim binary includes the Fedora certificates used to verify binaries signed by Fedora. Then Shim loads GRUB, which in turn loads the Linux kernel. Both are signed by Fedora.

Until recently, the kernel binaries where signed two times, with an older key and a newer one. With the 6.9 kernel update, the kernel is no longer signed with the old key. If GRUB or Shim is old enough and does not know about the new key, the signature verification fails.

See the initial report in the Fedora Silverblue issue tracker.

What are we doing to prevent it from happening again?

We have known for a while that not updating the bootloader was not a satisfying situation. We have been working on enabling bootupd for Fedora Atomic Desktops and Fedora IoT. bootupd is a small application that is responsible only for bootloader updates. While initially planned for Fedora Linux 38 (!), we had to delay enabling it due to various issues and missing functionality in bootupd itself and changes needed in Anaconda.

We are hoping to enable bootupd in Fedora Linux 41, hopefully by default, which should finally resolve this situation. See the Enable bootupd for Fedora Atomic Desktops and Fedora IoT Fedora Change page.

Note that the root issue also impacts Fedora CoreOS but steps have been put in place to force a bootloader update before the 6.9 kernel update. See the tracking issue for Fedora CoreOS.

Categories: FLOSS Project Planets

May and June in KDE PIM

Thu, 2024-07-04 05:00

Here's our bi-monthly update from KDE's personal information management applications team. This report covers progress made in the months of May and June 2024.

Since the last report 38 people have contributed over 1500 changes to KDE PIM code base.

PIM Sprint

Let's start with the biggest event of the last two months: the PIM sprint!

The team met in Toulouse for a weekend of discussions, hacking and French pastries. You can read reports from Kevin, Carl, Dan and Volker on their blogs to get all the nitty gritty.

In this report, we will cover the biggest topics that were discussed and worked on during the sprint.

Milestones

We have decided to plan and track our work in milestones. Milestones should represent a concrete goal with clear definitions of what we understand as done, and be achievable within a reasonable time frame. Each milestone is then split into smaller bite-sized tasks that can be worked on independently.

This will help us prioritize important work, make our progress more visible and, most importantly, make it easier for people to get excited about what we are working on. New contributors will also be able to pick up a well-defined task and start contributing to PIM.

You can see the milestones on our Gitlab board - if anything there catches your eye and you would like to help, reach out to us on the #kontact:kde.org Matrix channel!

This report, as well as future ones will try to focus on the current milestones and their progress, hopefully making them more exciting to read :)

Retiring KJots and KNotes

We have decided to retire the KJots and KNotes applications. These applications have not seen any support or development in many years and are not in a state that we feel comfortable shipping to our users. With the introduction of Marknote, KDE can now offer a modern, well-maintained note-taking application that we can recommend users to migrate to. The latest release of Marknote has gained support for importing notes from KJots and KNotes, so no notes will be lost.

Polished Tag Support

Tags were introduced into KDE PIM many, many years ago, but they have never reached their full potential. We have decided to change that and make tags a first-class citizen in our applications. The first step is making sure that tags are actually usable, so we started by implementing automatic extraction of tags from events and todos and syncing them into local iCal calendars and remote DAV calendars. Thanks to this, you can now sync tags between KOrganizer and NextCloud, for example.

Moving Protocol Implementations to KDE Framworks

We have libraries in KDE PIM that implement various standards and protocols. By moving them to KDE Frameworks we make them independent from KDE PIM and thus available to anyone who wants to use them. In the past we have moved KCalendarCore (iCal support library) and KContacts (vCard support library) to Frameworks. We are now working on moving KMime (email/RFC822 support library) and KIMAP (IMAP protocol implementations) to Frameworks as well.

This is helping cleanup KMime. KMime APIs is now in many places const correct to avoid the risk of modifying a message when reading it, proper CamelCase headers are now generated like for all the KDE Frameworks. Finally, parsing a MIME file is now up to 10 times faster on typical emails.

Other Improvements and Fixes Itinerary

Our travel assistant app Itinerary gained support for the public transport routing service Transitous, got a new import staging area and can now create new entries directly from OSM elements. For more details see its own summary blog post.

Merkuro

"Snow flurry" fixed the start of the week math for locales that use Sunday as the first day of the week. They also fixed the navigation of the basic mode for the month view and week view (which are used on mobile).

Claudio continued working on the Merkuro Mail application and added a progress bar in the sidebar which appears when a background job is running.

The settings dialogs have been ported to the new KirigamiAddons.ConfigurationView which fixes some issues on mobile.

Get Involved

If you would like to get involved in KDE PIM, check our milestones board and pick a task! And don't forget to join us in the #kontact:kde.org Matrix channel or the kde-pim mailing list!

Categories: FLOSS Project Planets

KDE Gear 24.05.2

Wed, 2024-07-03 20:00

Over 180 individual programs plus dozens of programmer libraries and feature plugins are released simultaneously as part of KDE Gear.

Today they all get new bugfix source releases with updated translations, including:

  • kdepim-runtime: Fix a memory leak in the EWS resource (Commit, fixes bug #486861)
  • kio-gdrive: Fix "This file does not exist" after clicking on a folder (Commit, fixes bug #487021)
  • partitionmanager: Fix a crash caused by clicking the remove mount point button (Commit, fixes bug #432103)

Distro and app store packagers should update their application packages.

Categories: FLOSS Project Planets

Keychain Development Update: Yubikey Support

Wed, 2024-07-03 20:00

Following my latest post about Keychain, here is a new development update. Yubikey and Key Files are now supported, which allows you to requires a YubiKey to open a password database but also to save it.

Saving and editing groups also now works.

Group editing dialog

And I now started working on the database creation process. The UI is ready but I still need to bind it to the backend.

Thanks to everyone who send me encouragement messages and also to Laurent who did a lot of cleanups in the codebase.

See you in the next development update.

Categories: FLOSS Project Planets

Calamares &amp; some Distro Notes

Tue, 2024-07-02 18:00

Calamares is an indepdendent Linux distro-installer, and we just released Calamares 3.3.7. There’s a couple of known issues that need tracking down, but it is a slow process – one entirely dependent on how much time volunteers are able and willing to put into careful bug reporting (and reproduction) and then dealing with code to fix them. Anyway, here’s some semi-coherent notes about Calamares and distro’s and issues and things.

Installing Kubuntu

I recently had to install an “emergency PC” for my mom, and picked Kubuntu – fairly arbitrarily, I must say. The install-Kubuntu icon does not look like Calamares, and first comes up with some other selection dialog in a different style, so I was pleasantly surprised to see it using Calamares after that.

It picked up Dutch from geo-location, which was fine. Less fine is that the Dutch translations aren’t complete. I’m pretty sure I could fix that.

Installation was straightforward, although I always pick “erase whole disk” and click through nearly all of the defaults. No complicated installs for me, and it worked without a hitch.

Mom didn’t need the emergency PC after all, so now I do have a spare low-end desktop machine with Kubuntu. I might turn it into a try-real-installs box for a while.

Building Calamares on KDE Neon

KDE Neon was a CI target for Calamares for a long time, but I switched it off in March 2024. Dependencies were a mess at the time, and the automatic CI builds were failing every night. Other distro’s didn’t have that struggle, so I put more CI weight on Fedora.

I did keep one of my desktop machines installed with KDE Neon, as a gaming machine. At least I can see what Plasma 6 is supposed to be like, as a reference for when we land it in FreeBSD. Untangling the package mess to return it to a development machine was just too much of a hassle.

At some point I removed Qt5 – and everything that depended on it – and then reinstalled some bits and did a pkcon update and whatever and the machine finally ended up in a workable state for development again, but don’t ask me exactly what I did and don’t talk to me about the upgrade experience.

Building Calamares on FreeBSD

It’s possible, just probably not very useful. Clang spits out mountains of warnings, which I occasionally try to address.

Not all of the warnings are all that useful – when dealing with command-line arguments, for instance. The relationship between argc and argv (conventional names for parameters) in main() is clear, but there’s nothing in the type of either to express that, so you get warnings like this one:

src/libcalamares/geoip/test_geoip.cpp:37:45: warning: unsafe buffer access [-Wunsafe-buffer-usage] 37 | QString selector = argc == 3 ? QString( argv[ 2 ] ) : QString(); Building Calamares on EndeavourOS

The live-ISO for EndeavourOS is one of my favorites. I don’t know why they ship an ISO with git in the live-image, but it means that I trivially have a system with a working Calamares configuration, which I can update with the latest version:

git clone http://github.com/calamares/calamares cd calamares sudo ./ci/deps-endeavouros.sh sudo pacman -Scc export CMAKE_ARGS="-DWITH_QT6=ON -DCMAKE_BUILD_TYPE=Debug" export BUILDDIR=build ./ci/build.sh

I have a VM with the live-ISO, but also two virtual disks attached. By doing the checkout and package download on one of the disks, and doing test-installs to the other, this is by far the easiest and most pleasant develop-and-test setup I have right now.

And the wallpaper is pretty nice, too.

Categories: FLOSS Project Planets

Get Started With Selenium: 4 Short Video Tutorials

Mon, 2024-07-01 20:00

In just 8 minutes you too will be ready to start using Selenium AT-SPI.

Working to make your apps accessible to everybody, while reducing its power usage and improving its quality by doing more system testing, may seem as daunting as climbing Mount Everest. Luckily, KDE provides a lift to help you, Selenium AT-SPI.

Check out the following four-part guide to get started with this wonderful tool! Part 1 "An Introduction to Selenium" can be viewed here:

Click to watch Part 2 "Setting up Selenium", Part 3 "Identifying Accessibility Issues", and Part 4 "Writing Selenium Tests".

Selenium AT-SPI, originally based on the Selenium web application for automating testing purposes, has been ported to Qt by Harald Sitter. With this tool, KDE can reach all three of its current goals:

We are thankful to Season of KDE 2024 contributor Pradyot Ranjan for his excellent work preparing these video guides.

Let's make KDE community's software the best it can be. Have a great time using it!

Interested In Contributing?

Selenium AT-SPI is hosted here. If you are interested in contributing, you can join the Matrix channels KDE Eco and Automation & Systematization Goal and introduce yourself. Thank you to the Season of KDE 2024 admin and mentorship team, the KDE e.V., and the incredible KDE community for supporting this project.

Categories: FLOSS Project Planets

KDE Plasma 6.1.2, Bugfix Release for July

Mon, 2024-07-01 20:00

Tuesday, 2 July 2024. Today KDE releases a bugfix update to KDE Plasma 6, versioned 6.1.2.

Plasma 6.1 was released in June 2024 with many feature refinements and new modules to complete the desktop experience.

This release adds a week's worth of new translations and fixes from KDE's contributors. The bugfixes are typically small but important and include:

  • Discover: Fix share dialog. Commit. Fixes bug #488976
  • Libtaskmanager: improve efficiency when window icon frequently changes. Commit. Fixes bug #487390
  • Do not hide panel settings when a panel-parented dialog takes focus. Commit. Fixes bug #487161
View full changelog
Categories: FLOSS Project Planets

Week 5 recap

Sun, 2024-06-30 23:05
Trying to do a vector approach which most other programs with the pixel-perfect algorithm uses. So currently we have a vector strokeCoordinate initiated in kistoolfreehand because that's where strokes gets initiated, doStroke, and endStroke are. The ...
Categories: FLOSS Project Planets

Initial work on Keychain

Sun, 2024-06-30 20:00

A month ago, I started working on a new application to manage your passwords in Plasma. And while still at a PoC status, this weekend, it finally started to look like something almost usable, so it sounded like a good occassion to write a small blog post about it.

The current name is “Keychain” or “Plasma Keychain” but this is subject to change and suggestions are more than welcome.

My end goal is to provide a more future proof replacement to the ageing KWallet application. From a technical point of view, this is a fork of the internal of KeepassXC with a Kirigami GUI completely written from scratch. This means it uses the standardized Keepass format to store the passwords in the database which is implemented by many applications including on other platforms like Android and iOS (see the list of Keepass port). And while not yet exposed in the GUI, basing the work on top of KeepassXC enables a lot of interesting features not available in KWallet, like Yubikey and PassKey support, password sharing, export and import for various other password database formats, TOTP support and browser integration…

While also providing vital features for the desktop integration like the Freedesktop Secret Service protocol what we also have in KWallet.

Here are some screenshots of the current state.

This is the main view where viewing, adding, editing and removing entries already work.

Main View

This is the database generator page which unfortunately doesn’t work yet.

Database generator

And this is the UI to open an existing database.

Database generator

As you can see there is still a lot of work required, so if people are interested to help or to take a look at the current progress, the code is on KDE’s gitlab instance.

Categories: FLOSS Project Planets

KDE participates in OSPP 2024

Sat, 2024-06-29 20:00
KDE participates in OSPP 2024

We are pleased to announce our participation in the Open Source Promotion Plan (OSPP) 2024. KDE will mentor a project within this program. OSPP is largely organized by The Institute of Software at the Chinese Academy of Sciences. Its goal is to encourage college students to engage in developing and maintaining open-source software.

This marks KDE Community's first year participate in OSPP, and we mentor a project.

Porting KDE Games to the Android Platform

KDE Games and educational games are integral parts of the KDE Gear suite. This year, under the guidance of Benson Muite, Hanyang Zhang will undertake work in this area. Hanyang Zhang will be responsible for porting one to two KDE Games to the Android platform.

Let's warmly welcome the new contributor and wish them a enjoyable summer within KDE!

Categories: FLOSS Project Planets

My work in KDE for June 2024

Sat, 2024-06-29 20:00

Hello! I intentionally skipped last month because I was busy with other tasks, and I didn’t have much to discuss KDE-wise. Anyway, let’s get started:

Akademy

I have booked my travel plans for Akademy 2024, and hopefully this time my travel will be uneventful. I’ll be attending QtCS 2024 in Würzburg too. At the time of writing, the program has not been announced yet - so I’m not sure if I’m giving a talk yet, but fingers crossed 🤞

Art on Wayland

A common problem with artists inquiring about the KDE Wayland session is that a lot of information is passed down. Some of the information is clearly out of date, and it spreads like wildfire. On top of that, factual information is scattered across multiple wiki pages, forum posts, and chat messages. I wrote up a page (personally maintained by me, mind) hosted at https://artonwayland.redstrate.com/. (If all goes well, I hope to retire this page in a year or two.)

In terms of software, gsetwacom was recently released by Peter Hutterer. So, I created our own (intentionally a seperate tool), called ktabletconfig. I personally don’t have a use for this tool, but I wanted to create it anyway. I hope it serves someone well!

I do plan on expanding ktabletconfig’s features, as the Wayland session continues to mature.

Plasma

Feature I merged the tablet tester, finally! Thanks to Nate for pushing it past the finish line, as always. 6.2

A slightly out of date screenshot of the Tester

Feature Clearly explain what left-handed mode does in the Tablet KCM, because even I didn’t know until I looked it up! 6.2

Feature Rebased and merged Aki Sakurai’s “Map to Workspace” (aka all monitors) feature for the Tablet KCM. 6.2

Bugfix I also fixed the wrong aspect ratio for the output preview in the Tablet KCM. Now mapping between 4:3 and 16:9 screens should make more sense in the UI. 6.1

Bugfix Went through the whole Tablet KCM and cleaned up the terms we use. It’s a small thing, but I hope it makes the features we have more understandable. 6.2

Frameworks

Feature I have begun adding a way for Kirigami applications to save and restore window state like our QtWidget applications do. I have stalled on it because of something else, but this is something I want to finish soon. ???

Feature Added a generic “translate” icon for applications based on the crow-translate icon we already have. 6.4

Tokodon

Feature I finished up and merged quoted posts support! I’m also pretty happy with the implementation. 24.08

Quoted posts are now “supported” in Tokodon, at least with what we can do Krita

Bugfix Fixed the “DEV BUILD” badge going to a 404. 5.2.3

Bugfix Fix the lag in the tablet tester when using it with a S-Pen on Android. 5.2.3

Bugfix Multiple small improvements for the S-Pen on Android. 5.2.3

I changed up some of the text and mentioned S9 family support here now! NeoChat

Bugfix Prevented the location map showing up even though no locations were shared. That also fixes copyright link activation! 24.05

Bugfix Fixed the QR code not showing up on the account page. 24.05

Bugfix Added a focus border to the appearance page modes, which helps users who solely depend on the keyboard. (It was navigable before, but you would have no idea which one was selected.) 24.05

Bugfix Removed room members being highlighted on tap. This makes the member list appear slightly less buggy. 24.05

Feature Added basic keyboard navigation for the server selection popup. 24.05

Bugfix Fixed keyboard navigation in the space drawer. 24.05

Bugfix Fixed keyboard navigation on the room & user search pages. 24.05

Other

Bugfix Fixed keyboard navigation for Kirigami Add-on’s FormComboBoxDelegate, which improves keyboard navigation in lots of Kirigami applications! 1.3.0

I updated the Plasma Desktop README in line with the other README things I did this year!

My work in KDE for April 2024

My Work in KDE

Home
Categories: FLOSS Project Planets

This week in KDE: everything, I think

Fri, 2024-06-28 20:18

We spent an enormous amount of time working on bug-fixing and polishing tasks for Plasma 6.1 this week. It was a big release, and there were some rough edges around the new edit mode. So we put quite a bit of time into making it integrate more seamlessly with the other existing modes, and generally polishing it up. Other areas of focus included panels and the system tray, especially when using non-default settings. We made a lot of big changes under the hood for Plasma 6.1 that had some negative consequences, so we’re working to fix things as quickly as we can.

As part of this initiative, we’ve driven the number of high priority Plasma bugs to a new record low: 29! This is the first time it’s ever dipped below 30, which I find very exciting! We’re really getting there.

After bug-fixing, we started working on user interface polish for Plasma 6.2. At this point new features are mostly still cooking, but a lot of subtle improvements have already started to land — complete with screenshots below!

New Features

Plasma now supports Enhanced Open (OWE) Wi-Fi security (Fabian Vogt, Plasma 6.2.0. Link)

In KWin’s new (off-by-default) “Hide Cursor” effect, you can now turn off hiding it after inactivity, and only hide it while typing (Vlad Zahorodnii, Plasma 6.2.0. Link)

UI Improvements

Okular now provides you more information about the validity of a document’s cryptographic signatures (Sune Vuorela, Okular 24.08.0. Link)

When shaking the cursor to expand it, it’s now nice and crisp when using one of the default Breeze cursor themes. Note that It’ll still be pixelated when using a 3rd-party cursor theme until we can implement general support for SVG cursor theming and encourage 3rd-party theme artists to use it (Vlad Zahorodnii, Plasma 6.1.1. Link):

In KWin’s Overview effect, the labels showing windows’ titles are now more legible (Akseli Lahtinen, Plasma 6.1.2. Link):

The Ocean and Oxygen sound themes now include bell sounds, so our automatic “make the system bell not not make you want to commit homicide” transformer can get its sound from those themes, and not just the fallback FreeDesktop sound theme (me: Nate Graham and Guilherme Marçal Silva, Plasma 6.1.2. Link 1 and link 2)

We’ve given another go at the idea of using the same “Open With” UI everywhere — this time including the terminal and script options that were missing last time and caused us to revert it (Harald Sitter, Plasma 6.2.0. Link 1 and link 2):

Discover now shows you a clear error message when the PackageKit daemon is broken or crashy instead of an ambiguous-to-misleading message, and also gives you a handy button you can use to submit a bug report for your distro to gently nudge them to actually care about PackageKit support (Harald Sitter, Plasma 6.2.0. Link)

Plasma’s Lock/Logout widget now has a “Show logout screen” option, bringing back the capability to see a screen with all the options. And now it replaces the previous “shut down” action, restoring the default user experience it had in Plasma 6.0 and earlier: a lock button and a button to show all the session-ending options, with “Shut Down” pre-selected. You can still customize the widget to show whatever you want, of course (Thomas Carmichael, and me: Nate Graham, Plasma 6.2.0. Link 1 and link 2)

Clarified the UI option to confirm shutdown, reboot, and logout, and also changed the old ambiguous “Leave…” text to “Show Logout Screen”, which is clearer (me: Nate Graham, Plasma 6.2.0. Link 1 and link 2):

You can now set the key repeat rate to 200 characters per second, up from the old maximum value of 100 (Vladimir Brik, Plasma 6.2.0. Link)

On System Settings’ Search page, indexing status is now shown in a footer, so it doesn’t cause UI elements to jump around while indexing (me: Nate Graham Plasma 6.2.0. Link):

On System Settings’ Touchpad page, the “Disable while typing” effect now warns you that it might break video games while in use (me: Nate Graham, Plasma 6.2.0. Link)

Plasma’s Power and Battery widget now tells you when power profiles aren’t available because power saving is being handled by the alternative TLP utility (Bohdan Onofriichuk, Plasma 6.2.0. Link)

On System Settings’ Bluetooth page, blocked devices are now listed in their own section, and we also show a contextual help button to help you understand what “blocked” means in this context (Ivan Tkachenko, Plasma 6.2.0. Link 1 and link 2):

The crash reporter dialog now has a “Finish” button in the corner that activates once it’s all done, so it’s more obvious when and how you can get rid of it (Engin Karakurt, Plasma 6.2.0. Link)

When using a custom accent color, Breeze folder icons no longer turn all white or all black when selected in various contexts; instead their background colors will just be tinted a little bit (Marco Martin and Carl Schwan, Frameworks 6.4. Link):

Bug Fixes

Fixed two regression in KCalc that would cause it to crash when hitting the backspace key and broke input chaining (Gabriel Barrantes, KCalc 24.05.2. Link 1 and link 2)

Fixed a regression that caused Plasma’s Icons-and-Text Task Manager widgets to not actually show text anymore on a thick vertical panel (Marco Martin, Plasma 6.1.1. Link)

Fixed a regression that could cause Plasma’s System Tray to temporarily disappear when you quit an app playing media while the System Tray’s Media Player widget was active (Marco Martin, Plasma 6.1.1. Link)

Fixed a visual regression in Plasma’s icons-and-text task manager’s multi-row mode (Ismael Asensio, Plasma 6.1.1. Link)

Fixed a regression that caused Plasma panels’ Adaptive opacity mode to not work properly with certain types of window resizing actions, panel orientations, and visibility states (Fushan Wen, Plasma 6.1.1. Link)

Fixed a KWin regression that broke multi-monitor support in the popular Polonium tiling script (Alik Aslanyan, Plasma 6.1.1. Link)

Fixed a regression that caused newly-created blank System Monitor widgets to be broken until Plasma was restarted once (Arjen Hiemstra, Plasma 6.1.1. Link)

Fixed an odd interaction in Plasma’s new edit mode that could cause it to undesirably exit when the widget explorer was closed (Niccolò Venerandi, Plasma 6.1.1. Link)

Fixed an issue that could sometimes cause the displayed brightness percentage to drift out of sync between the System tray widget and the OSD, and also make the slider kinda laggy (Jakob Petsovits, Plasma 6.1.1. Link 1 and link 2)

In case you’d noticed a tiny, barely detectable horizontal line in the top-left corner of Plasma widgets, it’s gone now (Niccolò Venerandi, Plasma 6.1.1. Link)

Fixed a case where KWin would crash when run on a system with very old (like, 15 years old) graphics hardware (Xaver Hugl, Plasma 6.1.2. Link)

Fixed a regression that broke the layout of Discover’s “Share” dialog (Aleix Pol Gonzalez, Plasma 6.1.2. Link)

Fixed a regression that could cause individual widgets’ hover popups in edit mode to get covered up by the panel settings dialog under certain circumstances (Niccolò Venerandi, Plasma 6.1.2. Link)

Fixed a regression that could, under certain circumstances, cause Plasma’s “Show Alternatives” popup get stuck in the open state open and not close (Niccolò Venerandi, Plasma 6.1.2. Link)

Fixed a regression that caused the “Add Widgets…” button that appears on empty panels is to be aligned incorrectly and located in the wrong place (Niccolò Venerandi, Plasma 6.1.2. Link)

Fixed a regression that caused undoing the deletion of a panel outside of global edit mode to make it get stuck in its own panel edit mode (Marco Martin, Plasma 6.1.2. Link)

Fixed an issue that could cause Plasma to freeze when a thick panel contained certain combinations of widgets with very specific popup sizes (Marco Martin, Plasma 6.1.2. Link)

When System Settings is already showing a page that lives in a sub-category, using another app to open open a different page that doesn’t live in a sub-category now correctly hides the sub-category column (Matthias Tillman, Plasma 6.1.2. Link)

On System Settings’ Accessibility page, the sidebar listing sub-pages now has correct hover and highlight effects (me: Nate Graham, Plasma 6.1.2. Link)

When using Qt 6.8, Plasma no longer quits when you drag an app from Kickoff to the desktop (Vlad Zahorodnii, Plasma 6.2.0. Link)

Discover no longer crashes when you try to update a Flatpak app that has been declared end-of-life without any replacement provided. Instead you’ll be asked if you’d like to uninstall it (Harald Sitter, Plasma 6.2.0. Link)

Dragging a widget from one Plasma panel to another one or the desktop while in edit mode no longer causes it to get lost in a limbo state (Niccolò Venerandi, Plasma 6.2.0. Link)

If you set a global shortcut to activate a System Tray widget, it now always works, rather than only working after the first time the System Tray was opened (Marco Martin, Plasma 6.2.0. Link)

The “Choose a device to send to:” text in share dialogs for KDE Connect is now always readable in every language (Ivan Tkachenko, Frameworks 6.4. Link)

Other bug information of note:

Performance & Technical

Fixed a case where KWin’s new triple buffering feature could actually make things worse with certain hardware (Xaver Hugl, Plasma 6.1.1. Link)

KWin now falls back to software rendering automatically when used on systems with very old (like, 15 years old) graphics hardware that supports only a limited number of OpenGL operations (Xaver Hugl, Plasma 6.1.1. Link)

Fixed a memory leak in Plasma caused by receiving notifications (Arjen Hiemstra, Plasma 6.1.2. Link)

Improved KWin’s robustness when using a very high refresh rate input device (like one of those blingy 127 billion hertz gamer mice), reducing the chance of apps freezing or quitting after the mouse is moved very very quickly (Vlad Zahorodnii, Plasma 6.2.0. Link)

In Plasma’s clipboard, the “Keep the selection and clipboard the same” setting now works independently of the “Text selection: Always save in history” setting (Fushan Wen, Plasma 6.2.0. Link)

Using a stylus on Wayland now allows you to drag windows around from empty areas, when so configured (Nicolas Fella, Qt 6.7.3. Link)

Automation & Systematization

Added a test for adaptive panel opacity working properly (Fushan Wen, link)

…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

You probably noticed a lot of regressions got fixed! How did they sneak through? Frankly, because not enough people beta-tested Plasma 6.1. Plasma is enormous and can be used in wildly diverse ways, and there are only so many use cases that developers can notice. Automatic testing helps, and we’re getting better at this, but many features are difficult or impossible to test in an automatic fashion. Our faithful beta testers also find many regressions, but by far the majority go unnoticed until the final release. This is a problem!

If you use have multiple systems or an adventurous personality, you can really help us out by installing beta versions of Plasma using your distro’s available repos and reporting bugs. Arch, Fedora, and openSUSE Tumbleweed are examples of great distros for this purpose. So please please do try out Plasma beta versions. It really helps us! Heck, if you’re very adventurous, live on the nightly repos. I’ve been doing this full-time for 5 years with my sole computer and it’s surprisingly stable.

Does that sound too scary? Consider donating today instead! That helps too.

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!

Categories: FLOSS Project Planets

Pages