Keyboard and lightbar lighting for KDE Plasma, with screen-driven Ambient colors, Solid Color, notification effects, key layers and application presets. Multiple devices run through native Qt driver plugins. The KDE settings entry is Lighting.
See driver modules for supported hardware and module-specific requirements.
Linux with KDE Plasma. Current CMake minimums: CMake 3.25, C++20, Qt 6.10, ECM 6.26 and KWin 6.7. Build against the installed KWin version. Tested only on Manjaro (Arch-based), with KWin 6.7.5, Qt 6.11.2 and ECM 6.30. Compatibility below these configured minimums has not been established.
Dependencies: Arch Linux / Manjaro
sudo pacman -S --needed base-devel cmake ninja pkgconf extra-cmake-modules \
qt6-base qt6-declarative qt6-tools kwin kcoreaddons kconfig kcmutils \
kguiaddons ki18n kservice kwindowsystem kirigami qqc2-desktop-style \
libusb wayland libglvnd libepoxy libdrm vulkan-headers vulkan-icd-loader \
dbus gettextDependencies: Ubuntu / Debian
Requires repositories meeting the minimums above (Ubuntu KDE packages are in Universe). Stock Ubuntu 26.04 LTS and Debian 13 have older KWin versions and cannot build the project as configured.
sudo apt update
sudo apt install build-essential cmake ninja-build pkg-config gettext \
extra-cmake-modules qt6-base-dev qt6-declarative-dev qt6-tools-dev \
qt6-tools-dev-tools kwin-dev libkf6coreaddons-dev libkf6config-dev \
libkf6kcmutils-dev libkf6guiaddons-dev libkf6i18n-dev libkf6service-dev \
libkf6windowsystem-dev libkirigami-dev libusb-1.0-0-dev libwayland-dev \
libgl-dev libegl-dev libepoxy-dev libdrm-dev libvulkan-dev dbus-daemon \
qml6-module-qtquick qml6-module-qtquick-controls qml6-module-qtquick-layouts \
qml6-module-qtquick-dialogs qml6-module-qtquick-window \
qml6-module-qtquick-templates qml6-module-qtqml-workerscript \
qml6-module-qt-labs-platform qml6-module-org-kde-kirigami \
qml6-module-org-kde-kcmutils qml6-module-org-kde-desktopDependencies: Fedora
sudo dnf install gcc-c++ cmake ninja-build pkgconf-pkg-config gettext \
extra-cmake-modules qt6-qtbase-devel qt6-qtdeclarative-devel qt6-qttools-devel \
kwin-devel kf6-kcoreaddons-devel kf6-kconfig-devel kf6-kcmutils-devel \
kf6-kguiaddons-devel kf6-ki18n-devel kf6-kservice-devel \
kf6-kwindowsystem-devel kf6-kirigami-devel kf6-qqc2-desktop-style \
libusb1-devel wayland-devel libglvnd-devel libepoxy-devel libdrm-devel \
vulkan-headers vulkan-loader-devel dbus-daemonFor the service without KWin or its settings UI, add -DBUILD_KWIN_EFFECT=OFF.
See Contributing for development checks.
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build --parallel
ctest --test-dir build --output-on-failureFor a new installation:
sudo cmake --install build
kcmshell6 kcm_ambientledApply starts klightingd; Enable Ambient screen capture adds screen colors. The same editor is available in KDE System
Settings under Appearance & Style → Lighting. For updates, staging and D-Bus
reload commands, see installation. Rebuild after KWin updates.
Implement DeviceDriver in src/drivers/<vendor-model>/
or an external Qt .so module. Drivers own discovery, capabilities, geometry and
hardware output; the host renders their layouts. Start with the
driver guide and standalone CMake example.
Contributing · Architecture · Settings · Security
Author and maintainer: Evgenii Iulin, mail@alltiptop.me.
Code: GPL-3.0-or-later. Vendored skills retain their original authorship and licenses.
