Planet KDE

Subscribe to Planet KDE feed Planet KDE
Planet KDE | English
Updated: 2 hours 7 min ago

The Neon Powered Gears are Working on Plasma 6

Sat, 2024/02/24 - 6:57am

It’s high tension in Neon towers this week as the distro packagers have been given access to the source tars for Plasma 6 along with Frameworks 6 and KDE Gear 24.02. This means our cloud of build servers have been powered up to compile them into .deb packages which go into our Apt archive. In principle we already have the packaging working in Unstable and Testing edition so it should be a case of just doing a fresh build in User edition but it involves several hundred source builds all done for the three editions and for libraries and plugins (such as KIO Workers) many of them twice over, once for Qt 6 and once for Qt 5 builds. So lots of bits which need aligned. Frameworks completed yesterday morning and this morning it looks like all of Plasma is built. The KDE Gear apps are churning away now. We’ll then need to tests it all including many configurations of upgrade to make sure it doesn’t break your laptops. The releases are due on Wednesday and with any luck we will have Neon builds available very shortly after, but of course we’ll wait until it’s ready if that’s what we have to do. It’ll be just a normal upgrade available to Discover but of course with a large number of packages to download. Who’s excited?

cursor-shape-v1 in Chromium and Electron

Fri, 2024/02/23 - 11:17pm

Just in time for KDE Plasma 6, Chromium 122 and Electron 29 have been released! They contain my patch that adds support for Wayland’s new cursor-shape-v1 extension protocol. When running natively in a Plasma 6 Wayland session, up-to-date Chromium-based browsers and Electron apps should now always use the correct mouse cursor theme and have the...

The post cursor-shape-v1 in Chromium and Electron first appeared on Ilya's Blog.

Software Heritage Symposium and FOSDEM 2024

Fri, 2024/02/23 - 3:33pm
SWH Community Day I have mix feelings about Paris. In general, I go there to work, so for different reasons, I never managed to enjoy the city. This time has been no different, or almost. I went to Paris to attend to the Software Heritage Community Day on Jan 31st and the Symposium the following … Continue reading Software Heritage Symposium and FOSDEM 2024

Want to visit Gothenburg

Fri, 2024/02/23 - 1:32pm

It’s time for another foss-north again and the Call for Papers is open (as is the Call for Sponsors, hint, hint, nudge, nudge). Make sure to save the dates (April 15-16), get yourself a ticket, and submit your talk!

Happy weekend!

Kubuntu: Week 3 wrap up, Contest! KDE snaps, Debian uploads.

Fri, 2024/02/23 - 11:42am
Witch Wells AZ SunsetWitch Wells AZ Sunset

It has been a very busy 3 weeks here in Kubuntu!

Kubuntu 22.04.4 LTS has been released and can be downloaded from here: https://kubuntu.org/getkubuntu/

Work done for the upcoming 24.04 LTS release:

  • Frameworks 5.115 is in proposed waiting for the Qt transition to complete.
  • Debian merges for Plasma 5.27.10 are done, and I have confirmed there will be another bugfix release on March 6th.
  • Applications 23.08.5 is being worked on right now.
  • Added support for riscv64 hardware.
  • Bug triaging and several fixes!
  • I am working on Kubuntu branded Plasma-Welcome, Orca support and much more!
  • Aaron and the Kfocus team has been doing some amazing work getting Calamares perfected for release! Thank you!
  • Rick has been working hard on revamping kubuntu.org, stay tuned! Thank you!
  • I have added several more apparmor profiles for packages affected by https://bugs.launchpad.net/ubuntu/+source/kgeotag/+bug/2046844
  • I have aligned our meta package to adhere to https://community.kde.org/Distributions/Packaging_Recommendations and will continue to apply the rest of the fixes suggested there. Thanks for the tip Nate!

We have a branding contest! Please do enter, there are some exciting prizes https://kubuntu.org/news/kubuntu-graphic-design-contest/

Debian:

I have uploaded to NEW the following packages:

  • kde-inotify-survey
  • plank-player
  • aura-browser

I am currently working on:

  • alligator
  • xwaylandvideobridge

KDE Snaps:

KDE applications 23.08.5 have been uploaded to Candidate channel, testing help welcome. https://snapcraft.io/search?q=KDE I have also working on bug fixes, time allowing.

My continued employment depends on you, please consider a donation! https://kubuntu.org/donate/

Thank you for stopping by!

~Scarlett

MOTIS support in KPublicTransport

Fri, 2024/02/23 - 7:00am

Two weeks ago I showed a screenshot of initial support for the MOTIS routing engine in KTrip in my FOSDEM 2024 report. Driven by the Transitous work this is meanwhile nearing completion and will ship with the 24.05 release.

Adding new KPublicTransport backends

KDE’s apps consuming public transport data such as KTrip or Itinerary are built on top of the KPublicTransport library, which abstracts various different protocols and services providing that data.

As questions about adding new backends have been coming up recently, I tried to improve documentation, developer convenience and common infrastructure while adding the MOTIS support:

  • KPublicTransport::AbstractBackend now has more documentation especially about the not so obvious aspects like paging support.
  • Backend configuration files can now also be loaded from $XDG_DATA_DIRS/org.kde.kpublictransport/networks rather than just from the compiled-in QRC data. By symlinking the corresponding source directory you can therefore see the effect of modifications without recompiling. This also allows having configurations for e.g. the public MOTIS demo instance or a local one in the repository without those being visible to users.
  • Improved the built-in infrastructure for paging through arrival query results, to the point where this now also works for subsequent arrivals with backends not having any native paging support.
MOTIS support

When it comes to MOTIS support, almost every feature of MOTIS’ API that is modelled in KPublicTransport has been implemented:

  • Station queries by name or coordinate.
  • Arrival and departure queries for a given station, including paging in all combinations.
  • Journey searches between a specific station and/or a coordinate, with paging support.
  • When search to/from a coordinate, intermodal routing is used, supporting the following options:
    • Walking
    • Biking
    • Taking a car
    • Taking a car to an available parking space and then walking to the station
Screenshot of KTrip showing a multi-train journey through Switzerland with individual stops being slightly behind schedule. KTrip showing a journey with realtime delay information, data provided by MOTIS.

A few things still remain to be done:

  • Intermodal routing using shared scooters/bikes etc.
  • Retrieving routing paths for intermodal journey sections.

And there’s a few more very interesting features in MOTIS that we’d like to support eventually but that are currently not yet represented in the KPublicTransport API:

  • “ontrip” journey queries, that is starting not at a fixed location but on a train or bus already, finding the best route to a destination given the current realtime situation (which can change along the way).
  • Retrieving the realtime status of parking spaces. While in Germany that is always synonymous with car parking, the excellent bike parking infrastructure in the Netherlands in some places apparently also has API for the amount of currently available parking spots.
  • Support for routing profiles for walking sections. That is things like walking speed or your willingness or ability to deal with steps/stairs, steep elevation, etc.
MOTIS improvements

One thing that made the work on the MOTIS support somewhat unique is that this is the first KPublicTransport backend for which I had a fully functional local server setup, and one where I could debug and modify things even.

This allowed identifying a nasty API issues and subsequently getting that fixed, fixing a bug in location queries and even adding a missing feature. Ie. finally working the way we are used to in the Free Software world.

The wishlist for MOTIS has been growing over the past weeks as well, so there’s more to do here. MOTIS has a very strong focus on the routing algorithms, and their performance and optimality guarantees (ie. the hard part), but only exposes the bare minimum of information not relevant for routing in its API. From a client and UX perspective we’d like to get all details that could possible be important for users from the GTFS or GBFS source data though.

According to MOTIS’ Github stats two out of its top 10 contributors are meanwhile from KDE, so we’ll probably get all that eventually :)

Outlook

All of this work is motivated by the ongoing effort to set up a MOTIS instance for a free and open public transport routing service, which is continuing at a rapid pace. If that succeeds we’d be able to bring public transport routing coverage also to some areas where our apps are currently useless.

As I’m writing this I’m on the way to the upcoming OSM Hack Weekend in Karlsruhe, where I hope to discuss some of the challenges we encountered with scaling up the OSM-based first/last mile routing in MOTIS. More on that hopefully next week then.

Kirigami Addons 1.0

Thu, 2024/02/22 - 10:00am

A new version of Kirigami Addons is out! Kirigami Addons is a collection of helpful components for your QML and Kirigami applications. With the 1.0 release, we are now supporting Qt6 and KF6 and added a bunch of new components and fixed various accessibility issues.

FormCard

We added a bunch of new FormCard delegates:

  • FormPasswordFieldDelegate: A password field
  • FormDataTimeDelegate: A date and/or time delegate with integrated date and time picker which use the native picker of the platform if available (currently only on Android).

Form card example Form card example

The existing delegates also recevied various accessibility issues when used with a screen reader.

Finally we droped the compatibility alias MobileForm.

BottomDrawer

Mathis added a new Drawer component that can be used a context menu or to display some information on mobile.

Bottom Drawer in Itinerary showing the information about a station on the map Bottom Drawer in Itinerary showing the information about a station on the map

FloatingButton and DoubleFloatingButton

These two components received significant sizing and consistency improvements which should improve their touch area on mobile.

Packager section

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

Oxygen Icons 6 Released

Wed, 2024/02/21 - 10:20am

Oxygen Icons is an icon theme for use with any XDG compliant app and desktop.

It is part of KDE Frameworks 6 but is now released independently to save on resources.

This 6.0.0 release requires to be built with extra-cmake-modules from KF 6 which is not yet released, distros may want to wait until next week before building it.

Distros which ship this version can drop the version released as part of KDE Frameworks 5.

sha256: 28ec182875dcc15d9278f45ced11026aa392476f1f454871b9e2c837008e5774

URL: https://download.kde.org/stable/oxygen-icons/

Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell <[email protected]>
https://jriddell.org/esk-riddell.gpg

KDSOAP WS-Discovery Client 0.4.0

Wed, 2024/02/21 - 9:44am

This project is creating a WS-Discovery client library based on the KDSoap library.

The name is short for Klarälvdalens Datakonsult AB Simple Object Access Protocol Web Services Addressing Discovery Client.

It is used by the SMB KIO worker from kio-extras.

kio-extras will have two releases as part of KDE’s 6th Megarelease, one for Qt 5 and one for Qt 6. Distros should build and ship both versions of kio-extras but the Qt5 build should use the internal static copy of kdsoap-ws-discovery-client so does not need to be built separately. The Qt 6 build of kio-extras does need this external build of kdsoap-ws-discovery-client. Distros will need an up to date copy of KDSoap library.

There are no changes compared to 0.3.0 but this one is released as stable ahead of KDE Gear 24.02.

SHA 256: 2cd247c013e75f410659bac372aff93d22d71c5a54c059e137b9444af8b3427a
URL: https://download.kde.org/stable/kdsoap-ws-discovery-client/
Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell <[email protected]>
https://jriddell.org/esk-riddell.gpg

Plasma 6 and Beyond!

Wed, 2024/02/21 - 12:00am
Plasma Mobile joins the Plasma 6 megarelease with a new shell and apps

The Plasma Mobile team is happy to announce the release of Plasma 6 for mobile devices!

It has been a long year of development and porting since our last major release of the shell, as well as mobile applications. This post will outline many of the highlights!

Housekeeping

The website was refreshed in anticipation for this release. Notably, the installation page was enhanced to better outline information about the various distributions that provide Plasma Mobile.

During the Plasma 6 development period, postmarketOS graciously provided us with a "nightly" repository of KDE packages tracking git repositories. We have found this critically useful for development. You can find instructions on how to use this repository here.

Plasma

Devin wrote a blog post covering some technical details covering the big aspect of the work porting all of the shell components to Qt and Plasma 6 APIs. A lot of functional work was done as well.

Homescreen

With Plasma 6, we are once again switching back to the Folio homescreen as default. The homescreen will once again have customizable pages to place apps and widgets, as well as an app drawer and search. Devin spent time rewriting it from scratch, addressing the limitations that existed in Plasma 5, in particular the customizations are now tied to each page, no longer causing reordering issues from screen rotations.

Notable Features:

  • Customizable pages to place apps and widgets
  • Folders
  • Drag and drop customization
  • Widgets (still some known issues, see below)
  • App drawer (swipe up)
  • KRunner search (swipe down)
  • Row-column flipping for screen rotations
  • Customizable row and column counts
  • Customizable page transitions
  • Import and exporting of homescreen layouts as files
  • and more!
Light Home
Light Dark
Options
Settings
Widgets
Widgets edit
Interoperability

In Plasma 5, Plasma Mobile required several config files to be installed on the system in order to set some settings needed in Plasma. For Plasma 6, Devin created a new settings service that automatically handles this situation. This allows for interoperability with Plasma Desktop being simultaneously installed on the system, and eliminates the need to install custom configuration.

First time setup

Devin added an initial setup window that guides users to configure some basic aspects of the system, such as Wi-Fi and cellular settings.

Landing
Pre-install
Time
Wi-Fi
Cellular
Finish
Gif
Authentication dialog

Devin worked on porting the authentication dialog so that it has a mobile form factor.

Dark Mode
Light mode
Expanded info
Docked mode

Devin worked on adding a "docked mode" quicksetting which, when activated, enables window decorations and minimize/maximize/close buttons, and also stops enforcing application windows to be in fullscreen.

Qt app before docked mode
GTK app before docked mode
Docked mode quick setting
Docked mode quick setting on
GTK app in docked mode
Qt app in docked mode
Navigation panel

Devin added a setting to always show the keyboard toggle button. He also made it so that if there is enough screen space, the panel goes on the bottom for tablets rather than on the side.

Keyboard button off
Keyboard button on
Task switcher

The task switcher was moved from the Plasma shell and into KWin to improve code maintainability.

Vibrations

In Plasma 5, the default vibration speed was hardcoded to the PinePhone's motor, which could not register lower vibration durations. This resulted in other devices having overly strong vibration effects. Vibrations now default to an acceptable level for other devices, and can still be configured in the shell settings module.

Flashlight

The flashlight quicksetting in Plasma 5 is hardcoded to the PinePhone. Florian worked on making it so that it now works with all phones in Plasma 6!

Settings

Devin improved the cellular settings module so that interaction tasks are asynchronous and do not freeze the UI. He also fixed unnecessary password prompts from being shown when the module is first opened.

Devin ported the Wi-Fi settings module to mobile form components, making it consistent with other modules. He overhauled the time settings module to newer components as well, making setting the time and date more intuitive. He also did some work to ensure the UI does not freeze when applying settings.

Joshua refactored the look and feel of the Push Notifications KCM and added UnifiedPush support to NeoChat so you'll never miss a message, even when NeoChat is closed (that is, if you want to get notifications, of course!)

Mathis created a new icon for the application.

Cellular Dark
Cellular Light
Date Dark
Dark Light
Time Dark
Time Light
Wi-Fi Dark
Wi-Fi Light
Known Issues

Regrettably, our team resources are limited, and so we still have several outstanding issues that were not addressed in time for this release:

  • Scrolling in Qt6 with a touchscreen has very low inertia compared to Qt5 and we cannot change the platform default, see this, reported in upstream to Qt here
  • Some homescreen widgets open popups every time they are moved around
  • Limited widget selection. Currently we just have existing widgets from the Plasma Desktop
  • The screen recording quicksetting was removed for the time being. It needs further investigation on porting it to new APIs
  • Gesture-only mode was removed for the time being. We need to investigate making KWin's gesture infrastructure fit our needs
  • Sometimes application windows extend under the navigation bar. We need to investigate this regression with KWin
  • The task switcher is slow on the PinePhone in particular. We need to investigate the performance of the KWin effect

There are other issues also being tracked in our issue tracker.

Applications

A tremendous amount of work went into the massive effort behind porting all of our applications to Qt6 and KF6. We would like to extend a big thank you to everyone involved!

Many major announcements for applications are in the Megarelease post, so be sure to check there too!

Photos (Koko)

While the application is still called Koko, user-facing text now calls it "Photos" to make it easier for you to find. (Devin Lin, KDE Gear 24.02, Link)

A new icon was created for the application, replacing the gorilla (Mathis Brüchert & Devin Lin, KDE Gear 24.02, Link)

Clock

The Clock app now pauses MPRIS media sources when an alarm or timer starts ringing and resumes (previously paused) sources once the alarm is dismissed (Luis Büchi, KDE Gear 24.02, Link)

Clock
Alarms
Clock Dark
Alarms Dark
Calculator

A new configuration page was added to the calculator app, allowing to set decimal places, angle units and a parsing mode (Michael Lang, KDE Gear 24.02, Link)

We improved the history view to allow for the removal of entries, and the drawer-style area for extra functions got replaced with a swipe view (Michael Lang, KDE Gear 24.02, Link 1, Link 2)

A number of new features and QoL improvements were added, including automatic font resizing when entering long expressions, better rendering of exponents, and more actual calculation features: random number, base n root/log, differential functions, standard deviations, and a lot more... Oh! and we switched math the engine to libqalculate! (Michael Lang, KDE Gear 24.02, Link 1, Link 2, Link 3, Link 4)

Calculator
History page
Settings
Kasts

Apart from some minor visual changes related to the Qt6 and KF6 update and several fixes regarding images and playback controls, Kasts will now update podcasts dramatically faster by not parsing RSS feeds that haven't changed (Bart De Vries, KDE Gear 24.02 Link 1)

The color theme (e.g. Breeze light, Breeze dark) can now be selected manually (Bart De Vries, KDE Gear 24.02 Link 2)

Network checks for metered connections can now be disabled altogether. This can be useful on systems that are not able to reliably report the connection status (Bart De Vries, KDE Gear 24.02 Link 3)

Kasts Queue
Kasts Color Theme Settings
Contributing

Do you want to help with the development of Plasma Mobile? We are a group of volunteers doing this in our free time, and are desperately looking for new contributors, beginners are always welcome!

See our community page to get in touch!

We are always happy to get more helping hands, no matter what you want to do, but we especially need support in these areas:

  • Telephony

  • Camera support

  • You can also check out our Plasma Mobile issue tracker for more details.

Even if you do not have a compatible phone or tablet, you can also help us out with application development, as you can easily do that from a desktop!

Of course, you can also help with other things besides coding! For example, take Plasma Mobile for a spin to help us test bugs and triage reports! Check out the device support for each distribution and find the version which will work on your phone.

Another option would be to help us in making these blog posts more regular again. We really don't want another 6 months of silence, but writing these take a surprising amount of time and effort.

If you have any further questions, view our documentation, and consider joining our Matrix channel. Let us know what you would like to work on or where you need support to get going!

Our issue tracker documentation also gives information on how and where to report issues.

On a final note...

We would like to thank all of the contributors across KDE that have made this megarelease possible! We could not have done it without you. Thank you!

Introducing Support For KdeEcoTest On Windows

Wed, 2024/02/21 - 12:00am

KdeEcoTest is an emulation tool aimed at emulating user activity when measuring the energy consumption of an application. You can read more about work on KdeEcoTest at this SoK23 and this SoK24 blog post. Check out the KDE Eco handbook for more details about measuring software's energy consumption.

KDE Eco logo. Figure : KDE Eco logo.

One of the main goals of the KDE Eco project for Season of KDE 2024 is to extend KdeEcoTest so it can run on both Windows and GNU/Linux (X11 & Wayland). This enables energy consumption measurements of a single application across different platforms, such as Okular in X11 vs. Wayland vs. Windows.

This also makes it possible to compare Okular with a proprietary application like Adobe Acrobat. Comparisons with proprietary software are possible because KdeEcoTest can create usage scenario scripts without requiring access to the source code of the software being tested!

I have taken the task of extending support for Windows.

Getting Started: Platform Abstraction Layer

The primary function of KdeEcoTest is to emulate user behavior. Why do we need an abstraction layer for this?

  1. Think about simulating keyboard shortcuts. We'll need to change many parts of the code. But if we have an abstraction layer, we can add new features easily. Just add a function to the right module.
  2. Currently, we have 3 modules for 3 different platforms, namely, Wayland, X11, and Windows. If a fourth platform needs to be added, one can simply extend the base handler class and implement the abstract functions.
  3. This abstraction layer ensures that the same script can be used for testing across several different platforms.

During the first two weeks of SoK'24, Athul Raj K and I worked on understanding the code base and creating the abstraction layer. The layer provides two interfaces to access the underlying methods for taking window or input actions, a WindowHandler and an InputHandler (which have platform specific implementations).

//gcompris.net">GCompris</a> prepared with KdeEcoTest. Figure : Running a Standard Usage Scenario script on the Windows Platform for GCompris prepared with KdeEcoTest.
Initial Task: pywin32 For Windows Management

pywin32 is a python module that provides access to many of the Windows APIs. This is used to perform window management actions for the Windows platform. Special thanks to Emmanuel for pointing out this wonderful module which has made it very convenient to extend KdeEcoTest support to Windows.

Win32 is an application programming interface (API) developed by Microsoft. It is dedicated to 32-bit Windows operating systems. Using this API, developers benefit from a set of functions for creating Windows applications using programming languages such as C, C++, and Visual Basic. They are able to control and manipulate various aspects of the Windows operating system. ctypes is a Python library for calling functions from shared libraries (DLLs) with a syntax similar to C. Pywin32 uses ctypes to use win32 functions.

During the first week, I explored the module to find the required functions and tested them out on a Windows machine. In the third week of Sok'24, I integrated the functions in the KdeEcoTest codebase. Now, the same test scripts that were used to test on X11 also run on Windows! The WindowActionHandler of win32 module under core/Handlers/win32.py handles the window management functions for Windows platforms.

class WindowActionHandler(BaseWindowActionHandler): @classmethod def GetHandler(cls): return cls() @staticmethod def GetActiveWindow(): # returns the handle of the currently active window win_id = win32gui.GetForegroundWindow() return win_id @staticmethod def GetwindowLocation(win_id): # returns active window loaction -> {"x": start_x, "y":start_y} start_x, start_y, end_x, end_y = win32gui.GetWindowRect(win_id) location = namedtuple("location", ["x", "y"]) return location(start_x, start_y) @staticmethod def GetWindowGeometry(win_id): # returns active window geometry -> {"width": width, "height": height} start_x, start_y, end_x, end_y = win32gui.GetWindowRect(win_id) width = end_x - start_x height = end_y - start_y geometry = namedtuple("geometry", ["width", "height"]) # return {"width": width, "height": height} return geometry(width, height) @staticmethod def SelectWindow(): # returns the window handle of the window selected by user x, y = win32gui.GetCursorPos() win_id = win32gui.WindowFromPoint((x, y)) return win_id @staticmethod def WindowMove(win_id,win_posx:int, win_posy:int): # relocates active window to specified loaction current_size = WindowActionHandler.GetWindowGeometry(win_id) win32gui.SetWindowPos(win_id, win32con.HWND_TOP, win_posx, win_posy, current_size.width, current_size.height, win32con.SWP_SHOWWINDOW) @staticmethod def ResizeWindow(win_id,n_height:int,n_width:int): # resizes active window to specified dimensions current_position = WindowActionHandler.GetwindowLocation(win_id) win32gui.SetWindowPos(win_id, win32con.HWND_TOP, current_position.x, current_position.y, n_width, n_height, win32con.SWP_SHOWWINDOW) @staticmethod def WindowFocus(win_id): # brings the window to top(focus) win32gui.SetActiveWindow(win_id) win32gui.SetForegroundWindow(win_id)
A Minor Setback: Adding Support For Input Actions

pywin32 also provides support for simulating mouse actions such as left clicks as well as keyboard key presses. However, I am not yet able to create a proper listener for input actions of the user. The module does not provide a default listener, although it does provide a function win32api.GetAsyncKeyState() which can be used as a listener inside an infinite loop. Running an infinite while-loop results in unnecessary resource utilization of processor and main memory, which slows down the tool and affects the results of the test cases.

For these reasons, pynput has been chosen instead, which works across all the targeted platforms.

The class InputActionHandler bundles all the pynput handlers required for emulating the user input activities

class InputActionHandler(BaseInputActionHandler): @classmethod def GetHandler(cls): return cls() def __init__(self) -> None: super().__init__() self.mouse = mouse.Controller() self.mouse_listener = mouse.Listener self.mouse_buttons = mouse.Button self.keyboard = keyboard.Controller() self.keyboard_listener = keyboard.Listener self.keyboard_keys = keyboard.Key
Looking Forward

Currently, I am working on testing the accuracy of mouse pointers using the 9 point calibration testing. This can also be used to check window size inaccuracy caused by window decorations such as the title bar on Windows.

I also plan to replace pynput with pywin32 if I can find or develop a proper listener for user actions.

I would like to thank the project mentors Emmanuel Charrau and Joseph P. De Veaugh-Geiss for their amazing support and guidance. Also, I am thankful to Athul Raj K, my fellow contributor in SoK'24, for his support and collaboration during this Season of KDE.

Release GCompris 4.0

Tue, 2024/02/20 - 11:00pm
gcompris 4.0

Today we are releasing GCompris version 4.0.

This version adds translations for 3 more languages: Bulgarian, Galician and Swahili.

It contains 190 activities, including 8 new ones:

  • "Grammar classes" is an activity to learn to identify words grammatical classes, one class at a time.
  • "Grammar analysis" is similar to the previous one, but with several classes requested for each sentence.
  • "Calcudoku" is an arithmetic game where the goal is to fill a grid with numbers according to specific rules.
  • With "Guess 24", using the 4 given numbers and the operators, find the number 24!
  • In "Frieze", reproduce and complete the different friezes.
  • "Read a graduated line" is an activity where you need to find a value represented on a graduated line.
  • In "Use a graduated line", place the given value on the graduated line.
  • In "Adjacent numbers", learn which numbers come before or after the given sequence.

It contains bug fixes and graphics improvements on multiple activities.

One major milestone has been reached with this version: after almost 9 years of work, the task of reworking all the graphics to fit the guidelines has been completed!

It is fully translated in the following languages:

  • Arabic
  • Bulgarian
  • Breton
  • Catalan
  • Catalan (Valencian)
  • Greek
  • Spanish
  • Basque
  • French
  • Galician
  • Croatian
  • Hungarian
  • Italian
  • Lithuanian
  • Malayalam
  • Dutch
  • Polish
  • Brazilian Portuguese
  • Romanian
  • Slovenian
  • Turkish
  • Ukrainian

It is also partially translated in the following languages:

  • Azerbaijani (97%)
  • Belarusian (86%)
  • Czech (94%)
  • German (95%)
  • UK English (95%)
  • Esperanto (99%)
  • Estonian (95%)
  • Finnish (94%)
  • Hebrew (95%)
  • Indonesian (95%)
  • Macedonian (90%)
  • Norwegian Nynorsk (95%)
  • Portuguese (95%)
  • Russian (95%)
  • Slovak (83%)
  • Albanian (99%)
  • Swedish (95%)
  • Swahili (99%)
  • Chinese Traditional (95%)

You can find packages of this new version for GNU/Linux, Windows, Android, Raspberry Pi and macOS on the download page. This update will also be available soon in the Android Play store, the F-Droid repository and the Windows store.

Thank you all,
Timothée & Johnny

Kubuntu Graphic Design Contest

Tue, 2024/02/20 - 9:21pm
Announcing the Kubuntu Graphic Design Contest: Shape the Future of Kubuntu

We’re thrilled to unveil an extraordinary opportunity for creatives and enthusiasts within and beyond the Kubuntu community

The Kubuntu Graphic Design Contest.

This competition invites talented designers to play a pivotal role in shaping the next generation of the Kubuntu brand. It’s your chance to leave a lasting mark on one of the most beloved Linux distributions in the world.

What We’re Looking For:

The contest centers on reimagining and modernizing the Kubuntu brand, including the logo, colour palette, fonts, and the default desktop environment for the upcoming Kubuntu 24.04 release. We’re seeking innovative designs that reflect the essence of Kubuntu while resonating with both current users and newcomers.

Guidelines:

Inspiration: Contestants are encouraged to review the current brand and styles of kubuntu.org, kde.org, and ubuntu.com to understand the foundational elements of our visual identity.

Creativity and Modernity: Your submission should propose a fresh, modern look and feel for the Kubuntu brand and its supporting marketing materials. Think outside the box to create something truly unique.

Cohesion: While innovation is key, entries should maintain a cohesive relationship with the broader KDE and Ubuntu ecosystems, ensuring a seamless user experience across platforms.

How to Participate:

The contest is open now! We welcome designers from all backgrounds to contribute their vision for Kubuntu’s future.

Multiple entries are allowed, giving you ample opportunity to showcase your creativity.

Submission Deadline: All entries must be submitted by 23:59 on Sunday, 31st March.

Prizes:

Winner will have the honour of seeing their design become the face of Kubuntu 24.04, receiving recognition across our platforms and within the global open-source community.

First Prize:

  • Global recognition of your design as the new face of Kubuntu.
  • A trophy and certificate.
  • A Kubuntu LTS optimized and validated computer: the Kubuntu Focus Ir14 Laptop or the Kubuntu Focus NX MiniPC with 32 GB of RAM – over a $1,000 value.
  • Kubuntu Focus branded merchandise up to $50 USD shipped.

Second Prize:

  • Your runner up entry featured on kubuntu.org.
  • A trophy and certificate.
  • Kubuntu Focus branded merchandise up to $50 USD shipped.

Third Prize:

Join the Contest:

This is more than a competition; it’s a chance to contribute to a project that powers the computers of millions around the world. Whether you’re a seasoned designer or a passionate amateur, we invite you to bring your vision to life and help define the future of Kubuntu.

For more details on how to submit your designs and contest rules, visit our contest page.

Let’s create something extraordinary together. Your design could be the next symbol of Kubuntu’s innovation and community spirit.

Apply now: Contest Page

Making way for Wayland in KdeEcoTest

Tue, 2024/02/20 - 12:00am
KdeEcoTest

KdeEcoTest is an automation and testing tool which allows one to record and simulate user interactions with a Graphical User Interface. It is being developed as part of the FOSS Energy Efficiency Project to create usage scenario scripts for measuring the energy consumption of software in the KDE Eco initiative. Emmanuel Charruau is the original developer and lead maintainer of the project. In Season of KDE 2023 the tool was further improved by Mohamed Ibrahim under the tutelage of Karanjot Singh and Emmanuel Charruau.

One of the main goals in Season of KDE 2024 is to make the KdeEcoTest cross-platform so it can run on Windows and Linux systems (both Wayland and X11). Another necessary change in KdeEcoTest is to completely remove the use of libX11 and xdotool from the code base, which had issues with pixel coordinates while testing.

A benefit of a tool such as KdeEcoTest is that it is possible to create usage scenario scripts without having access to the source code of the software being tested. This is in contrast to a tool such as Selenium-AT-SPI, which requires access to the application's sources (QML file).

See how Selenium-AT-SPI helps with the KDE Eco project (Selenium-AT-SPI KDE Eco).

Getting Started: Platform Abstraction Layer

For the tool to be cross platform, it requires a platform abstraction layer, which is what Amartya Chakraborty and I, the SoK24 team, set out to write first. Any action, either simulated or read by the KdeEcoTest tool, can be separated into Window-based and Input device-based. The design goal is therefore to provide platform-independent interfaces for performing these actions.

We finished work on the abstraction layer and integrated it into the current code base with some minor changes. The layer provides two interfaces, a WindowHandler and an InputHandler (which have a platform-specific implementation), in order to access the underlying methods for taking window or input actions.

The team's next task was to implement these platform-specific classes. For the SoK24 project, Windows-specific classes were tasked to Amartya Chakraborty, while I set out to implement support for Wayland.

Adding Wayland Support: KDE's kdotool

From initial conversations between me, Emmanuel, and other members of the KdeEcoTest channel, we decided on using ydotool, a program written in C that simulates input devices with uinput. This enables the simulation of input devices on Wayland as well.

But ydotool was not enough as it did not support manipulating windows like xdotool did and we still required listening to input devices. For Window-based actions it requires communication with the underlying display server or compositor (in Wayland world), and Wayland currently did not have such a protocol. So we went back to the drawing board and tried different methods, even running the application as an X Client on Xwayland, which indeed worked but could hardly be called a solution to supporting Wayland.

//spdx.org/licenses/MIT.html">MIT</a> license.) Figure : Running as X client on Wayland using Xwayland. (Image from Wayland docs published under an MIT license.)

We thought that currently there did not exist any solution for Wayland, but we were wrong. It turns out that KWin, the KDE Plasma compositor for Wayland and X11, already had one! One fine day Emmanuel posted a message on the KDE Dev channel, and voilà we got our solution from a KDE developer in the form of a Rust tool, kdotool. The tool uses KWin’s dbus interface to upload a JavaScript file and access methods and properties provided by the KWin scripting API. Just love you, KDE!

Emmanuel brought kdotool’s author ‘genericity’ on board and we set sail. With some minor tweaks and upgrades we integrated kdotool into KdeEcoTest and we now have all window-related functionalities set up and working on X11 and Wayland. (Oh … and by the way that’s when I found out you can’t have gitsubmodules on invent.kde.org). The use of the KWin specific APIs means that KdeEcoTest will currently only work on KDE Plasma.

Special mention to ‘genericity’ for developing this great tool.

Adding Input Actions

With all window-related actions in, it was time to add support for input actions. I was testing this out with ydotool, but later dropped it and decided to directly access uinput. Reading through Linux kernel documentation, I found it's rather better to use the evdev interface, which also allows one to create and simulate devices and also to read inputs from existing ones.

evdev is the generic input event interface. It passes the events generated in the kernel straight to the program, with timestamps. The event codes are the same on all architectures and are hardware independent. The layout of the input event -

struct input_event { struct timeval time; unsigned short type; unsigned short code; unsigned int value; };

time is the timestamp, it returns the time at which the event happened. Type is for example EV_REL for relative movement, EV_KEY for a keypress or release. code is event code, for example REL_X or KEY_BACKSPACE. value is the value the event carries. Either a relative change for EV_REL, absolute new value for EV_ABS (joysticks ...), or 0 for EV_KEY for release, 1 for keypress and 2 for autorepeat.

You can find more details about the input event codes here, https://docs.kernel.org/input/event-codes.html.

libevdev sits below the process that handles input events, in between the kernel and that process. The stack would look like this:

  • Kernel → libevdev → libinput → Wayland compositor → Wayland client

And for X11 using libinput:

  • Kernel → libevdev → libinput → xf86-input-libinput → X server → X client

With the python-evdev binding for libevdev one could directly access evdev devices, but there is a catch: the script needs to be run as root, or the user needs permissions to read and write from /dev/input and /dev/uinput (and also /dev/console to run dumpkeys to get the keyboard drivers translation table). Considering the challenges, this was something we could live with.

My first plan was to directly use evdev to simulate and listen to input devices, but digging into it some more I found out that pynput had a uinput backend that, it turns out, was not fully implemented (it was partially implemented for keyboard). pynput is a cross-platform Python library that allows one to control and monitor input devices. Since pynput was already being used in KdeEcoTest and it supported all other systems (except Wayland), implementing a backend that uses libevdev would allow for using pynput and its already implemented methods and classes directly.

I finished writing a backend for pynput which allowed me to simulate and listen for mouse and keyboard events on Wayland. But there is one more problem with directly using libevdev. Input events generated from libevdev are passed to libinput before reaching the compositor.

//spdx.org/licenses/MIT.html">MIT</a> license.) Figure : libinput (Image from Wayland docs published under an MIT license.)

libinput processes these inputs and provides easy-to-use APIs to handle them. It also provides configurable interfaces, which means that inputs we simulate using uinput may not be interpreted the same way by the compositor. For, e.g. the delta values in EV_REL type events (Event type for relative movement) generated by evdev devices such as a mouse are converted into relative movement on screen using a function called pointer accelaration in libinput. This function depends on the pointer acceleration profiles configured by the user depending on the compositor. There are namely two: "adaptive and flat". We skip further low level details about this here, and just add that switching to "flat" profile provides 1:1 movement between the device and the pointer on-screen. This also means that the mouse acceleration profile needs to be set to flat when running KdeEcoTest.

Now all that was required was to alias InputHandler class's attributes to pynput classes. This may be improved in the future when individual level implementation is required.

With both now implemented and integrated, KdeEcoTest supports running on Wayland, and also with the contribution from Amartya Chakraborty it runs on Windows as well.

Finished Platform Abstraction layer

The platform abstraction layer in current form sets the required backend for pynput, imports the necessary backend and exposes the required interfaces WindowHandler and InputHandler. When running on KDE Plasma, since we require kdotool, it additionally adds kdotool to the path.

import platform as _platform import os from pathlib import Path import importlib def set_handlers(package): module = None if _platform.system() == 'Windows': module = '.win32' os.environ['PYNPUT_BACKEND']='win32' elif _platform.system() == 'Linux': if os.environ.get('XDG_SESSION_DESKTOP',None) == 'KDE': module = '.kwin' os.environ['PYNPUT_BACKEND']='uinput' #add kdotool to path KDOTOOL_PATH = os.path.join(Path(os.path.dirname(__file__)).parent,'bin/kdotool/release') os.environ['PATH'] = KDOTOOL_PATH + ':' + os.environ['PATH'] elif os.environ.get('XDG_SESSION_TYPE',None) == 'X11': print('Platform Not Supported') exit() try: return importlib.import_module(module,package) except ImportError: raise ImportError('Platform not supported') backend = set_handlers(__name__) WindowHandler = backend.WindowActionHandler InputHandler = backend.InputActionHandler del backend __all__ = [ WindowHandler, InputHandler ]
Looking Forward

The listener for mouse events in pynput's uinput backend currently does not listen for touchpad events, because the event codes generated made it confusing to implement one. I think a better approach would be to use libinput for listening for events, as this would provide abstraction and also make it easier to write code for handling events, but libinput currently lacks a python binding.

Interested?

Of course it is far from complete. KdeEcoTest is still very much a work in progress and we're happy to have more developers looking to contribute. Hop on to the KdeEco and KdeEcoTest matrix channels to join the developers and follow the tool's development.

See https://invent.kde.org/teams/eco/feep for the FEEP repository, which hosts the KdeEcoTest tool among others.

Thank you to Emmanuel, 'genericity', Amartya, Joseph, as well as the whole KDE community and Wayland developers for helping out with the project.

Kdenlive 23.08.5 released

Mon, 2024/02/19 - 12:37pm

Kdenlive 23.08.5 has been released, featuring a multitude of bug fixes, including many issues related to nested sequences and same-track transitions. This release temporarily removes Movit effects until they are stable for production. However, the primary focus of this release was to continue the ongoing efforts in transitioning to Qt6 and KF6.

It’s important to note that, due to this transition, we regret to inform our Mac users that a package for this release won’t be available. We kindly request them to wait for the 24.02 release, expected by the end of the month.

Full changelog

  • Fix undocked widgets don’t have a title bar to allow moving / re-docking. Commit.
  • Multi guides export: replace slash and backslash in section names to fix rendering. Commit. Fixes bug #480845.
  • Fix sequence corruption on project load. Commit. Fixes bug #480776.
  • Fix multiple archiving issues. Commit. Fixes bug #456346.
  • Fix possible sequence corruption. Commit. Fixes bug #480398.
  • Fix sequences folder id not correctly restored on project opening. Commit.
  • Fix Luma issue. Commit. See bug #480343.
  • Fix subtitles not covering transparent zones. Commit. Fixes bug #480350.
  • Group resize: don’t allow resizing a clip to length < 1. Commit. Fixes bug #480348.
  • Fix crash cutting grouped overlapping subtitles. Don’t allow the cut anymore, add test. Commit. Fixes bug #480316.
  • Fix clip monitor not updating when clicking in a bin column like date or description. Commit. Fixes bug #480148.
  • Fix start playing at end of timeline. Commit. Fixes bug #479994.
  • Fix save clip zone from timeline adding an extra frame. Commit. Fixes bug #480005.
  • Fix clips with mix cannot be cut, add test. Commit. See bug #479875.
  • Fix project monitor loop clip. Commit.
  • Fix monitor offset when zooming back to 1:1. Commit.
  • Fix sequence effects lost. Commit. Fixes bug #479788.
  • Improved fix for center crop issue. Commit.
  • Fix center crop adjust not covering full image. Commit. Fixes bug #464974.
  • Disable Movit until it’s stable (should have done that a long time ago). Commit.
  • Fix cannot save list of project files. Commit. Fixes bug #479370.
  • Fix editing title clip with a mix can mess up the track. Commit. Fixes bug #478686.
  • Fix audio mixer cannot enter precise values with keyboard. Commit.
  • Prevent, detect and possibly fix corrupted project files, fix feedback not displayed in project notes. Commit. See bug #472849.
  • Test project’s active timeline is not always the first sequence. Commit.
  • Ensure secondary timelines are added to the project before being loaded. Commit.
  • Ensure autosave is not triggered when project is still loading. Commit.
  • Fix variable name shadowing. Commit.
  • When switching timeline tab without timeline selection, don’t clear effect stack if it was showing a bin clip. Commit.
  • Fix crash pressing del in empty effect stack. Commit.
  • Ensure check for HW accel is also performed if some non essential MLT module is missing. Commit.
  • Fix tests. Commit.
  • Fix closed sequences losing properties, add more tests. Commit.
  • Don’t attempt to load timeline sequences more than once. Commit.
  • Fix timeline groups lost after recent commit on project save. Commit.
  • Ensure we always use the correct timeline uuid on some clip operations. Commit.
  • Add animation: remember last used folder. Commit. See bug #478688.
  • Refresh effects list after downloading an effect. Commit.
  • Fix audio or video only drag of subclips. Commit. Fixes bug #478660.
  • Fix editing title clip duration breaks title (recent regression). Commit.
  • Glaxnimate animations: use rawr format instead of Lottie by default. Commit. Fixes bug #478685.
  • Fix timeline focus lost when dropping an effect on a clip. Commit.
  • Fix dropping lots of clips in Bin can cause freeze on abort. Commit.
  • Right click on a mix now shows a mix menu (allowing deletion). Commit. Fixes bug #442088.
  • Don’t add mixes to disabled tracks. Commit. See bug #442088.
  • Allow adding a mix without selection. Commit. See bug #442088.
  • Remove line missing from merge commit. Commit.
  • Fix proxied playlist clips (like stabilized clips) rendered as interlaced. Commit. Fixes bug #476716.
  • Always keep all timeline models opened. Commit. See bug #478745.

The post Kdenlive 23.08.5 released appeared first on Kdenlive.

Marco Arena's series on SObjectizer

Sat, 2024/02/17 - 12:05pm

Some time ago, Marco started a series of articles on SObjectizer. It is starting to become the source for all things SObjectizer – it is currently at post number 19 – quite an endeavour.

For those who haven’t met SObjectizer before, it is a framework for writing concurrent applications which supports the actor model, publish-subscribe…

EDIT: The series are available on Marco’s blog as well as on dev.to

You can support my work on Patreon, or you can get my book Functional Programming in C++ at Manning if you're into that sort of thing.
-->

Web Review, Week 2024-07

Fri, 2024/02/16 - 7:38am

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

Non-code contributions are the secret to open source success · GitHub

Tags: tech, foss, community

Good reminder that contributions are not only about code. Documentation, support, release management and so on are very important as well and too often underrated.

https://github.com/readme/featured/open-source-non-code-contributions


Extending our Mastodon social media trial - BBC R&D

Tags: tech, bbc, social-media, fediverse

Looks like the BBC likes the fediverse experiment so far. Engagement is even better than on Twitter at times. Let’s hope they keep expanding.

https://www.bbc.co.uk/rd/blog/2024-02-extending-our-mastodon-social-media-trial


European Court of Human Rights bans weakening of secure end-to-endencryption

Tags: tech, politics

Excellent news, let’s hope this thwarts the commission plans as expected.

https://www.eureporter.co/world/human-rights-category/european-court-of-human-rights-echr/2024/02/14/european-court-of-human-rights-bans-weakening-of-secure-end-to-endencryption-the-end-of-eus-chat-control-csar-mass-surveillance-plans/


Estimating the environmental impact of Generative-AI services using an LCA-based methodology

Tags: tech, ecology, energy, ai, machine-learning, gpt

Interesting paper evaluating a Life Cycle Assessment (LCA) method to estimate the power consumption and environmental impact of generative AI services. This is illustrated on a single service, hopefully we’ll see more such assessments.

https://inria.hal.science/hal-04346102


Short history of all Windows UI frameworks and libraries

Tags: tech, windows, gui

Confused about which UI frameworks are used in Windows? Here is the list in chronological order.

https://irrlicht3d.org/index.php?t=1626


The Stupidity Manifesto

Tags: culture, empathy

Definitely this, it’s better when you don’t make people feel stupid.

https://insimpleterms.blog/the-stupidity-manifesto


RSS is still pretty great

Tags: tech, rss, blog

Good explanation of what RSS is, where its weaknesses and strengths are.

https://www.pcloadletter.dev/blog/rss/


Too dangerous for C++

Tags: tech, rust, c++, type-systems, multithreading

It’s hard to argue that the Rust type system isn’t superior to the C++ type system… it’s definitely nice how it actively prevents data races at compile time.

https://blog.dureuill.net/articles/too-dangerous-cpp/


The History of Python: Why Python’s Integer Division Floors

Tags: tech, python, mathematics, floats

Some reasons why Python and C behave differently on this matter. It’s a source of mistakes.

https://python-history.blogspot.com/2010/08/why-pythons-integer-division-floors.html


CUDA on AMD GPUs

Tags: tech, gpu, amd, nvidia, computation

Interesting project, could bring a boost in AMD GPUs usage for CUDA workloads.

https://github.com/vosen/ZLUDA


Not just NVIDIA: GPU programming that runs everywhere

Tags: tech, python, gpu, computation, webgpu

Interesting to see WebGPU bindings for Python.

https://pythonspeed.com/articles/gpu-without-cuda/


WebGPU Best Practices

Tags: tech, 3d, gpu, computation, webgpu

Looks like a nice list of resources to dive deeper with WebGPU

https://toji.dev/webgpu-best-practices/


Open-source data multitool | VisiData

Tags: tech, tools, data, python

Looks like a nice tool for quick data exploration straight from the command line.

https://www.visidata.org/


Magika: AI powered fast and efficient file type identification | Google Open Source Blog

Tags: tech, ai, machine-learning, tools, command-line

Interesting tool for file type detection. Seems very accurate too.

https://opensource.googleblog.com/2024/02/magika-ai-powered-fast-and-efficient-file-type-identification.html


Why Bloat Is Still Software’s Biggest Vulnerability - IEEE Spectrum

Tags: tech, security, architecture, dependencies, supply-chain

Definitely this, the software bloat directly impacts the attack surface of what gets shipped. Even though this is far from a panacea in terms of security, it’s time for people to critically examine their dependencies also for other reasons.

https://spectrum.ieee.org/lean-software-development


Mastering Programming - by Kent Beck

Tags: tech, craftsmanship, programming

As always from Kent Beck, an excellent set of advices to improve you programming skills.

https://tidyfirst.substack.com/p/mastering-programming


Deciphering Glyph :: Let Me Tell You A Secret

Tags: tech, communication, management, team

This is a bit cartoonish I’d say but there’s some truth to it. I indeed regularly get onto consulting gigs where you find out that the people already had the solution to their problem. In those cases it’s very often because communication channels are broken somewhere (team don’t feel at liberty to share what they noticed, managers having a hard time to listen, etc.).

https://blog.glyph.im/2024/02/let-me-tell-you-a-secret.html


Tracking Engineering Time - Jacob Kaplan-Moss

Tags: tech, management, metrics, estimates

Interesting approach when managing at a distance. It tries hard to stay lightweight which is definitely welcome.

https://jacobian.org/2024/feb/7/tracking-engineering-time/


What Is in Your Organizational Closet? - esther derby associates, inc.

Tags: management, organization

Interesting idea… indeed organizations can carry legacy processes and ideas as well.

https://estherderby.com/what-is-in-your-organizational-closet/


Bye for now!

Qt Creator 13 Beta released

Thu, 2024/02/15 - 11:06am

We are happy to announce the release of Qt Creator 13 Beta!

Optimizing Embedded Product Design

Thu, 2024/02/15 - 8:00am

Choosing the right system-on-chip (SoC) is probably your first consideration when designing an embedded product, followed closely by deciding whether to use an off-the-shelf board or design your own.

The case for commercial boards in initial designs

For the first product in a new line, consider using a commercially available board that features your chosen SoC. This approach may slightly increase the cost per board compared to building a custom board yourself. However, it lets you build on a vendor’s considerable expertise in areas like SoC characteristics, architectural layout, proper bus design, and errata workarounds. Pre-existing boards offer a significant shortcut in getting your product to market as they can minimize prototype iterations and reduce the risk of crucial mistakes in layout. As you gain experience with your chosen silicon and start looking at moving to higher-volume production, you can then consider whether it makes sense to design and manufacture custom boards to reduce costs and introduce custom functionality.

First step: Picking a vendor

Selecting a CPU architecture is your very first step. While ARM is currently dominating the market, Intel x86 and RISC-V are other possible alternatives. Because toolchains like LLVM and GCC can support all these architectures, your decision will usually depend on factors such as vendor and community support, licensing, power consumption, and clock speeds. Once you’ve selected an architecture, comparing features and prices within that family becomes more straightforward.

Evaluating silicon vendor boards

Silicon vendors such as AMD, Intel, Nvidia, NXP, and Renesas all offer eval boards to help you evaluate their SoCs. These boards are excellent starting points but there are things to consider.

  • Feature overload. Because eval boards are intended to show off the capabilities of their chips, they are often loaded with features. That can be good for trial, but you don’t want to pay for unnecessary hardware once you move to volume production.
  • Limited availability. Eval boards are often intended for very limited distribution, making availability a serious concern. If you’re planning on a very small production run, this might not matter. But it also might force you to move to another platform before you’re ready.
  • Hardware consistency. Eval boards may not have the same process consistency as commercial products. That means you could get multiple hardware revs of the same board within a short timeframe, creating potential software compatibility nightmares and in-field surprises.
  • Support limitations. Support (either engineering assistance or device drivers) may not be at the level you need to build product. That includes some critical aspects such as OS updates. It’s possible the vendor has the capacity or process for consistently delivering commercial quality drivers for their boards that are compatible with the latest Linux releases, but you’ll likely need to ask.

It’s always advisable to consult with a sales representative before using an eval board in a production product. Their feedback can prevent future issues and, if necessary, direct you to distributors for better long-term alternatives.

Choosing a board provider

The other option for using pre-made boards is to go to a board vendor instead of a silicon vendor. They’re creating boards with the intent they’ll be incorporated into products rather than simply for evaluation. When selecting a board provider, consider all aspects, including one of the most important peripherals, the screen. For a more comprehensive guide on selecting hardware, refer to our paper on best practices: Designing Your First Embedded Linux Device: Choosing Your Hardware.

The post Optimizing Embedded Product Design appeared first on KDAB.

KDE Gear 23.08.5

Thu, 2024/02/15 - 12:00am

Over 120 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:

  • knavalbattle: Fix test for placing a ship vertically (Commit)
  • konsole: Show wallpaper on non-translucent top-levels (Commit, fixes bug #477800)
  • neochat: Fix saving images (Commit, fixes bug #479053)

Distro and app store packagers should update their application packages.