Skip to content

Fork of the KWin Blur effect for KDE Plasma 6 with additional features (including force blur) and bug fixes

License

Notifications You must be signed in to change notification settings

taj-ny/kwin-effects-forceblur

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KWin Better Blur AUR Version

Better Blur (formerly kwin-effects-forceblur) is a fork the KWin Blur effect for KDE Plasma 6 with additional features and bug fixes.

image Window opacity has been set to 85% for System Settings, Dolphin and VSCodium, Firefox uses a transparent theme | NixOS configuration

Features

  • X11 and Wayland support
  • Force blur
  • Rounded corners with optional anti-aliasing
  • Optional blur texture caching for much lower GPU usage, works best with tiling

Bug fixes

Fixes for blur-related Plasma bugs that haven't been patched yet.

Installation

NixOS (flakes)

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
  ];
}

Building from source

Note

On Fedora Kinoite and other distributions based on it, the effect must be built in a container.

Dependencies

  • CMake
  • Extra CMake Modules
  • Plasma 6
  • Qt 6
  • KF6
  • KWin development packages
Arch Linux
sudo pacman -S base-devel git extra-cmake-modules qt6-tools
Debian-based (KDE Neon, Kubuntu, Ubuntu)
sudo apt install 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 libkdecorations2-dev
Fedora 40, 41
sudo dnf 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
openSUSE
sudo zypper in 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

Building

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

Installation

Fedora Kinoite
cpack -V -G RPM
exit # exit the container
sudo rpm-ostree install kwin-effects-forceblur/build/kwin-better-blur.rpm
Other distributions
sudo make install

Remove the build directory when rebuilding the effect.

Usage

Note

If the effect stops working after a system upgrade, you will need to rebuild it.

This effect will conflict with the stock blur effect and any other forks of it.

  1. Install the plugin.
  2. Open the Desktop Effects page in System Settings.
  3. Disable any blur effects.
  4. Enable the Better Blur effect.

For more detailed descriptions of some options, check out this wiki page.

Window transparency

The window needs to be translucent in order for the blur to be visible. This can be done in multiple ways:

  • Use a transparent theme for the program if it supports it
  • Use a transparent color scheme, such as Alpha
  • Create a window rule that reduces the window opacity

Obtaining window classes

The classes of windows to blur can be specified in the effect settings. You can obtain them in two ways:

  • Run qdbus org.kde.KWin /KWin org.kde.KWin.queryWindowInfo and click on the window. You can use either resourceClass or resourceName.
  • Right click on the titlebar, go to More Options and Configure Special Window/Application Settings. The class can be found at Window class (application). If there is a space, for example Navigator firefox, you can use either Navigator or firefox.

High cursor latency or stuttering on Wayland

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.

Credits