Graphical Driver Management

Has anyone (and I’m sure someone has) given thought to a Plasma GUI system for managing installed hardware drivers? GNOME has this built into Software.

I’m not entirely convinced that it belongs in Discover, but that’s possible.

The idea that I just had was to add a panel to System Settings that would be used for driver management- could detect the hardware installed on your system and provide a nice frontend for installing those driver packages using PackageKit.

Is some distro-agnostic way of doing this already being worked on, whether part of discover or not?

1 Like

it already exists in discover

settings > software sources > additional divers

it’s basically the same GUI as gnome at that point.

or you can also get to it directly by running

sudo software-properties-qt

That looks like it’s ubuntu-specific. I’m talking about something that could be built into Plasma and work across distros by interfacing with PackageKit.

For example, I’m on Solus (where we’re working on implementing PackageKit + Discover to replace our aging custom software center app), and I don’t see anything like that in Discover’s settings.

I haven’t been able to find sources for software-properties-qt anywhere other than Ubuntu’s package repo- is it a separate project that I’ve somehow missed?

i am using kubuntu but i would think the settings inside discover would be the same across all plasma because discover is the default app

i guess what you are seeing (or not seeing) is discover being overlaid on top of a different package manager and these easily accessible nvidia drivers are simply not there in your distros repositories.

yet another reason to use the buntu family of distros if you have a nvidia card.

Yeah, that’s exactly what I’m seeing. I’m here trying to see if there’s any interest in creating a distro-agnostic (via PackageKit) system to install drivers for proprietary hardware. That’s what gnome software does. Solus has the NVIDIA drivers in the repository, and we already have a GUI for installing them- but it’s old, and we’d really love to use Discover instead. We’ve got a PackageKit backend for our package manager, but neither I nor the rest of the team can find a PackageKit-based driver installation GUI.

Discover doesn’t have this as a formal feature, but it wouldn’t really be too hard to add. Drivers are typically already packages, so the PackageKit backend can be used to install them. It would be mostly a matter of:

  • Making sure such drovers have appropriate AppStream Metadata in the distro
  • Teaching Discover to consume that specific metadata
  • Writing a thin GUI around them that shows available drivers in a separate view.

What drivers are you planning to include? Just proprietary NVIDIA drivers, or anything else?

Regardless, we’d really appreciate any upstream contributions you can make!

Well, it looks to me like the way Gnome Software does it is by using modaliases. As such, we shouldn’t need to write anything specific to add nvidia drivers, broadcom drivers, etc. It’s my understanding that Gnome Software reads the key in the appstream metadata, and compares that with the system’s installed hardware. If they match, then it shows the driver as available for installation.

That’s how I would propose to build this for Discover as well. Then there’s nothing hard-coded in the KDE software regarding what drivers are supported- it’s all handled by the people packaging things for a given distro.

For what it’s worth, in this particular case, Solus would be using this mainly for proprietary NVIDIA drivers and broadcom wireless drivers.

I’ll take a look at Discover and see if I can figure out how to extend it in this way. I’m really not a C++ guy, but I’ll see what I can find!

appstream driver spec:

The main things to look for would be:

<component type="driver">

So we know it’s a driver type; as well as:


Which would then only display the driver if the modaliases provided matched some in the installed system.

It then be up to distributions to ensure they provide appstream data for driver packages ensuring the fields are pre-populated. Eventually this could be upstreamed if hardware vendors are willing.

Additionally, it would be useful if requires, recommends, supports are implemented.

Such that a distribution could do something like this:

  <kernel version="5.15" compare="eq">Linux</kernel>

So that distributions could only show driver variations for the matching kernel in case the distribution offers different kernel options (e.g. LTS and mainline options)