Planet KDE

Subscribe to Planet KDE feed Planet KDE
Planet KDE | English
Updated: 1 hour 17 min ago

Web Review, Week 2024-36

Fri, 2024-09-06 04:34

On my way to Akademy, looking forward to meeting people there. Even though I’m traveling with spotty Internet access for now, let’s not loose good habits. Here is my web review for the week 2024-36.

The Internet Archive just lost its appeal over ebook lending - The Verge

Tags: tech, copyright, law, library

This is really bad news… Clearly the publishers cartel would try to outlaw libraries if they were invented today.

https://www.theverge.com/2024/9/4/24235958/internet-archive-loses-appeal-ebook-lending


In Leak, Facebook Partner Brags About Listening to Your Phone’s Microphone to Serve Ads for Stuff You Mention

Tags: tech, privacy, surveillance, advertisement

There, now this seems like a real thing… your phone recording you while you’re not aware for advertisement purposes. Nice surveillance apparatus. Thanks but no thanks.

https://futurism.com/the-byte/facebook-partner-phones-listening-microphone


Why A.I. Isn’t Going to Make Art

Tags: tech, ai, machine-learning, gpt, art, learning, cognition

An excellent essay about generative AI and art. Goes deep in the topic and explains very well how you can hardly make art with those tools. It’s just too remote from how they work. I also particularly like the distinction between skill and intelligence. Indeed, we can make highly skilled but not intelligent systems using this technology.

https://www.newyorker.com/culture/the-weekend-essay/why-ai-isnt-going-to-make-art


Challenging The Myths of Generative AI

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

Does a good job listing the main myths the marketing around generative AI is built on. Don’t fall for the marketing, exert critical thinking and rely on real properties of those systems.

https://www.techpolicy.press/challenging-the-myths-of-generative-ai/


Is Linux collapsing under its own weight? On Rust for Linux

Tags: tech, linux, rust, kernel, foss, politics

Interesting analysis. For sure the Rust for Linux drama tells something about the Linux kernel community and its complicated social norms.

https://sporks.space/2024/09/05/is-linux-collapsing-under-its-own-weight-on-rust-for-linux/


Rust for Linux revisited

Tags: tech, linux, rust, kernel, politics, foss

Politics in the Linux kernel can indeed be tough. The alternative path proposed to the Rust-for-Linux team is indeed an interesting one, it could bear interesting results quickly.

https://drewdevault.com/2024/08/30/2024-08-30-Rust-in-Linux-revisited.html


LSP: the good, the bad, and the ugly

Tags: tech, semantic, programming, protocols, language

Interesting view about the LSP specification, where it shines, and where it falls short.

https://www.michaelpj.com/blog/2024/09/03/lsp-good-bad-ugly.html


Python Programmers’ Experience

Tags: tech, python, community, data-visualization

Indeed this is a much better visualization. It shows quite well how the Python programmers pool is growing.

https://two-wrongs.com/python-programmers-experience


OAuth from First Principles

Tags: tech, oauth, security

Nice post explaining the basics of OAuth. If you wonder why the flow seems so convoluted, this article is for you.

https://stack-auth.com/blog/oauth-from-first-principles


Things I Wished More Developers Knew About Databases

Tags: tech, databases

Lots of things to keep in mind when dealing with databases. This is a nice list of “must know” for developers, false assumptions are widespread (and I fall in some of those traps myself from time to time).

https://rakyll.medium.com/things-i-wished-more-developers-knew-about-databases-2d0178464f78


The Latency/Throughput Tradeoff: Why Fast Services Are Slow And Vice Versa

Tags: tech, performance, latency

An old article but a good reminder: you have to choose between latency and throughput, you can’t have both in the same system.

https://blog.danslimmon.com/2019/02/26/the-latency-throughput-tradeoff-why-fast-services-are-slow-and-vice-versa/


The impact of memory safety on sandboxing · Alex Gaynor

Tags: tech, security, safety, memory, sandbox

Interesting point. As the memory safety of our APIs will increase, can we reduce the amount of sandboxing we need? This will never remove completely the need if only for logic bugs, but surely we could become more strategic about it.

https://alexgaynor.net/2024/aug/30/impact-of-memory-safety-on-sandboxing/


LazyFS: A FUSE Filesystem which can be used to simulate data loss on unsynced writes

Tags: tech, tests, storage

That sounds like a very interesting tool to simulate and test potential data loss scenarios. This is generally a bit difficult to do, should make it easier.

https://github.com/dsrhaslab/lazyfs


Greppability is an underrated code metric

Tags: tech, programming, craftsmanship

Good set of advices on naming variables, types, etc. Indeed this makes things easier to find in code bases.

https://morizbuesing.com/blog/greppability-code-metric/


Reasons to write design docs

Tags: tech, architecture, design, documentation, communication

Very good article. I wish I’d see more organisations writing such design documents. They help a lot, and that allows to have a way to track changes in the design. To me it’s part of the minimal set of documentation you’d want on any non trivial project.

https://ntietz.com/blog/reasons-to-write-design-docs/


Differing Values In A Team Are Costly

Tags: tech, values, organization, team, management

Aligning people with differing core values in a team is indeed necessary but difficult. It can kill your project for small teams, for larger teams you will likely need to think your organization keeping the misalignment in mind.

https://rtpg.co/2024/08/31/cost-of-a-values-gap/


Twelve rules for job applications and interviews

Tags: tech, hiring, interviews

Good set of advices. I wish more people applying for a job would follow them.

https://vurt.org/articles/twelve-rules/


Is My Blue Your Blue?

Tags: colors, cognition, funny

One of those essentials questions in life now has some form of answer. Where is the blue/green boundary for you?

https://ismy.blue/


Bye for now!

Categories: FLOSS Project Planets

Goals Sprint Recap

Wed, 2024-09-04 20:00

In April we had the combined goals sprint, where a fine group of KDE people working on things around Automation & Systematization, Sustainable Software, and Accessibility got together. It was a nice cross-over of the KDE goals, taking advantage of having people in one room for a weekend to directly discuss topics of the goals and interactions between them. David, Albert, Nate, Nico, and Volker wrote about their impressions from the sprint.

So what happened regarding the Sustainable Software goal at the sprint and where are we today with these topics? There are some more detailed notes of the sprint. Here is a summary of some key topics with an update on current progress.

Kick-Off for the Opt-Green project

The Opt-Green project is the second funded project of the KDE Eco team. The first one was the Blue Angel for Free Software project, where we worked on creating material helping Free Software projects to assess and meet the criteria for the Blue Angel certification for resource and energy-efficient software products.

The Opt Green project is about promotion of extending the operating life of hardware with Free Software to reduce electronic waste. It's funded for two years by the German Federal Environment Agency and the Federal Ministry for the Environment, Nature Conservation, Nuclear Safety and Consumer Protection and is running from April 2024 to March 2026.

Figure : Opt-Green presentation

Joseph introduced the project, why it's important, how the environment is suffering from software-induced hardware obsolescence, and how Free Software in general and KDE specifically can help with fighting it. The approach of the project is to go beyond our typical audience and introduce people who are environmentally aware but not necessary very technical to the idea of running sustainable, up-to-date Free Software on their computers, even devices they may think are no longer usable due to lack of vendor support. In many cases this is a perfectly fine solution, and it's surprisingly attractive to a number of people who care about sustainability but haven't really been introduced to Free Software yet.

Where we are today

The project is in full swing. The project has already been present at quite a number of events to motivate people to install Free Software on their (old) devices and support them in how to do it. See for example the report about the Academy of Games for upcoming 9th graders in Hannover, Germany.

Revamping the KDE Eco website

We had a great session putting together ideas and concepts about how we could improve the KDE Eco website. From brainstorming ideas to sketching a wireframe as a group, we discussed and agreed on a direction of how to present what we are doing in the KDE Eco team.

Figure : KDE Eco website sketches

The key idea is to focus on three main audiences (end users, advocates, and developers) and present specific material targeted at these groups. This nicely matches what we already have, e.g., the KDE Eco handbook for how to fulfill the Blue Angel criteria for developers, or the material being produced for events reaching out to end users, and while giving it a much more focused presentation.

Where we are today

The first iteration of the new design is now live on eco.kde.org. There is more to come, but it already gives an impression where this is going. Anita created a wonderful set of design elements which will help to shape the visual identity of KDE Eco going forward.

Surveying end users about their attitude to hardware reuse

Making use of old hardware by installing sustainable free software on it is a wide field. There are many different variations of devices and what users do with them also varies a lot. What are the factors that might encourage users to reuse old hardware, what is holding them back?

To get a bit more reliable answers to these questions we came up with a concept for a user survey which can be used at events where we present the Opt Green project. This includes questions about what hardware people have and what is holding them back from installing new software on it.

Where we are today

The concept has been implemented with an online survey on KDE's survey service. It's available in English and German and is being used at the events where the Opt Green project is present.

Figure : Opt-Green Survey

Sustainable AI

One of the big hype topics of the last two years has been Generative AI and the Large Language Models which are behind this technology. They promise to bring revolutionary new features, much closer to how humans interact in natural language, but they also come with new challenges and concerns.

One of the big questions is how this new technology affects our digital freedoms. How does it relate to Free Software? How does licensing and openness work? How does it fit KDE's values? Where does it make sense to use its technology? What are the ethical implications? What are the implications in terms of sustainability?

We had a discussion around the possible idea of adopting something like Nextcloud's Ethical AI rating in KDE as well. This would make it more transparent to users how use of AI features affects their freedoms and gives them a choice to use what they consider to be satisfactory.

Where we are today

This is still pretty much an open question. The field is moving fast, there are legal questions around copyright and other aspects still to be answered. Local models are becoming more and more an option. But what openness means in AI has become very blurry. KDE still has to find a position here.

Categories: FLOSS Project Planets

KDE’s Annual report for the year 2023 is out

Wed, 2024-09-04 20:00

Everything you wanted to know about the things we did last year is in this report: the funds we raised, how we spent them, the sprints and events we attended, the projects we took on, the milestones we hit, and much, much more.

Read it here.

Categories: FLOSS Project Planets

Plasma Crash Course - DrKonqi

Wed, 2024-09-04 16:18

A while ago a colleague of mine asked about our crash infrastructure in Plasma and whether I could give some overview on it. This seems very useful to others as well, I thought. Here I am, telling you all about it!

Our crash infrastructure is comprised of a number of different components.

  • KCrash: a KDE Framework performing crash interception and prepartion for handover to…
  • coredumpd: a systemd component performing process core collection and handover to…
  • DrKonqi: a GUI for crashes sending data to…
  • Sentry: a web service and UI for tracing and presenting crashes for developers

We’ve already looked at KCrash and coredumpd. Now it is time to look at DrKonqi.

DrKonqi

DrKonqi is the UI that comes up when a crash happens. We’ll explore how it integrates with coredumpd and Sentry.

Crash Pickup

When I outlined the functionality of coredumpd, I mentioned that it starts an instance of systemd-coredump@.service. This not only allows the core dumping itself to be controlled by systemd’s resource control and configuration systems, but it also means other systemd units can tie into the crash handling as well.

That is precisely what we do in DrKonqi. It installs drkonqi-coredump-processor@.service which, among other things, contains the rule:

WantedBy=systemd-coredump@.service

…meaning systemd will not only start systemd-coredump@unique_identifier but also a corresponding drkonqi-coredump-processor@unique_identifier. This is similar to how services start as part of the system boot sequence: they all are “wanted by” or “want” some other service, and that is how systemd knows what to start and when (I am simplifying here 😉). Note that unique_identifier is actually a systemd feature called “instances” — one systemd unit can be instantiated multiple times this way.

drkonqi-coredump-processor

When drkonqi-coredump-processor@unique_identifier runs, it first has some synchronization to do.

As a brief recap from the coredumpd post: coredumpd’s crash collection ends with writing a journald entry that contains all collected data. DrKonqi needs this data, so we wait for it to appear in the journal.

Once the journal entry has arrived, we are good to go and will systemd-socket-activate a helper in the relevant user.

The way this works is a bit tricky: drkonqi-coredump-processor runs as root, but DrKonqi needs to be started as the user the crash happened to. To bridge this gap a new service drkonqi-coredump-launcher comes into play.

drkonqi-coredump-launcher

Every user session has a drkonqi-coredump-launcher.socket systemd unit running that provides a socket. This socket gets connected to by the processor (remember: it is root so it can talk to the user socket). When that happens, an instance of drkonqi-coredump-launcher@.service is started (as the user) and the processor starts streaming the data from journald to the launcher.

The crash has now traveled from the user, through the kernel, to system-level systemd services, and has finally arrived back in the actual user session.

Having been started by systemd and initially received the crash data from the processor, drkonqi-coredump-launcher will now augment that data with the KCrash metadata originally saved to disk by KCrash. Once the crash data is complete, the launcher only needs to find a way to “pick up” the crash. This will usually be DrKonqi, but technically other types of crash pickup are also supported. Most notably, developers can set the environment variable KDE_COREDUMP_NOTIFY=1 to receive system notifications about crashes with an easy way to open gdb for debugging. I’ve already written about this a while ago.

When ready, the launcher will start DrKonqi itself and pass over the complete metadata.

the crashed application └── kernel └── systemd-coredumpd ├── systemd-coredumpd@unique_identifier.service └── drkonqi-coredump-processor@unique_identifier.service ├── drkonqi-coredump-launcher.socket └── drkonqi-coredump-launcher@unique_identifier.service └── drkonqi

What a journey!

Crash Processing

DrKonqi kicks off crash processing. This is hugely complicated and probably worth its own post. But let’s at least superficially explore what is going on.

The launcher has provided DrKonqi with a mountain of information so it can now utilize the CLI for systemd-coredump, called coredumpctl, to access the core dump and attach an instance of the debugger GDB to it.

GDB runs as a two step automated process:

Preamble Step

As part of this automation, we run a service called the preamble: a Python program that interfaces with the Python API of GDB. Its most important functionality is to create a well-structured backtrace that can be converted to a Sentry payload. Sentry, for the most part, doesn’t ingest platform specific core dumps or crash reports, but instead relies on an abstract payload format that is generated by so called Sentry SDKs. DrKonqi essentially acts as such an SDK for us. Once the preamble is done, the payload is transferred into DrKonqi and the next step can continue.

Trace Step

After the preamble, DrKonqi executes an actual GDB trace (i.e. the literal backtrace command in gdb) to generate the developer output. This is also the trace that gets sent to KDE’s Bugzilla instance at bugs.kde.org if the user chooses to file a bug report. The reason this is separate from the already created backtrace is mostly for historic reasons. The trace is then routed through a text parser to figure out if it is of sufficient quality; only when that is the case will DrKonqi allow filing a report in Bugzilla.

Transmission

With all the trace data assembled, we just need to send them off to Bugzilla or Sentry, depending on what the user chose to do.

Bugzilla

The Bugzilla case is simply sending a very long string of the backtrace to the Bugzilla API (albeit surrounded by some JSON).

Sentry

The Sentry case on the other hand requires more finesse. For starters, the Sentry code also works when offline. The trace and optional user message get converted into a Sentry envelope tagged with a receiver address — a Sentry-specific URL for ingestion so it knows under which project to file the crash. The envelope is then written to ~/.cache/drkonqi/sentry-envelopes/. At this point, DrKonqi’s job is done; The actual transmission happens in an auxiliary service.

Writing an envelope to disk triggers drkonqi-sentry-postman.service which will attempt to send all pending envelopes to Sentry using the URL inside the payload. It will try to do so every once in a while in case there are pending envelopes as well, thereby making sure crashes that were collected while offline still make it to Sentry eventually. Once sent successfully, the envelopes are archived in ~/.cache/drkonqi/sentry-sent-envelopes/.

This concludes DrKonqi’s activity. There’s much more detail going on behind the scenes but it’s largely inconsequential to the overall flow. Next time we will look at the final piece in the puzzle — Sentry itself.

Categories: FLOSS Project Planets

Tellico 4.0 Released

Wed, 2024-09-04 09:48

I’m excited to make Tellico 4.0 available as the first version to leverage the new Qt6 and KDE Frameworks 6 libraries. Tellico 4.0 also continues to build with Qt5/KF5 for those who haven’t yet transitioned to the newer versions.

Especially since this has many updates and changes in the underlying library code, please backup your data before switching to the new version. Creating a full backup file can be done by using the Export to Zip option which will create a file with all your images together with the main collection.

Please let me know of any compilation issues or bugs, particularly since I haven’t tested this on a wide range of Qt6/KF6 releases. The KDE builds are all working, which certainly helps my confidence, but one never knows.

Improvements and Fixes
  • Building with Qt6 is enabled by default, falling back to Qt5 for older versions of ECM or when the BUILD_WITH_QT6=off flag is used.
  • Book and video collections can be imported from file metadata (Bug 214606).
  • All entry templates were updated to include any loan information (Bug 411903).
  • Creating and viewing the internal log file is supported through the --log and --logfile command-line options (Bug 426624).
  • The DBUS interface can output to stdout using -- as the file name.
  • Choice fields are now allowed to have multiple values (Bug 483831).
  • The iTunes, Discogs, and MusicBrainz sources now separate multi-disc albums (Bug 479503).
  • A configurable locale was added to the IMDb data source.
  • The Allocine and AnimeNFO data sources were removed.
Categories: FLOSS Project Planets

Brightness controls for all your displays

Tue, 2024-09-03 20:00

Whoops, it's already been months since I last blogged. I've been actively involved with Plasma and especially its power management service PowerDevil for over a year now. I'm still learning about how everything fits together.

Turns out though that a little bit of involvement imbues you with just enough knowledge and confidence to review other people's changes as well, so that they can get merged into the next release without sitting in limbo forever. Your favorite weekly blogger for example, Nate Graham, is a force of nature when it comes to responding to proposed changes and finding a way to get them accepted in one form or another. But it doesn't have to take many years of KDE development experience to provide helpful feedback.

Otfen we simply need another pair of eyes trying to understand the inner workings of a proposed feature or fix. If two people think hard about an issue and agree on a solution, chances are good that things are indeed changing for the better. Three or more, even better. I do take pride in my own code, but just as much in pushing excellent improvements like these past the finish line:

In turn, responsible developers will review your own changes so we can merge them with confidence. Xaver, Natalie and Nate invested time into getting my big feature merged for Plasma 6.2, which you've already read about:

Per-display Brightness Controls

This was really just a follow-up project to the display support developments mentioned in the last blog post. I felt it had to be done, and it lined up nicely with what KWin's been up to recently.

So how hard could it be to add another slider to your applet? Turns out there are indeed a few challenges.

In KDE, we like to include new features early on and tweak them over time. As opposed to, say, the GNOME community, which tends to discuss them for a loooong time in an attempt to merge the perfect solution on the first try. Both approaches have advantages and drawbacks. Our main drawback is harder to change imperfect code, because it's easy to break functionality for users that already rely on them.

Every piece of code has a set of assumptions embedded into it. When those assumptions don't make sense for the next, improved, hopefully perfect solution (definitely perfect this time around!) then we have to find ways to change our thinking. The code is updated to reflect a more useful set of assumptions, ideally without breaking anyone's apps and desktop. This process is called "refactoring" in software development.

But let's be specific: What assumptions am I actually talking about?

There is one brightness slider for your only display

This one's obvious. You can use more than just one display at a time. However, our previous code only used to let you read one brightness value, and set one brightness value. For which screen? Well... how about the code just picks something arbitrarily. If you have a laptop with an internal screen, we use that one. If you have no internal screen, but your external monitor supports DDC/CI for brightness controls, we use that one instead.

What's that, you have multiple external monitors that all support DDC/CI? We'll set the same value for all of them! Even if the first one counts from 0 to 100 and the second one from 0 to 10.000! Surely that will work.

No it won't. We only got lucky that most monitors count from 0 to 100.

The solution here is to require all software to treat each display differently. We'll start watching for monitors being connected and disconnected. We tell all the related software about it. Instead of a single set-brightness and a single get-brightness operation, we have one of these per display. When the lower layers require this extra information, software higher up in the stack (for example, a brightness applet) is forced to make better choices about the user experience in each particular case. For example, presenting multiple brightness sliders in the UI.

A popup indicator shows the new brightness when it changes

So this raises new questions. With only one display, we can indicate any brightness change by showing you the new brightness on a percentage bar:

Now you press the "Increase Brightness" key on your keyboard, and multiple monitors are connected. This OSD popup shows up on... your active screen? But did the brightness only change for your active screen, or for all of them? Which monitor is this one popup representing?

Ideally, we'd show a different popup on each screen, with the name of the respective monitor:

That's a good idea! But Plasma's OSD component doesn't have a notion of different popups being shown at the same time on different monitors. It may even take further changes to ask KWin, Plasma's compositor component, about that. What we did for Plasma 6.2 was to provide Plasma's OSD component with all the information it needs to do this eventually. But we haven't implemented our favorite UI yet, instead we hit the 6.2 deadline and pack multiple percentages into a single popup:

That's good enough for now, not the prettiest but always clear. If you only use or adjust one screen, you'll get the original fancy percentage bar you know and love.

The applet can do its own brightness adjustment calculations

You can increase or decrease brightness by scrolling on the icon of the "Brightness and Color" applet with your mouse wheel or touchpad. Sounds easy to implement: read the brightness for each display, add or subtract a certain percentage, set the brightness again for the same display.

Nope, not that easy.

For starters, we handle brightness key presses in the background service. You'd expect the "Increase Brightness" key to behave the same as scrolling up with your mouse wheel, right? So let's not implement the same thing in two different places. The applet has to say goodbye to its own calculations, and instead we add an interface to background service that the applet can use.

Then again, the background service never had to deal with high-resolution touchpad scrolling. It's so high-resolution that each individual scroll event might be smaller than the number of brightness steps on your screen. The applet contained code to add up all of these tiny changes so that many scroll events taken together will at least make your screen change by one step.

Now the service provides this functionality instead, but it adds up the tiny changes for each screen separately. Not only that, it allows you to keep scrolling even if one of your displays has already hit maximum brightness. When you scroll back afterwards, both displays don't just count down from 100% equally, but the original brightness difference between both screens is preserved. Scroll up and down to your heart's content without messing up your preferred setup.

Dimming will turn down the brightness, then restore the original value later

Simple! Yes? No. As you may guess, we now need to store the original brightness for each display separately so we can restore it later.

But that's not enough: What if you unplug your external screen while it's dimmed? And then you move your mouse pointer again, so the dimming goes away. Your monitor, however, was not there for getting its brightness restored to the original value. Next time you plug it in, it starts out with the dimmed lower brightness as a new baseline, Plasma will gladly dim even further next time.

Full disclosure, this was already an issue in past releases of Plasma and is still an issue. Supporting multiple monitors just makes it more visible. More work is needed to make this scenario bullet-proof as well. We'll have to see if a small and safe enough fix can still be made for Plasma 6.2, or if we'll have to wait until later to address this more comprehensively.

Anyway, these kind of assumptions are what eat up a good amount of development time, as opposed to just adding new functionality. Hopefully users will find the new brightness controls worthwhile.

So let's get to the good news

Your donations allowed KDE e.V. to approve a travel cost subsidy in order to meet other KDE contributors in person and scheme the next steps toward world domination. You know what's coming, I'm going to:

Akademy is starting in just about two days from now! Thank you all for allowing events like this to happen, I'll try to make it count. And while not everyone can get to Germany in person, keep in mind that it's a hybrid conference and especially the weekend talks are always worth watching online. You can still sign up and join the live chat, or take a last-minute weekend trip to Würzburg if you're in the area, or just watch the videos shortly afterwards (I assume they'll go up on the PeerTube Akademy channel).

I'm particularly curious about the outcome of the KDE Goals vote for the upcoming two years, given that I co-drafted a goal proposal this time around. Whether or not it got elected, I haven't forgotten about my promise of working on mouse gesture support on Plasma/Wayland. Somewhat late due to the aforementioned display work taking longer. Other interesting things are starting to happen as well on my end. I'll have to be mindful not to stretch myself too thinly.

Thanks everyone for being kind. I'll be keeping an eye out for your bug reports when the Plasma 6.2 Beta gets released to adventurous testers in just over a week from today.

Discuss this post on KDE Discuss.

Categories: FLOSS Project Planets

GSoC Final Update

Tue, 2024-09-03 14:50

This is my last update about my GSoC project (Python bindings for KDE Frameworks).

These weeks have been quieter than usual because I’ve been on vacation, but there are still some new things to share.

I published a mini tutorial on how to generate Python bindings using the new CMake module.

People have started to test the Python bindings and some building issues have been reported (which is good, because that means people have interest in them). Unfortunately I’m going to have less time to contribute as I start university next week, but I’m sure you’ll see me!

Many thanks to Carl (my mentor) and everyone who reviewed my merge requests!

Categories: FLOSS Project Planets

Calligra 4.0.1

Tue, 2024-09-03 05:25

Calligra 4.0.1 is out. This small releases mostly contains fixes for distributions issues and updated translations.

I fixed some compatibility issues for Flatpak which is since yesterday available on Flathub.

Flathub website showing Calligra

Yaakov Selkowitz fixed the installation of the Okular generators so now if Calligra is installed, you can read your office document in Okular correctly.

Antonio Rojas dropped the unused KPart dependency and reenabled the user documentations.

I removed the old space navigator plugin which didn’t build anymore and was only used to navigate an office document with some retro controllers.

Finally, I fixed a few issues in Stage, I found while dog footing it for my slides for my Akademy presentation.

The updated slides sidebar of Calligra Stage

Get It

Calligra 4.0 is now available on Flathub. It’s also now available on Arch, KDE Neon and OpenBSD and I am aware there is some work in progress for Fedora and Mageia. Thanks everyone for packaging Calligra!

Packager Section

You can find the package on download.kde.org and it has been signed with my GPG key.

Categories: FLOSS Project Planets

July and August in KDE PIM

Mon, 2024-09-02 15:20

Here's our bi-monthly update from KDE's personal information management applications team. This report covers progress made in July and August 2024.

Since the last report, 32 people have contributed over 1300 changes to the KDE PIM code base. We also released a new version of the KDE PIM Suite in August with the Gear release

Akademy

The KDE PIM team will be at Akademy from the 7th to the 12th of September in Würzburg (Germany). We will host again a PIM BoF on Monday from 14h to 16h.

Milestones

We have decided to plan and track our work in milestones. Milestones represent concrete goals 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 helps 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 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!

Retiring KJots and KNotes

We made some progress on this front and KNotes was not part of the 24.08 release. The repositories for KNotes and KJots are now archived and the remaining bits related to the Akonadi Note support were removed from KOrganizer, Calendar Support, KDE PIM Runtime, and Event Views.

Moving Protocol Implementations to KDE Frameworks

Volker continued to cleanup and optimize KMime in preparation for moving it to the KDE Frameworks. KMime is the library used to parse and write emails.

Itinerary

Our travel assistant app Itinerary got a new seat information display in the timeline, integration with the Träwelling check-in service, more use of Wikidata/Wikimedia online content and a pretty new website. See its own bi-monthly update for more details.

Kleopatra

Over the last two months the smart card views for the different types of supported smart cards got a facelift to make them look more unified and less crowded (T7018).

Kleopatra now supports disabling OpenPGP certificates (T7216). This is sometimes useful to prevent accidentally using a certificate for encryption.

We improved the usability in

  • signing and encryption (T6485, T7183, T7236),
  • the list of certifications that now only shows the relevant ones (T7231),
  • the certificate group configuration (T6966),
  • changing the expiration of subkeys (T7198, T7215).
Akregator

Akregator is the RSS feed reader integrated into Kontact. Laurent reimplemented the filter bar to avoid multiple clicks and it is now similar to the one from Thunderbird.

Akregator now supports Plasma Activities so you can select which feeds are visible depending on the activity you are in. Similar functionalities are planned for KMail, KOrganizer and KAddressBook.

Finally, Akregator now has a What's New dialog showing the changes from the last version.

KMail

KMail now uses less memory by only loading some widgets when needed.

MimeTreeParser/Merkuro

We have unified the verification message for signed messages between Kleopatra, KMail and Merkuro by moving the implementation to LibKleo.

KAlarm

We replaced the libcanberra audio backend with VLC, since libcanberra is unmaintained and does not recognise recent audio formats. There is also the option for distributions to use MPV as audio backend.

Categories: FLOSS Project Planets

Kdenlive 24.08.0 released

Sun, 2024-09-01 20:52

Kdenlive 24.08 is out, and while summer is usually a quieter time for the team, this update comes packed with nifty new features, enhancements, and quality-of-life improvements, specially for Effects and Transitions. This version boosts performance in sequence playback and timeline preview rendering, improves handling of transcoding issues when importing large amounts of clips, adds VAAPI transcode profiles, and fixes GPU transcoding for Nvidia. On the packaging front, Whisper support has been improved for both Windows and macOS while also improving theming issues on all platforms.

 

Effects and Transitions

This release comes with many improvements to Effects and Transitions that were made possible thanks to your contributions to our fundraiser.

  User Interface

This version comes with a revamped user interface for all effect controls, resulting in a cleaner look and more efficient usage of space.

  Easing Modes

In addition to the existing easing modes (linear, smooth, and constant), we’ve added several new options like: Cubic In/Out, Exponential In/Out, Circular In/Out, Elastic In/Out, and Bounce In/Out for transitions and effects.

 

 

  Effect Groups

The new Effect Groups feature enables you to control and apply changes to all clips within a group or selection, making the effect editing process more flexible.

 

  Transform Effect UX

This release brings  several enhancements to the Transform effect, improving both usability and functionality. The handles’ visuals have been refined by adding more control points for easier adjustments. Now, you can move the frame from anywhere inside it, with the handles automatically disappearing during the move for a cleaner view. Also holding Alt+Click lets you cycle through clips without needing to select them in the timeline. We’ve also added a grid to the monitor, allowing clips to snap into place while moving.

  Curve Editor

This version introduces an initial prototype of the highly anticipated curve editor for keyframes. Please note that it is in a very alpha state and is not ready for production.

 

 

Other Highlights

This release includes over 130 commits. Here are a few highlights:

  • Fixed many Python related issues
  • Fixed Titles background issues
  • Added timestamps to undo commands
  • Fixed many crashes in various operations
  • Add Actions to quickly add Marker/Guides in a specific category
  • Run callback server for OAuth2 only if necessary.
  • Fixed issues with custom Clip Jobs
  • Fixed audio recording regressions
Full Changelog
  • Fix Whisper / numpy version on Mac. Commit.
  • Try to fix venv on Mac. Commit.
  • Fix monitor data lost on switch from/to fullscreen on Windows. Commit. See bug #490708.
  • Improve default track height calculation. Commit. See bug #490869.
  • Ensure qtblend composition is always preferred to cairoblend unless specifically requested by user. Commit. See bug #491628.
  • Better syntax for package check. Patch by Philippe Fremy. Commit.
  • Fix effectstack view keeps scrolling when mouse leaves. Commit.
  • Improve drag and drop of effects, don’t create 2 separate entries on dropping effect from list. Commit.
  • Fix effect stack scroll on drag. Commit.
  • Stop dragging effect stack when mouse is outside of the widget. Commit.
  • Fix reuse. Commit.
  • Fix some effect names not translated. Commit. Fixes bug #491438.
  • Fix python venv on Windows. Commit.
  • Fix possible crash on python install and enforce correct packages for Windows Whisper. Commit. See bug #490661.
  • Switch openai installer to python requirements files, allowing to fix numpy error on Windows. Commit. See bug #491350.
  • Fix rendering progress sometimes incorrect. Commit. See bug #490146.
  • Fix NVidia transcoding of 10bit videos (convert to 8bit). Commit.
  • Default to GPU transcoding if available. Commit.
  • Fix incorrect param in audio thumb introduced in recent commit. Commit.
  • Minor optimization for preview render. Commit.
  • Fix titler incorrect background scale. Commit.
  • Fix subtitle widget size on AppImage. Commit.
  • Fix detection of build in MLT lumas. Commit.
  • Fix subtitle widget using too much space. Commit.
  • When doing an extract operation on all tracks and guides are not locked, move / delete the guides accordingly. Commit. See bug #490020.
  • Fix titler background is pixelated. Commit. Fixes bug #431606.
  • Fix deleting several single selection items sometimes deletes an unselected clip. Commit.
  • Make audio only render faster. Commit. See bug #491109.
  • Add video only vaapi transcode profile. Commit.
  • Don’t start proxy/audio tasks if a clip requires transcoding. Commit.
  • First round of fixes for task manager. Commit.
  • Add vaapi transcoding profile. Commit.
  • Fix crash in task manager. Commit.
  • Separate file for audio tracks fixes: Fix muted tracks exported, don’t export audio for video render. Commit. See bug #491108.
  • Fix timeline scrolling down by a few pixels when already at the bottom when using rubberband or spacer. Commit. Fixes bug #490956.
  • Ensure missing timeline clips all have the “Invalid” markup text. Commit.
  • Fix crash cutting missing timeline clip. Commit.
  • Fix possible crash in keyframe editor. Commit.
  • Scroll effect stack view when dragging an effect. Commit.
  • Fix crash adding/editing keyframes on tracks/master when using group effects feature. Commit.
  • Fix possible QT debug crash on paste. Commit.
  • Add Actions to quickly add Marker/Guides in a specific category. Commit.
  • Fix loading sequence clip broken by last commit. Commit.
  • Fix single selection resize affecting other grouped items. Commit.
  • Add a control uuid to each bin clip to ensure clips can not get mixed on project opening. Commit.
  • Fix crash after undo spacer move with guides. Commit.
  • Fix transform keyframe center seeking outside clip. Commit.
  • Fix crash pasting single selected clip. Commit. Fixes bug #490370.
  • Fix track effects cannot be deleted if “group effect” feature is enabled. Commit.
  • Updating a bin clip (name, tag) should be applied to all timelines, not only the current one. Commit.
  • Slightly better adjustment of tracks in multicam view for more than 4 tracks. Commit.
  • Make multitrack tool operate on inactive tracks as well. Commit. See bug #489981.
  • Fix color theme menu not showing active theme. Commit. Fixes bug #489958.
  • Fix cannot restore audio after saving project with master muted. Commit. Fixes bug #489985.
  • Fix crash transcoding an audio only clip. Commit.
  • Generating comobox box from mlt enumeration parameters in generic effect UI. Commit.
  • Add createdate to dynamic text keywords and some tooltip info. Commit. See bug #489119.
  • Update SoK file copyright. Commit.
  • Implement keyframe curve editor. Commit.
  • Fix transcoding sometimes results in vfr clips. Commit.
  • Fix avgblur minimum value for x offset. Commit.
  • Add sliders to keyframe import offset (Fixes #1884). Commit.
  • Update include/exclude lists with latest status. Commit.
  • Allow Effects/Compositions widgets to be smaller. Commit.
  • Consistently use USE_DBUS in CMake. Commit.
  • Monitor qml overlay: don’t allow editing effect if timeline cursor is outside effect. Commit.
  • Get rid of ugly public/private hack in tests. Commit.
  • In comments, replace en_GB words “colour” and “analyse” with en_US versions. Commit.
  • Rename CMake option for DBus from NODBUS to USE_DBUS. Commit.
  • Nicer monitor handles for transform effect, don’t allow invalid rect on resize. Commit.
  • [cmd rendering] Ensure proper kdenlive_render path for AppImage. Commit.
  • [nightly flatpak] update otio. Commit.
  • Explicitly mention that QT’s major version in MLT must match the one used for Kdenlive. Commit.
  • Fix undo move effect up/down. On effect move, also move the active index, increase margins between effects. Commit.
  • Fix removing a composition from favorites. Commit.
  • Properly activate effect when added to a timeline clip. Commit.
  • Transform effect: allow moving frame from anywhere inside it, hide handles on move. Commit.
  • Fix spacer tool can move backwards and overlap existing clips. Commit.
  • Transform effect: add top, bottom, left, right handles. Commit.
  • Add easing method to video fades. Commit.
  • Transform effect: fix handles move on click. Commit.
  • Transform effect: when working in timeline with several clips using a transform effect, Alt+Click allows cycling through the clips. Commit.
  • [nightly flatpak] Switch to llvm18. Commit.
  • Add grid to monitor effects scene (it snaps). Commit.
  • Run callback server for OAuth2 only if necessary. Commit.
  • Fix extra dash added to custom clip job output. Commit. See bug #487115.
  • Fix include list license. Commit.
  • Fix usage of QUrl for LUT lists. Commit. See bug #487375.
  • Rename include/exclude lists. Commit.
  • For Qt5 require at least KF 5.115.0, for Qt6 KF 6.0.0. Commit.
  • Allow custom whitelist files for effects / compositions (no ui yet). Commit.
  • Fix startup crash on KF 6.3. Commit.
  • Fix missing whitelist license. Commit.
  • Implement effects whitelist (WIP). Commit.
  • Fix default keyframe type referencing the old deprecated smooth type. Commit.
  • Warn if custom clip job contains uneven number of quotes. Commit.
  • Be more clever splitting custom ffmpeg commands around quotes. Commit. See bug #487115.
  • Fix effect name focus in save effect. Commit. See bug #486310.
  • Fix tests. Commit.
  • Fix selection when cutting an unselected clip under mouse. Commit.
  • Add timestamp to undo commands. Commit.
  • Fix loading timeline clip with disabled stack should be disabled. Commit.
  • Fix crash trying to save effect with slash in name. Commit. Fixes bug #487224.
  • Remove quotes in custom clip jobe, fix progress display. Commit. See bug #487115.
  • Replace custom style menu by new KStyleManager menu. Commit.
  • Use KIconTheme::initTheme & KStyleManager::initStyle for proper styling. Commit.
  • Fix setting sequence thumbnail from clip monitor. Commit.
  • ClipJob: fix typo. Commit.
  • ClipJob: correct and update info and whatsthis. Commit. See bug #487115.
  • Fix locked track items don’t have red background on project open. Commit.
  • Fix spacer tool doing fake moves with clips in locked tracks. Commit.
  • Hide timeline clip status tooltip when mouse leaves. Commit.
  • UI files: use notr=”true” instead of old comment=”KDE::DoNotExtract”. Commit.
  • Fix wrong FFmpeg chapter export TIMEBASE. Commit. Fixes bug #487019.
  • Fix tests build. Commit.
  • With Qt6 the breeze-icons *.rcc files are no longer delivered. Commit.
  • Code Gardening: split main() into logical pieces. Commit.
  • Create sequence thumbs directly from bin clip producer. Commit.
  • Play monitor on click – make configurable. Commit.
  • Fix opening documentation link for shuttle on Windows. Commit.
  • Fix merge error. Commit.
  • Typo for build command: ninja is use in the cmake command, so sudo ninja install should be used. Commit.
  • JogShuttle, add note and link for installation on Windows. Commit. Fixes bug #485602.
  • Optimize playback of sequence clips (don’t default to rgba format which triggers expansive compositing checks). Commit.
  • Correct typo “file exist” → “file exists”. Commit.
  • Draft: Clarify that the remaining time calculation is an estimation. Commit.
  • Fix tests warnings. Commit.
  • Improve user feedback. Commit.
  • Audio record: allow playing timeline when monitoring, clicking track rec… Commit. See bug #486198. See bug #485660.
  • Feat: Implement effect groups. Commit.
  • Work/audio rec fixes. Commit.
  • Add multi-format rendering. Commit.
  • Ensure Docks are correctly sorted in view menu. Commit.

The post Kdenlive 24.08.0 released appeared first on Kdenlive.

Categories: FLOSS Project Planets

Getting ready for Akademy

Sat, 2024-08-31 06:55

Next week Akademy, KDE’s annual community conference, will take place in Würzburg, Germany. There are a few features that I actually began during various conferences throughout the years to address real-world problems. I decided to have look at some of them again that would be most useful for people travelling to Akademy from abroad or who will be giving a presentation there.

Connect to a Wi-Fi network by scanning its QR code Wifi QR Code Scanner

Two years ago at Akademy in Barcelona the venue Wifi details were printed onto our attendee badges as QR code. Already during the conference I started adding a scanner to the networks menu using our fantastic Prison Framework scanner feature. However, with Qt 6 at the horizon and its significant changes to Qt Multimedia I didn’t pursuit it further at the time. Then, whenever I attended another sprint or got to a hotel where they handed out Wifi QR codes, I was reminded that I still haven’t finished the thing.

Still, all prerequisites under the hood have long been merged. The first task was to move the MeCard parser (the format used for those QR codes) from the QRCA scanner app into a shared location. Since MeCard can even contain WPA-EAP configuration I wanted to have the logic for setting up NetworkManager accordingly shared, too. In preparation for adding a sub-page for the camera viewfinder I replaced the full-screen QR code generator with an integrated one.

A huge challenge was that we either need to add a new connection or update an existing one with new credentials. It took me forever to figure out why it wouldn’t update the Wifi passphrase on my network: I’m meanwhile using WPA3-SAE at home! The code for setting up NetworkManager from MeCard didn’t handle “T=SAE” and thus didn’t generate any credentials. Funnily enough, our MeCard generator did. Once that was sorted, the code worked as intended.

However, after a lot of back and forth I abandoned the idea of putting it in the Network applet directly. Using Qt Multimedia, potentially loading a bunch of backends and codecs is probably not something we want to have in the shell. Instead, I will look into adding a button to the Network settings module instead. In the meantime, you can always use QRCA to scan a code a Wifi code.

Location-aware time zone setting

Last year’s Akademy was located in Thessaloniki, Greece which is in a different time zone for many of its attendees. Our phones automatically adjust to that using the cellular network and we don’t even think about it. Frequently during the conference people were confused which talk will come next when their laptop and phone disagreed on the time. Therefore, I wrote a daemon that automatically adjusts the time zone based on your physical location.

Enable location-based time zone option in “Date & Time” settings

For privacy, this uses KDE’s own GeoIP endpoint and is opt-in. It is also disabled when connected to a VPN (the endpoint could be in an entirely different location after all) or a metered connection. We’re considering adding a checkbox to Plasma’s Welcome Center on its “Privacy” page to make the feature more discoverable for laptop users. However, there’s still a few quirks to be ironed out to ensure that our users don’t bring down the server hosting that service since by definition you cannot put that sort of thing behind a CDN.

I can’t wait to travel to Würzburg next week. Given the convenient location I am positive that a lot of people and “old-timers” that I haven’t seen around in a while will stop by to say hello. Come join us, attendance is free and it’s always great fun!

Categories: FLOSS Project Planets

Getting ready for Akademy

Sat, 2024-08-31 06:07

Next Saturday, this year’s Akademy starts in Würzburg, Germany. After a rather long absence – the last Akademy I attended in person was in Mechelen (2008) – I am very much looking forward to meet old friends and make new ones. Mainly due to my own summer vacation plans and conflicting family matters, I was not able to make it to the event in recent years. Now, as the venue is only just over 100 kilometers from my home and I have no other commitments, I’m traveling to

My plan is to arrive on Friday late afternoon and join the welcome event. The conference schedule is pretty loaded and I have only decided on a few talks I definitely want to visit. For more, I need to take another look at the schedule and also the list of planned BoFs on Monday and Tuesday.

Topics I am interested in are (not in a particular order)

  1. Getting KMyMoney to be properly build on the CI/CD for MacOS (both ARM and x86_64)
  2. Meet people in person I only know from the online world
  3. What is needed on the project configuration (Gitlab, metadata) side to move onto KF6

For 1. I hope to get some more background information out of the KDE’s CI and CD Infrastructure talk held by Ben, Hannah, Julius and Volker on Sunday and the CI/CD BoF on Tuesday.. For other topics I will see.

Looking forward to seeing many of you KDE fellows next week in Würzburg!

Categories: FLOSS Project Planets

Getting ready for Akademy 2024

Sat, 2024-08-31 03:45

In less than a week this year’s Akademy starts in Würzburg, Germany, and as usual I’m very much looking forward to that :)

Talks

Akademy starts with two days full of presentations. Online participation is possible as well, you can register here.

I have two talks myself.

KDE’s CI and CD Infrastructure

Sunday, 14:30 in room 1, together with Ben, Hannah and Julius, details.

We want to give an overview of the many parts and options we have around continuous integration and deployment since the migration from Jenkins to Gitlab, to enable more people to do changes and adjustments there themselves.

Finding your way around Akademy - Venue maps and indoor routing in Kongress

Saturday, 18:00 in room 1, details.

A lightning talk about the use of OSM indoor venue maps in our conference companion app Kongress.

BoFs

Following the talks there will be three days of meetings on various topics (“BoFs”). There’s fewer BoFs I’m (co-)hosting or otherwise directly involved in than last year:

  • KDE PIM (Monday 14:00)
  • CI/CD (Tuesday 15:00)

While that should be a bit less stressful, those will be very busy days nevertheless, with already now too many sessions on the schedule I’d like to participate in.

And of course every event essentially is just one big Itinerary BoF in disguise.

Qt Contributor Summit

Right before Akademy there’s also the Qt Contributor Summit in Würzburg.

I have been asked to give a short presentation on experiences with migrating to Qt 6 and maintaining software on top of Qt 6, both from the KDE and from my work perspective. Currently that’s planned for the morning talks session on Thursday.

Kongress

And as usual there’s also code to finish before Akademy. This time the important one has been the venue map integration for Kongress. Not only does this have to be ready for my talk about it, it’s also meant to be used at Akademy.

Time-dependent maps

A big part still missing in the previous post was support for time-dependent content. While conceptually clear (OSM has time-conditional tags and we have an parser/evaluator for the opening hours expressions used in those) I was still hoping we might get away without that.

And we would now (again), but there was an intermediate state of the Akademy schedule until two days ago where “Room 1” referred to a different physical room on Saturday and Sunday than during the rest of the week. While that might sound confusing, this is actually not unusual, so properly supporting all that makes sense anyway.

With the rooms now having distinct names again I can’t easily demonstrate the full power of time-dependent content anymore, but you’ll still notice that the venue map looks different depending on which day you open it (by opening it from events on different dates, or by waiting a week).

Android dark mode support

To look good for the occasion we now also have proper Android dark mode support in KDE Frameworks, thanks to Julius’s recent work on icon recoloring, and the necessary changes in Kongress will be part of 24.08.1.

Kongress on Android in dark mode. xCal support

With September being packed with conferences, another problem has become pressing for Kongress as well: Pretalx (a widely used open source conference management software) apparently removed access to the schedule in iCal format, something Kongress relies on. Akademy isn’t affected due to using a different system, but SotM or the Matrix Conference are.

As a solution we could roll out quickly I added basic xCal read support to KF::CalendarCore, a format Pretalx still supports. This has been integrated yesterday and should make it in the September update of KDE Frameworks.

Itinerary

Since conferences involve travel for most people, Itinerary can’t go without attention either.

For making coordination of train trips easier, the “Share Journey” links you’ll get from Deutsche Bahn’s website can now be directly imported.

Akademy and all its sub-events are machine-readable on their corresponding websites as usual, and thus can also be imported by pasting/opening/dropping the corresponding URLs in(to) Itinerary.

The day trip shows some limitations though, we don’t have a good way to model that yet. It’s now imported as an event, but ideally it would be two bus trips, so you have the most crucial information (places and times of the bus departures) included.

Itinerary supports bus trips, but we have a few specialties here. The departure location of the return trip is still unknown (expecting that to be where we get dropped off), so this needs to be editable. For bus trips however Itinerary doesn’t allow arbitrary changes when editing, so you can’t accidentally end up with something that can no longer be matched against realtime data. That’s however irrelevant for chartered buses, those don’t show up on any schedule anyway.

So that bus trip is actually less of a bus trip in the public transport sense, but more an individual transport trip (ie. similar to taking your own bike or car). And that’s something we don’t support in Itinerary at all yet. If you have input on how that should look like, I’d be happy to hear that in the Itinerary Matrix channel!

Hoping nobody gets lost due to an Itinerary bug on the way and very much looking forward to seeing many of you next week in Würzburg!

Categories: FLOSS Project Planets

This week in Plasma: inhibiting inhibitions and more!

Fri, 2024-08-30 19:38

This is a big one, folks. Plasma 6.2’s soft feature freeze is now in effect, which means the last few features have just been merged! Now we’ll have six weeks of heavy bug-fixing before the final release in October. If you’re an industrious sort, the time to live on git master and report bugs is now! Current git master is completely suitable for daily driving.

And we’ve already been focusing on QA for a while, so new bug reports take priority — both triaging them and fixing them. Over the past few months, we’ve succeeded in dropping plasmashell’s total number of bug reports to 1022, the lowest in several years. And the number of unconfirmed bug reports is currently down to 301, the lowest since late 2015! Triaging and fixing bugs is a priority, and we’re promptly triaging all new Plasma new bug reports daily. Our goal is to push the number of unconfirmed bug reports under 200 by the end of September.

So please do submit bug reports for any issues you encounter; it’s not a black hole. If you’ve complained about bugs on social media recently and haven’t reported them on https://bugs.kde.org, fix that today! Do it! Do it now!

…But first check out the final Plasma 6.2 features; I think they’re pretty awesome. It’s gonna be a big release, full of useful stuff!

Notable New Features

It’s now possible to block apps from inhibiting sleep and screen lock, if you don’t like the fact that they do so (Natalie Clarius, Plasma 6.2.0. Link):

Newly installed Plasma widgets are now shown at the top of the grid view and badged with “New!” for one hour, so it’s easy for you to find them right after installing them (Niccolò Venerandi, Plasma 6.2.0. Link):

While choosing a custom image for a user avatar on System Settings’ Users page, you can now crop the image if needed (someone going by the Pseudonym “Kuneho Cottonears”, Plasma 6.2.0. Link):

Added support for 7-day weather forecasts and “chance of precipitation” data for BBC UK Met weather stations shown in Plasma’ Weather widget (Ismael Asensio, Plasma 6.2.0. Link):

Discover now gently guides you in the direction of writing better reviews for non-proprietary apps (me: Nate Graham, Plasma 6.2.0. Link):

https://i.imgur.com/SGTpj9a.mp4

Added a yearly notification to ask for donations; see this week’s earlier post for more details (TL;DR: optional, once per year, you can permanently disable it) (me: Nate Graham Plasma 6.2.0. Link)

The plasma-apply-wallpaperimage tool now has a --fill-mode option, mirroring the existing GUI option for this, but now in a scriptable form (Heitor Augusto Lopes Nunes, Plasma 6.2.0. Link)

Notable UI Improvements

Due to popular demand, KWin’s Overview effect once again shows a linearized representation of two-dimensional virtual desktop layouts (e.g. 2×2, 3×3, etc) on the primary view, rather than hiding them entirely (Blazer Silving, Plasma 6.2.0. Link)

Plasma’s System Tray now uses a better grid layout for the expanded view that leaves more space for text, which is especially important for languages like German and Russian. The new layout saves space, too (me: Nate Graham, Plasma 6.2.0. Link):

The settings for KWin’s colorblindness correction effect now live in the logical place where you’d expect to find them: on System Settings’ Accessibility page! (Thomas Duckworth, Plasma 6.2.0. Link):

Overhauled the UI of System Settings’ Accessibility page in a lot of little ways to make it actually be more… accessible! (Thiago Sueto, Plasma 6.2.0. Link)

Plasma’s “Minimize All” widget now only minimizes and unminimizes windows on the current virtual desktop and activity, rather than all windows everywhere (Christoph Wolk, Plasma 6.2.0. Link)

If you enter global edit mode, and then from there enter a panel’s own edit mode, closing the panel’s configuration window now simply returns you to the global edit mode, rather than exiting from that too (Niccolò Venerandi, Plasma 6.2.0. Link)

The error message shown when manually installing a Plasma widget fails is now more descriptive, and tells you the actual error so you can troubleshoot it (Nicolas Fella, Plasma 6.2.0. Link)

Made a pass over many areas of Plasma and System Settings to align text and labels with our Human Interface Guidelines’ best practices (Christoph Wolk, Plasma 6.2.0. Too many merge requests to list TBH, so check them all out here!)

Dialog windows throughout KDE software have new icons again — this time they look nicer and more Breeze-styled (Kai Uwe Broulik, Frameworks 6.6. Link):

Notable Bug Fixes

Fixed a nasty issue that could cause corruption in files on SFTP servers that were edited by opening them from Dolphin in an app and then saving changes (Ser Freeman, kio-extras 24.12.0. Link)

Changing the system’s Global Theme now also changes the colors of any recolorable GTK apps, just like you’d expect (Michael Weghorn, Plasma 6.1.5. Link)

Performing a multi-finger touch swipe/gesture on your touchscreen no longer messes up Plasma and gets it caught in a weird limbo state (Marco Martin, Plasma 6.1.5. Link)

Fixed a recent regression in Plasma’s desktop file/folder view that could cause items to snap back to their previous locations after being dragged somewhere else (David Edmundson, Plasma 6.2.0. Link)

Job progress notifications shown by Plasma no longer let any buttons’ text get cut off in languages where words and phrases are long; now, the popups expand horizontally a bit to make room (Arjen Hiemstra, Plasma 6.2.0. Link)

Fixed two issues in Plasma’s Emoji Selector app seemingly caused during the Plasma 6 port that caused it to lose its prior selection highlight effect, and always copy the first item in the search results view rather than the selected one (Akseli Lahtinen, Plasma 6.2.0. Link 1 and link 2)

Substantially reduced the glitchiness of the tooltips for items in the expanded view of Plasma’s System Tray (me: Nate Graham, Plasma 6.2.0. Link)

Fixed a glitch that could cause the Maliit virtual keyboard to be mis-positioned when using any vertical panels (David Edmundson, Plasma 6.2.0. Link)

When Plasma’s Folder View widget is placed on a panel, its popup can now be resized to smaller than its default size (me: Nate Graham, Plasma 6.2.0. Link)

It’s no longer possible to break System Settings quite terribly by opening a “Get New [thing]” window and then closing System Settings’ own main window (Harald Sitter, Frameworks 6.6. Link)

Other bug information of note:

Notable in Performance & Technical

Substantially improved performance in Discover in multiple ways: launch time, time to load the UI, time to load icons, and smoothness of scrolling through long lists (Harald Sitter, Plasma 6.2.0. Link 1, link 2, link 3, link 4, and link 5)

Discover now behaves more sensibly and only shows one authentication prompt when asked to update multiple Flatpak apps in an environment with hardened security for Flatpaks, as in openSUSE distros (Harald Sitter, Plasma 6.2.0. Link)

Installing a font now places it, by default, in a standardized location (e.g. ~/.local/share/fonts/rather than the legacy location (~/.fonts/), which means that sandboxed apps will be able to find and use them as expected (David Edmundson, Plasma 6.2.0. 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

So yeah, like I said, please test Plasma from current git master and open bug reports about issues you find. Another path is to help triage bug reports that the first crowd will be opening. Ask for more information, make them actionable, move them where needed! And of course, help fix triaged and confirmed bug reports.

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! Or consider donating instead! That helps too.

Categories: FLOSS Project Planets

Kdenlive Café

Fri, 2024-08-30 11:11

The first Kdenlive Café of the year will be on Tuesday, September 3rd at 7PM UTC (9PM CET).

Come chat with the team!

Join us at: https://meet.kde.org/b/far-twm-ebr

The post Kdenlive Café appeared first on Kdenlive.

Categories: FLOSS Project Planets

La Palma Tech Summer 2024 meetup: summary

Fri, 2024-08-30 10:00
San Miguel de La Palma Tech Lovers, the meetup group As you probably know, I am the organiser of the meetup group San Miguel de La Palma Tech Lovers, a attempt to bring together the local tech community, remote workers located in the island and digital nomads visiting it. These two last groups are coordinated … Continue reading La Palma Tech Summer 2024 meetup: summary
Categories: FLOSS Project Planets

Web Review, Week 2024-35

Fri, 2024-08-30 09:40

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

Telegram is neither “secure” nor “encrypted”

Tags: tech, telegram, security, privacy

Here a good reminder that the PR of Telegram is highly misleading. It’s not very secure, they don’t really care about your privacy.

https://rys.io/en/171.html


How Telegram’s Founder Pavel Durov Became a Culture War Martyr

Tags: tech, telegram, law

Yes, such an arrest is concerning. Now, lots of people are voicing the wrong concerns… this article actually does a good job explaining it.

https://www.404media.co/how-telegrams-founder-pavel-durov-became-a-culture-war-martyr/


Is the Open Source Bubble about to Burst?

Tags: tech, foss, values, licensing, fundraising

I’m not sure the “bubble” comparison properly applies. Still there are indeed signs of the Open Source movement getting in troubles. It’ll be all the more important to stick to the Free Software values.

https://tarakiyee.com/is-the-open-source-bubble-about-to-burst/


Elasticsearch is Open Source, Again

Tags: tech, foss, licensing

It’s about time… I wish they would have gone for the AGPL + proprietary double license scheme instead of their odd licenses the last time.

https://www.elastic.co/blog/elasticsearch-is-open-source-again


Top Programming Languages 2024 - IEEE Spectrum

Tags: tech, language

Interesting to see Typescript and Rust picking up pace slowly. Otherwise Python, Java, Javascript and C++ are still the big four overall. For jobs, C# and SQL are good to have in your tool belt.

https://spectrum.ieee.org/top-programming-languages-2024


What RSS Needs

Tags: tech, rss

Very good list of the challenges ahead for RSS as a popular protocol. It’d be great to see some of it being tackled.

https://www.mnot.net/blog/2024/08/25/feeds


OpenSSH Backdoors

Tags: tech, supply-chain, security, linux

Interesting comparison between old attempts at backdooring OpenSSH and the latest xz attempt. There are lessons to be learned from this. It makes a good case for starting to sandbox everything.

https://blog.isosceles.com/openssh-backdoors/


Bypassing airport security via SQL injection

Tags: tech, security, airline

Woops, this was clearly a very bad security issue allowing to completely bypass airport security screening in the US.

https://ian.sh/tsa


SQL Has Problems. We Can Fix Them: Pipe Syntax In SQL

Tags: tech, databases, sql

Looks like an interesting way to improve SQL. This feels like a nice extension, it’s much better than throwing out the baby with the bathwater.

https://research.google/pubs/sql-has-problems-we-can-fix-them-pipe-syntax-in-sql/


Python’s Preprocessor

Tags: tech, programming, python, metaprogramming

Interesting to see how far you can go preprocessing Python.

https://pydong.org/posts/PythonsPreprocessor/


Don’t use complex expressions in if conditions | Volodymyr Gubarkov

Tags: tech, programming, maintenance

Definitely a good advice, I see very complex expressions in if (or while BTW) conditions way too often. They tend to accumulate over time.

https://maximullaris.com/if_condition.html


Why Playwright is less flaky than Selenium

Tags: tech, web, frontend, tests, performance, reliability

Interesting reason which would explain the Selenium flakiness. It’s just harder to write tests with race conditions using Playwright.

https://justin.searls.co/links/2024-08-29-why-playwright-is-less-flaky-than-selenium/


Putting a meaningful dent in your error backlog

Tags: tech, monitoring, reliability, debugging

How to avoid drowning in errors when getting serious about monitoring. Finding class of errors and treating them one by one will definitely help.

https://blog.danslimmon.com/2024/08/15/putting-a-meaningful-dent-in-your-error-backlog/


There can’t be only one

Tags: tech, design, databases

A weird detour via baseball obscure rules to justify why we should pay attention to the “Highlander problem”. This should be kept in mind especially for designing databases.

https://www.b-list.org/weblog/2024/aug/27/highlander-problem/


Building with purpose

Tags: tech, business, architecture

Definitely something architects should do more. Understanding the business needs should be the input to the technical decisions. Otherwise you might just happily build the wrong thing.

https://cremich.cloud/building-with-purpose


Bye for now!

Categories: FLOSS Project Planets

Qt/.NET — Using QML in a .NET WPF application

Fri, 2024-08-30 05:30

Qt/.NET is a proposed toolkit for interoperability between C++ and .NET, including a Qt-based custom native host for managed assemblies, as well as a native-to-managed adapter module that provides higher-level interoperability services such as object life-cycle management, instance method invocation and event notification.

Categories: FLOSS Project Planets

Six Tips for Maximizing Desktop Screen Potential

Thu, 2024-08-29 02:30

Desktop software has many differences from mobile and embedded applications but one of the biggest and most obvious is the screen. How can you take advantage of all that real estate for your application? Here are six considerations for managing the screen in your desktop application.

  1. Choosing the right GUI framework

Use a flexible GUI framework that easily supports building apps with differing resolutions. The less hand-tweaking you need for your dialogs, graphical assets, and interface across a wide spectrum of resolutions, the better.

  1. Testing across diverse displays

Make sure you have a wide range of monitors to test your app against. It’s easy to assume everything works perfectly when your app is tested on a uniform configuration provided by IT. However, visual issues may arise when your app runs on smaller, larger, or different monitors.

  1. Setting clear resolution standards

Set a clear minimum resolution that supports your application’s features effectively. Ensure all dialogs fit on screen, scrollbars function properly, nothing is off-screen. Also, test against ultra-high-resolution monitors (like 4K and 8K) to ensure clarity and usability at high DPI settings. Verify that text is legible, controls are noticeable, and clickable regions are big enough to target accurately.

  1. Designing for adaptability

Ensure that your application’s user interface is not only scalable but also adaptable. It should reconfigure itself based on the resolution, maintaining a balance between functionality and aesthetics. Dialog boxes should be resizable, and layout managers should dynamically adjust component placement based on the available screen real estate.

  1. Embracing multi-monitor flexibility

Multi-monitor setups aren’t just for developers anymore. Many people use laptops along with a larger monitor. In fact, a two-screen configuration may be even more popular than single screens. Make sure your application handles this flexibility intelligently by allowing spawning windows or panels that can be moved to the monitor that best works for the user.

  1. Customizing the user workspace

With features such as dockable toolbars, multiple document interfaces, or floating inspectors, you can allow users to customize their workspace. This is particularly handy for apps like graphic design, audio/video editing, and software development, where distributing a wide variety of tools, dialogs, controls, and views across the entire screen real estate is essential.

Final thoughts

Designing and testing for multiple screen resolutions and configurations is part of making a great application. As screen technology evolves and user expectations rise, your applications’ ability to harness the full potential of ultra resolution and multi-monitor setups might just set it apart from the crowd. If you’re interested in more tips for building desktop applications, you may want to read our related best practice guide.

About KDAB

If you like this article and want to read similar material, consider subscribing via our RSS feed.

Subscribe to KDAB TV for similar informative short video content.

KDAB provides market leading software consulting and development services and training in Qt, C++ and 3D/OpenGL. Contact us.

The post Six Tips for Maximizing Desktop Screen Potential appeared first on KDAB.

Categories: FLOSS Project Planets

Asking for donations in Plasma

Wed, 2024-08-28 23:17

Why do we ask for donations so often? Because it’s important! As KDE becomes more successful and an increasing number of people use our software, our costs grow as well:

  • Web and server hosting
  • Organizing and hosting larger Akademy events
  • Funding more and larger sprints
  • Paying people to work on stuff the volunteer community doesn’t focus on, and retaining them over time

And so on. If we don’t raise more money while our software becomes more popular, we risk “dying of success,” so to speak. Remember, we give all this stuff away for free, no strings attached! Nobody has to pay a cent if they don’t want to or can’t afford to.

Accordingly, if you’re plugged into KDE social media, you probably see a lot of requests for donations. I end every one of my “This Week in KDE” posts with one, and many others do for their own blog posts as well. KDE’s official social media channels blast it out constantly, and we also do yearly fundraisers that are widely promoted online. If you’re reading this, you may get the impression that we’re always begging for cash!

But if you’re not plugged into these communications channels, you might not have ever seen a donation request at all. We know that the fraction of people who subscribe to these channels is small, so there’s a huge number of people who may not even know they can donate to KDE, let alone that donations are critically important to its continued existence.

Starting in Plasma 6.2, that changes, and I’d like to introduce what it will look like! From 6.2 onwards, Plasma itself will show a system notification asking for a donation once per year, in December:

The idea here is to get the message that KDE really does need your financial help in front of more eyeballs — especially eyeballs not currently looking at KDE’s public-facing promotion efforts.

Now, I know that messages like this can be controversial! The change was carefully considered, and we tried our best to minimize the annoying-ness factor: It’s small and unobtrusive, and no matter what you do with it (click any button, close it, etc) it’ll go away until next year. It’s implemented as a KDE Daemon (KDED) module, which allows users and distributors to permanently disable it if they like. You can also disable just the popup on System Settings’ Notifications page, accessible from the configure button in the notification’s header.

Ultimately the decision to do this came down to the following factors:

  1. We looked at FOSS peers like Thunderbird and Wikipedia which have similar things (and in Wikipedia’s case, the message is vastly more intrusive and naggy). In both cases, it didn’t drive everyone away and instead instead resulted in a massive increase in donations that the projects have been able to use to employ lots of people.
  2. KDE really needs something like this to help our finances grow sustainably in line with our userbase and adoption by vendors and distributors.

So now let me address what I anticipate will be some common concerns:

I think you’re wrong; people hate pop-ups and this is going to turn them off!

Like I said, peer organizations didn’t see that happen, and some were even more in-your-face about it. I do suspect a small but vocal crowd of people will spread doom and gloom about it on social media anyway, of course. This also happened when we implemented off-by-default telemetry — which by the way, was implemented so conservatively that it barely collects any information of value at all. It’s a cautionary tale about the danger of being too timid and ending up with the worst of both worlds.

The worst-case scenario is that we don’t get more donations from this after a couple of years, and end up removing it. That’s always an option. But I think it’s worth venturing out there and being a bit bold! With risk comes opportunity.

KDE shouldn’t need to pay people directly; employment should come from vendors and distributors shipping our software!

To a certain extent this already does happen: by far the largest contributor of paid work is Blue Systems — mostly funded by Valve Corporation, which ships KDE software on the Steam Deck. There are also trickles and spurts of sponsored work from distros, KDAB, and enterprising folks who get funded via grants.

Ultimately a healthy economic ecosystem around KDE includes people employed by many parties, including KDE itself, in my opinion. This is how KDE can help control its own destiny. And that costs money! Money that needs to come from somewhere.

Why does it have to be a notification pop-up? Put this in Welcome Center or something!

We had a request for donations in Welcome center for several years, and it didn’t make a difference, because right after you’ve installed the system wasn’t the right time to ask. At that point, you don’t know if you like Plasma yet, so asking for money is premature.

If KDE is as successful as Thunderbird and Wikipedia have been, what are you going to do with all that money?

This is a question the KDE e.V. board of directors as a whole would need to answer, and any decision on it will be made collectively.

But as one of the five members on that board, I can tell you my personal answer and the one that as your representative, I’d advocate for. It’s basically the platform I ran on two years ago: extend an offer of full-time employment to our current people, and hire even more! I want us to end up with paid QA people and distro developers, and even more software engineers. I want us to fund the creation of a next-generation KDE OS we can offer directly to institutions looking to switch to Linux, and a hardware certification program to go along with it. I want us to to extend our promotional activities and outreach to other major distros and vendors and pitch our software to them directly. I want to see Ubuntu, Red Hat Enterprise Linux, and SUSE Linux Enterprise Desktop ship Plasma by default. I want us to use this money to take over the world — with freedom, empowerment, and kindness.

These have been dreams for a long time, and throughout KDE we’ve been slowly moving towards them over the years. With a lot more money, we can turbocharge the pace! If that stuff sounds good, you can start with a donation today.

I know talking about money can be awkward. But failure to plan is planning to fail; money is something we can’t ignore and just hope things work out — and we don’t. Raising more money is a part of that plan, and this new yearly donation notification is a part of raising money. It’s my expectation and hope that asking our users for donations will result in more donations, and that we can use these to accelerate KDE’s reach and the quality of our software!

Categories: FLOSS Project Planets

Pages