Fork of the Plasma 6 blur effect with additional features (including force blur) and bug fixes.
C++
888
418 commits
updated Aug 13, 2025
Better Blur is a fork of the Plasma 6 blur effect with additional features and bug fixes.
Fixes for blur-related Plasma bugs that haven't been patched yet.
Better Blur will usually support at least one previous Plasma release (second number in version - 6.x). Exceptions may be made if there is a large amount of breaking changes.
Currently supported versions: 6.4
Latest Better Blur versions for previous Plasma releases:
[!IMPORTANT] If the effect stops working after a system upgrade, you will need to rebuild it or reinstall the package.
Choose cleanBuild when reinstalling the package.
https://aur.archlinux.org/packages/kwin-effects-forceblur
yay -S kwin-effects-forceblur
flake.nix:
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
kwin-effects-forceblur = {
url = "github:taj-ny/kwin-effects-forceblur";
inputs.nixpkgs.follows = "nixpkgs";
};
};
}
{ inputs, pkgs, ... }:
{
environment.systemPackages = [
inputs.kwin-effects-forceblur.packages.${pkgs.system}.default # Wayland
inputs.kwin-effects-forceblur.packages.${pkgs.system}.x11 # X11
];
}
This package is usually built against the latest version of KWin available in Fedora's official repositories, with a delay of up to 24 hours due to Fedora's update mechanism using bodhi. If you use a beta/testing/copr/advisory version of KWin, the effect may not work. In that case, you need to either recompile the effect using the instructions below, or rebuild the SRPM using rpmbuild --rebuild /path/to/srpm.src.rpm. Uninstall the rpm of the effect before attempting your build.
sudo dnf copr enable hazel-bunny/ricing
sudo dnf install --refresh kwin-effects-forceblur
* Unofficial package, use at your own risk.
[!NOTE] On Fedora Kinoite and other distributions based on it, the effect must be built in a container.
Wayland:
sudo pacman -S base-devel git extra-cmake-modules qt6-tools kwin
X11:
sudo pacman -S base-devel git extra-cmake-modules qt6-tools kwin-x11
Wayland:
sudo apt install -y git cmake g++ extra-cmake-modules qt6-tools-dev kwin-dev libkf6configwidgets-dev gettext libkf6crash-dev libkf6globalaccel-dev libkf6kio-dev libkf6service-dev libkf6notifications-dev libkf6kcmutils-dev libkdecorations3-dev libxcb-composite0-dev libxcb-randr0-dev libxcb-shm0-dev
X11:
sudo apt install -y git cmake g++ extra-cmake-modules qt6-tools-dev kwin-x11-dev libkf6configwidgets-dev gettext libkf6crash-dev libkf6globalaccel-dev libkf6kio-dev libkf6service-dev libkf6notifications-dev libkf6kcmutils-dev libkdecorations3-dev libxcb-composite0-dev libxcb-randr0-dev libxcb-shm0-dev
Wayland:
sudo dnf -y install git cmake extra-cmake-modules gcc-g++ kf6-kwindowsystem-devel plasma-workspace-devel libplasma-devel qt6-qtbase-private-devel qt6-qtbase-devel cmake kwin-devel extra-cmake-modules kwin-devel kf6-knotifications-devel kf6-kio-devel kf6-kcrash-devel kf6-ki18n-devel kf6-kguiaddons-devel libepoxy-devel kf6-kglobalaccel-devel kf6-kcmutils-devel kf6-kconfigwidgets-devel kf6-kdeclarative-devel kdecoration-devel kf6-kglobalaccel kf6-kdeclarative libplasma kf6-kio qt6-qtbase kf6-kguiaddons kf6-ki18n wayland-devel libdrm-devel
X11:
sudo dnf -y install git cmake extra-cmake-modules gcc-g++ kf6-kwindowsystem-devel plasma-workspace-devel libplasma-devel qt6-qtbase-private-devel qt6-qtbase-devel cmake extra-cmake-modules kf6-knotifications-devel kf6-kio-devel kf6-kcrash-devel kf6-ki18n-devel kf6-kguiaddons-devel libepoxy-devel kf6-kglobalaccel-devel kf6-kcmutils-devel kf6-kconfigwidgets-devel kf6-kdeclarative-devel kdecoration-devel kf6-kglobalaccel kf6-kdeclarative libplasma kf6-kio qt6-qtbase kf6-kguiaddons kf6-ki18n wayland-devel libdrm-devel kwin-x11-devel
Wayland:
sudo zypper in -y git cmake-full gcc-c++ kf6-extra-cmake-modules kcoreaddons-devel kguiaddons-devel kconfigwidgets-devel kwindowsystem-devel ki18n-devel kiconthemes-devel kpackage-devel frameworkintegration-devel kcmutils-devel kirigami2-devel "cmake(KF6Config)" "cmake(KF6CoreAddons)" "cmake(KF6FrameworkIntegration)" "cmake(KF6GuiAddons)" "cmake(KF6I18n)" "cmake(KF6KCMUtils)" "cmake(KF6KirigamiPlatform)" "cmake(KF6WindowSystem)" "cmake(Qt6Core)" "cmake(Qt6DBus)" "cmake(Qt6Quick)" "cmake(Qt6Svg)" "cmake(Qt6Widgets)" "cmake(Qt6Xml)" "cmake(Qt6UiTools)" "cmake(KF6Crash)" "cmake(KF6GlobalAccel)" "cmake(KF6KIO)" "cmake(KF6Service)" "cmake(KF6Notifications)" libepoxy-devel kwin6-devel
X11:
sudo zypper in -y git cmake-full gcc-c++ kf6-extra-cmake-modules kcoreaddons-devel kguiaddons-devel kconfigwidgets-devel kwindowsystem-devel ki18n-devel kiconthemes-devel kpackage-devel frameworkintegration-devel kcmutils-devel kirigami2-devel "cmake(KF6Config)" "cmake(KF6CoreAddons)" "cmake(KF6FrameworkIntegration)" "cmake(KF6GuiAddons)" "cmake(KF6I18n)" "cmake(KF6KCMUtils)" "cmake(KF6KirigamiPlatform)" "cmake(KF6WindowSystem)" "cmake(Qt6Core)" "cmake(Qt6DBus)" "cmake(Qt6Quick)" "cmake(Qt6Svg)" "cmake(Qt6Widgets)" "cmake(Qt6Xml)" "cmake(Qt6UiTools)" "cmake(KF6Crash)" "cmake(KF6GlobalAccel)" "cmake(KF6KIO)" "cmake(KF6Service)" "cmake(KF6Notifications)" libepoxy-devel kwin6-x11-devel
git clone https://github.com/taj-ny/kwin-effects-forceblur
cd kwin-effects-forceblur
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make -j$(nproc)
sudo make install
# enter container
git clone https://github.com/taj-ny/kwin-effects-forceblur
cd kwin-effects-forceblur
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make -j$(nproc)
cpack -V -G RPM
exit # exit container
sudo rpm-ostree install kwin-effects-forceblur/build/kwin-better-blur.rpm
Remove the build directory when rebuilding the effect.
This effect will conflict with the stock blur effect and any other forks of it.
For more detailed descriptions of some options, check out this wiki page.
The window needs to be translucent in order for the blur to be visible. This can be done in multiple ways:
The classes of windows to blur can be specified in the effect settings. You can obtain them in two ways:
qdbus org.kde.KWin /KWin org.kde.KWin.queryWindowInfo and click on the window. You can use either resourceClass or resourceName.This effect can be very resource-intensive if you have a lot of windows open. On Wayland, high GPU load may result in higher cursor latency or even stuttering. If that bothers you, set the following environment variable: KWIN_DRM_NO_AMS=1. If that's not enough, try enabling or disabling the software cursor by also setting KWIN_FORCE_SW_CURSOR=0 or KWIN_FORCE_SW_CURSOR=1.
Intel GPUs use software cursor by default due to this bug, however it doesn't seem to affect all GPUs.
5,642 followers · starred Jun 2025
160 followers · starred Aug 2025
1,169 followers · starred Aug 2025
158 followers · starred Nov 2025
Fork of the Plasma 6 blur effect with additional features (including force blur) and bug fixes.
C++
888
418 commits
updated Aug 13, 2025
Better Blur is a fork of the Plasma 6 blur effect with additional features and bug fixes.
Fixes for blur-related Plasma bugs that haven't been patched yet.
Better Blur will usually support at least one previous Plasma release (second number in version - 6.x). Exceptions may be made if there is a large amount of breaking changes.
Currently supported versions: 6.4
Latest Better Blur versions for previous Plasma releases:
[!IMPORTANT] If the effect stops working after a system upgrade, you will need to rebuild it or reinstall the package.
Choose cleanBuild when reinstalling the package.
https://aur.archlinux.org/packages/kwin-effects-forceblur
yay -S kwin-effects-forceblur
flake.nix:
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
kwin-effects-forceblur = {
url = "github:taj-ny/kwin-effects-forceblur";
inputs.nixpkgs.follows = "nixpkgs";
};
};
}
{ inputs, pkgs, ... }:
{
environment.systemPackages = [
inputs.kwin-effects-forceblur.packages.${pkgs.system}.default # Wayland
inputs.kwin-effects-forceblur.packages.${pkgs.system}.x11 # X11
];
}
This package is usually built against the latest version of KWin available in Fedora's official repositories, with a delay of up to 24 hours due to Fedora's update mechanism using bodhi. If you use a beta/testing/copr/advisory version of KWin, the effect may not work. In that case, you need to either recompile the effect using the instructions below, or rebuild the SRPM using rpmbuild --rebuild /path/to/srpm.src.rpm. Uninstall the rpm of the effect before attempting your build.
sudo dnf copr enable hazel-bunny/ricing
sudo dnf install --refresh kwin-effects-forceblur
* Unofficial package, use at your own risk.
[!NOTE] On Fedora Kinoite and other distributions based on it, the effect must be built in a container.
Wayland:
sudo pacman -S base-devel git extra-cmake-modules qt6-tools kwin
X11:
sudo pacman -S base-devel git extra-cmake-modules qt6-tools kwin-x11
Wayland:
sudo apt install -y git cmake g++ extra-cmake-modules qt6-tools-dev kwin-dev libkf6configwidgets-dev gettext libkf6crash-dev libkf6globalaccel-dev libkf6kio-dev libkf6service-dev libkf6notifications-dev libkf6kcmutils-dev libkdecorations3-dev libxcb-composite0-dev libxcb-randr0-dev libxcb-shm0-dev
X11:
sudo apt install -y git cmake g++ extra-cmake-modules qt6-tools-dev kwin-x11-dev libkf6configwidgets-dev gettext libkf6crash-dev libkf6globalaccel-dev libkf6kio-dev libkf6service-dev libkf6notifications-dev libkf6kcmutils-dev libkdecorations3-dev libxcb-composite0-dev libxcb-randr0-dev libxcb-shm0-dev
Wayland:
sudo dnf -y install git cmake extra-cmake-modules gcc-g++ kf6-kwindowsystem-devel plasma-workspace-devel libplasma-devel qt6-qtbase-private-devel qt6-qtbase-devel cmake kwin-devel extra-cmake-modules kwin-devel kf6-knotifications-devel kf6-kio-devel kf6-kcrash-devel kf6-ki18n-devel kf6-kguiaddons-devel libepoxy-devel kf6-kglobalaccel-devel kf6-kcmutils-devel kf6-kconfigwidgets-devel kf6-kdeclarative-devel kdecoration-devel kf6-kglobalaccel kf6-kdeclarative libplasma kf6-kio qt6-qtbase kf6-kguiaddons kf6-ki18n wayland-devel libdrm-devel
X11:
sudo dnf -y install git cmake extra-cmake-modules gcc-g++ kf6-kwindowsystem-devel plasma-workspace-devel libplasma-devel qt6-qtbase-private-devel qt6-qtbase-devel cmake extra-cmake-modules kf6-knotifications-devel kf6-kio-devel kf6-kcrash-devel kf6-ki18n-devel kf6-kguiaddons-devel libepoxy-devel kf6-kglobalaccel-devel kf6-kcmutils-devel kf6-kconfigwidgets-devel kf6-kdeclarative-devel kdecoration-devel kf6-kglobalaccel kf6-kdeclarative libplasma kf6-kio qt6-qtbase kf6-kguiaddons kf6-ki18n wayland-devel libdrm-devel kwin-x11-devel
Wayland:
sudo zypper in -y git cmake-full gcc-c++ kf6-extra-cmake-modules kcoreaddons-devel kguiaddons-devel kconfigwidgets-devel kwindowsystem-devel ki18n-devel kiconthemes-devel kpackage-devel frameworkintegration-devel kcmutils-devel kirigami2-devel "cmake(KF6Config)" "cmake(KF6CoreAddons)" "cmake(KF6FrameworkIntegration)" "cmake(KF6GuiAddons)" "cmake(KF6I18n)" "cmake(KF6KCMUtils)" "cmake(KF6KirigamiPlatform)" "cmake(KF6WindowSystem)" "cmake(Qt6Core)" "cmake(Qt6DBus)" "cmake(Qt6Quick)" "cmake(Qt6Svg)" "cmake(Qt6Widgets)" "cmake(Qt6Xml)" "cmake(Qt6UiTools)" "cmake(KF6Crash)" "cmake(KF6GlobalAccel)" "cmake(KF6KIO)" "cmake(KF6Service)" "cmake(KF6Notifications)" libepoxy-devel kwin6-devel
X11:
sudo zypper in -y git cmake-full gcc-c++ kf6-extra-cmake-modules kcoreaddons-devel kguiaddons-devel kconfigwidgets-devel kwindowsystem-devel ki18n-devel kiconthemes-devel kpackage-devel frameworkintegration-devel kcmutils-devel kirigami2-devel "cmake(KF6Config)" "cmake(KF6CoreAddons)" "cmake(KF6FrameworkIntegration)" "cmake(KF6GuiAddons)" "cmake(KF6I18n)" "cmake(KF6KCMUtils)" "cmake(KF6KirigamiPlatform)" "cmake(KF6WindowSystem)" "cmake(Qt6Core)" "cmake(Qt6DBus)" "cmake(Qt6Quick)" "cmake(Qt6Svg)" "cmake(Qt6Widgets)" "cmake(Qt6Xml)" "cmake(Qt6UiTools)" "cmake(KF6Crash)" "cmake(KF6GlobalAccel)" "cmake(KF6KIO)" "cmake(KF6Service)" "cmake(KF6Notifications)" libepoxy-devel kwin6-x11-devel
git clone https://github.com/taj-ny/kwin-effects-forceblur
cd kwin-effects-forceblur
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make -j$(nproc)
sudo make install
# enter container
git clone https://github.com/taj-ny/kwin-effects-forceblur
cd kwin-effects-forceblur
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make -j$(nproc)
cpack -V -G RPM
exit # exit container
sudo rpm-ostree install kwin-effects-forceblur/build/kwin-better-blur.rpm
Remove the build directory when rebuilding the effect.
This effect will conflict with the stock blur effect and any other forks of it.
For more detailed descriptions of some options, check out this wiki page.
The window needs to be translucent in order for the blur to be visible. This can be done in multiple ways:
The classes of windows to blur can be specified in the effect settings. You can obtain them in two ways:
qdbus org.kde.KWin /KWin org.kde.KWin.queryWindowInfo and click on the window. You can use either resourceClass or resourceName.This effect can be very resource-intensive if you have a lot of windows open. On Wayland, high GPU load may result in higher cursor latency or even stuttering. If that bothers you, set the following environment variable: KWIN_DRM_NO_AMS=1. If that's not enough, try enabling or disabling the software cursor by also setting KWIN_FORCE_SW_CURSOR=0 or KWIN_FORCE_SW_CURSOR=1.
Intel GPUs use software cursor by default due to this bug, however it doesn't seem to affect all GPUs.
5,642 followers · starred Jun 2025
160 followers · starred Aug 2025
1,169 followers · starred Aug 2025
158 followers · starred Nov 2025