explaingit

audietoffe/plasma-gpu-router

26PythonAudience · ops devopsComplexity · 3/5ActiveLicenseSetup · hard

TLDR

KDE Plasma desktop tool that routes the desktop, login screen, and individual apps to a chosen GPU on dual-GPU AMD Linux machines.

Mindmap

mindmap
  root((Plasma GPU Router))
    Inputs
      AMD GPU stats
      User presets
      Polkit auth
      App launch context
    Outputs
      GPU assignment
      SDDM config
      Launch env vars
      Live VRAM display
    Use Cases
      Keep dGPU free for games
      Run apps on a chosen GPU
      Route login screen to iGPU
      Reset to defaults quickly
    Tech Stack
      Python
      PyQt6
      ROCm
      Polkit
      KDE

Things people build with this

USE CASE 1

Pin the KDE desktop to the integrated GPU so the discrete card stays free for games

USE CASE 2

Right-click an executable in Dolphin and launch it on a specific AMD GPU

USE CASE 3

Route the SDDM login screen to a different GPU than the desktop session

USE CASE 4

Monitor VRAM, temperature, and power for two AMD cards from one window

Tech stack

PythonPyQt6ROCmPolkitKDEWayland

Getting it running

Difficulty · hard Time to first run · 1h+

Needs KDE on Wayland, AMD ROCm, Polkit, and BIOS tweaks; applying a wrong config can cause a black screen.

GPL v3 or later requires that any redistributed version, including modifications, is shared under the same GPL license.

In plain English

Plasma GPU Router is a small Linux desktop utility for picking which graphics card handles which job on a PC running KDE Plasma in Wayland mode. The typical use case is a machine with two GPUs, for example an AMD CPU with built-in integrated graphics and a separate dedicated AMD card. The point of routing tasks between them is to keep the discrete card free for games or heavy work while the integrated chip handles the desktop and the login screen. The app shows live information for each GPU, including VRAM use, utilization, temperature, and power. From the UI the user can pick which card draws the desktop, which card runs the SDDM login screen, and which card actually outputs the display signal. There are quick presets, one that splits work between the integrated GPU for rendering and the discrete GPU for output, one that puts everything on the integrated GPU when the monitor is plugged into the motherboard, and one that resets to system defaults. A file manager hook is included for Dolphin, KDE's file browser. After installing a service menu, the user can right-click any application or executable and pick 'Launch on GPU', then choose which card to run it on from a dialog that shows current VRAM use. The app sets the right environment variables so the program starts on the chosen card. Requirements are KDE Plasma on Wayland, Python 3.10 or newer, PyQt6, AMD ROCm for the AMD GPU monitoring, Polkit for applying configuration with a password prompt, and kdialog for the selection dialog. Installation is a git clone, a pip install of PyQt6, and running the main Python file. Desktop integration is a matter of copying a .desktop file into the local applications directory. The README warns that applying a configuration can cause black screens or sudden display source changes, and recommends specific BIOS settings: iGPU Multi-Monitor enabled, primary display set to integrated or auto, and Above 4G Decoding enabled. The license is GPL version 3 or later.

Copy-paste prompts

Prompt 1
Walk me through installing Plasma GPU Router on Fedora KDE with a Ryzen iGPU and a Radeon dGPU, including the ROCm and PyQt6 steps
Prompt 2
Write a custom preset for Plasma GPU Router that routes Steam and Lutris to the dGPU but keeps Firefox and the desktop on the iGPU
Prompt 3
Explain which BIOS settings I need to enable, including iGPU Multi-Monitor and Above 4G Decoding, before using Plasma GPU Router
Prompt 4
Build a Dolphin service menu entry that uses Plasma GPU Router to launch any selected AppImage on the discrete GPU
Prompt 5
My screen went black after applying a Plasma GPU Router preset, help me recover from a TTY without rebooting
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.