https://github.com/taj-ny/kwin-effects-forceblur
Fork of the Plasma 6 blur effect with additional features (including force blur) and bug fixes.
https://github.com/taj-ny/kwin-effects-forceblur
kde kde-plasma kde-plasma-6 kwin kwin-effect linux plasma plasma6 wayland
Last synced: 3 days ago
JSON representation
Fork of the Plasma 6 blur effect with additional features (including force blur) and bug fixes.
- Host: GitHub
- URL: https://github.com/taj-ny/kwin-effects-forceblur
- Owner: taj-ny
- License: gpl-3.0
- Created: 2024-01-11T19:55:23.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-27T10:21:46.000Z (about 2 months ago)
- Last Synced: 2025-04-04T21:15:05.554Z (11 days ago)
- Topics: kde, kde-plasma, kde-plasma-6, kwin, kwin-effect, linux, plasma, plasma6, wayland
- Language: C++
- Homepage:
- Size: 383 KB
- Stars: 340
- Watchers: 8
- Forks: 14
- Open Issues: 32
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - taj-ny/kwin-effects-forceblur - Fork of the Plasma 6 blur effect with additional features (including force blur) and bug fixes. (C++)
- awesome-kde - kwin-effects-forceblur - explanatory (Third party applications / Plasma components)
- awesome-kde - kwin-effects-forceblur - explanatory (Third party applications / Plasma components)
- awesome-starred - taj-ny/kwin-effects-forceblur - Fork of the Plasma 6 blur effect with additional features (including force blur) and bug fixes. (C++)
README
# Better Blur [](https://aur.archlinux.org/packages/kwin-effects-forceblur)
Better Blur is a fork of the Plasma 6 blur effect with additional features and bug fixes.
### Features
- X11 and Wayland support
- Force blur
- Rounded corners with anti-aliasing
- Static blur for much lower GPU usage
- Adjust blur brightness, contrast and saturation### Bug fixes
Fixes for blur-related Plasma bugs that haven't been patched yet.- Blur may sometimes disappear during animations
- [Transparent color schemes don't work properly with the Breeze application style](https://github.com/taj-ny/kwin-effects-forceblur/pull/38)# Installation
NixOS (flakes)
``flake.nix``:
```nix
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";kwin-effects-forceblur = {
url = "github:taj-ny/kwin-effects-forceblur";
inputs.nixpkgs.follows = "nixpkgs";
};
};
}
``````nix
{ 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 packagesArch 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 libxcb-composite0-dev libxcb-randr0-dev libxcb-shm0-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
```sh
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
sudo make install
```Building on Fedora Kinoite
```sh
# 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
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.
# 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](https://github.com/taj-ny/kwin-effects-forceblur/wiki/Configuration).
### 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](https://store.kde.org/p/1972214)
- 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](https://gitlab.freedesktop.org/drm/intel/-/issues/9571), however it doesn't seem to affect all GPUs.
# Credits
- [a-parhom/LightlyShaders](https://github.com/a-parhom/LightlyShaders) - CMakeLists.txt files