# KDE-Rounded-Corners
**Repository Path**: abac1984/KDE-Rounded-Corners
## Basic Information
- **Project Name**: KDE-Rounded-Corners
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-12-19
- **Last Updated**: 2025-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# KDE-Rounded-Corners
This effect rounds the corners of your windows and adds an outline around them without much affecting the performance of the KDE Plasma desktop (see [#49](https://github.com/matinlotfali/KDE-Rounded-Corners/pull/49) and [#50](https://github.com/matinlotfali/KDE-Rounded-Corners/issues/50)).
This effect started as a fork of [shapecorners](https://sourceforge.net/projects/shapecorners/) with some additional contributions in [Alex47's project](https://github.com/alex47/KDE-Rounded-Corners), then optimized and reimplemented using shaders with influences from the [invert effect](https://github.com/KDE/kwin/tree/master/src/plugins/invert).
This effect is maintained on KDE Plasma desktop versions 5.27 to 6.5+ in various Linux distros ([See tests](#tested-on)).
[](https://www.buymeacoffee.com/matinlotfali)

### Tested on
*  
- 

- [](https://github.com/matinlotfali/KDE-Rounded-Corners/actions/workflows/kubuntu2204-backports.yml)

[](https://sourceforge.net/projects/kde-rounded-corners/files/nightly/kubuntu2204/kwin4_effect_shapecorners_kubuntu2204.deb/download)
- [](https://github.com/matinlotfali/KDE-Rounded-Corners/actions/workflows/kubuntu2404.yml)

[](https://sourceforge.net/projects/kde-rounded-corners/files/nightly/kubuntu/kwin4_effect_shapecorners_kubuntu2404.deb/download)
- [](https://github.com/matinlotfali/KDE-Rounded-Corners/actions/workflows/kubuntu2504.yml)

[](https://sourceforge.net/projects/kde-rounded-corners/files/nightly/kubuntu2504/kwin4_effect_shapecorners_kubuntu2504.deb/download)
- [](https://github.com/matinlotfali/KDE-Rounded-Corners/actions/workflows/debian12.yml)

[](https://sourceforge.net/projects/kde-rounded-corners/files/nightly/debian/kwin4_effect_shapecorners_debian12.deb/download)
- [](https://github.com/matinlotfali/KDE-Rounded-Corners/actions/workflows/debian13.yml)

[](https://sourceforge.net/projects/kde-rounded-corners/files/nightly/debian13/kwin4_effect_shapecorners_debian13.deb/download)
- [&logo=debian)](https://github.com/matinlotfali/KDE-Rounded-Corners/actions/workflows/debian-sid.yml)

- [](https://github.com/matinlotfali/KDE-Rounded-Corners/actions/workflows/tumbleweed.yml)

[](https://copr.fedorainfracloud.org/coprs/matinlotfali/KDE-Rounded-Corners/package/kwin-effect-roundcorners/)
- [](https://github.com/matinlotfali/KDE-Rounded-Corners/actions/workflows/fedora.yml)

[](https://copr.fedorainfracloud.org/coprs/matinlotfali/KDE-Rounded-Corners/package/kwin-effect-roundcorners/)
- [](https://github.com/matinlotfali/KDE-Rounded-Corners/actions/workflows/arch.yml)

[](https://aur.archlinux.org/packages/kwin-effect-rounded-corners-git)
[](https://aur.archlinux.org/packages/kwin-effect-rounded-corners-git)
[](https://aur.archlinux.org/packages/kwin-effect-rounded-corners-git)
- [](https://github.com/matinlotfali/KDE-Rounded-Corners/actions/workflows/neon.yml)

[](https://sourceforge.net/projects/kde-rounded-corners/files/nightly/neon/kwin4_effect_shapecorners_neon.deb/download)
- [](https://github.com/matinlotfali/KDE-Rounded-Corners/actions/workflows/neon-unstable.yml)

# Contributions:
- Compatibility of the effect with other effects like Wobbly windows
- Compatibility with KWin for Plasma versions 5.27 to 6.5
- Compatibility with HDR in Plasma 6.0
- Compatibility with split KWin codebase dependency starting version 6.4 - see [#383](https://github.com/matinlotfali/KDE-Rounded-Corners/pull/383)
- Optimize the effect to render once instead of 5 times - see [#49](https://github.com/matinlotfali/KDE-Rounded-Corners/pull/49)
- Smooth animation when a window moves to an active state
- Reimplementation with shaders, including shadows at corners and two outlines
- Ability to disable the effect when windows get maximized or tiled
- Cleanups for the plugin logic, remove unneeded dependencies from CMakeLists.txt file - by [alex1701c](https://github.com/alex1701c)
- Separate outline color for active and inactive windows - by [OrkenWhite](https://github.com/OrkenWhite)
- Support for language translations - by [VictorR2007](https://github.com/VictorR2007) (See [How to add more translations?](#how-to-add-more-languages-to-the-translation))
# How to install using unofficial repositories
Copr package at [matinlotfali/KDE-Rounded-Corners](https://copr.fedorainfracloud.org/coprs/matinlotfali/KDE-Rounded-Corners)
```bash
sudo dnf copr enable matinlotfali/KDE-Rounded-Corners
sudo dnf install kwin-effect-roundcorners # or kwin-effect-roundcorners-x11
```
AUR package by [xiota](https://aur.archlinux.org/account/xiota)
```bash
sudo pamac build kwin-effect-rounded-corners-git # or kwin-effect-rounded-corners-x11-git
```
NixOS package by [flexagoon](https:///flexagoon)
```bash
nix-env -iA nixos.kde-rounded-corners
```
# How to build from source code
You need to install development packages for your distribution first:
Debian based (Ubuntu, Kubuntu, KDE Neon)
- Plasma 6
```bash
sudo apt install git cmake g++ extra-cmake-modules kwin-dev qt6-base-private-dev qt6-base-dev-tools libkf6kcmutils-dev libdrm-dev
```
- Plasma 5 - by [alex47](https://github.com/alex47):
```bash
sudo apt install git cmake g++ extra-cmake-modules kwin-dev libkf5configwidgets-dev
```
Fedora
- Plasma 6 (Fedora 40 and later)
```bash
sudo dnf install git cmake gcc-c++ extra-cmake-modules kwin-devel kf6-kconfigwidgets-devel libepoxy-devel kf6-kcmutils-devel kf6-ki18n-devel qt6-qtbase-private-devel wayland-devel libdrm-devel
```
- Plasma 5 (Fedora 39)
```bash
sudo dnf install git cmake gcc-c++ extra-cmake-modules kwin-devel kf5-kconfigwidgets-devel kf5-ki18n-devel libepoxy-devel
```
Arch - by https://github.com/hexa-one
```bash
sudo pacman -S git cmake extra-cmake-modules base-devel
yay -S qt5-tools
```
OpenSUSE
- Plasma 6 (by [aaronkirschen](https://github.com/aaronkirschen))
```bash
sudo zypper in git cmake gcc-c++ kf6-kconfigwidgets-devel kf6-kcmutils-devel kwin6-devel kf6-kwindowsystem-devel qt6-quick-devel qt6-core-private-devel
```
- Plasma 5 (by [mathiasgredal](https://github.com/mathiasgredal), [Richardsause](https://github.com/Richardsause))
```bash
sudo zypper install git cmake gcc-c++ extra-cmake-modules libqt5-qttools-devel kconfigwidgets-devel kwindowsystem-devel kguiaddons-devel ki18n-devel knotifications-devel kwin5-devel libQt5Gui-devel libQt5OpenGL-devel libepoxy-devel libqt5-qtnetworkauth-devel
```
Void
by [lay-by](https://github.com/lay-by) and [tre-flip](https://github.com/tre-flip)
```bash
xbps-install git cmake make extra-cmake-modules gettext-devel kwin-devel kf6-kconfigwidgets-devel kf6-kcmutils-devel
```
---
Then clone the source code and compile it:
```bash
git clone https://github.com/matinlotfali/KDE-Rounded-Corners
cd KDE-Rounded-Corners
mkdir build
cd build
cmake ..
cmake --build . -j
sudo make install
```
Building for X11
If you are building for X11, use the command `cmake .. -DKWIN_X11=ON` instead of `cmake ..`
Building for KDE Linux distro
When building for [KDE Linux](https://community.kde.org/KDE_Linux) or other immutable distributions that do not provide tools like `rpm-ostree`, you cannot write to system paths such as `/usr`. To deploy a plugin in such environments, you need to build it into a user overlay and activate it using `systemd-sysext`.
To ensure the plugin is installed under the correct directory layout expected by KWin, use
```bash
cmake .. \
-DCMAKE_INSTALL_PREFIX=~/kde/usr \
-DKDE_INSTALL_PLUGINDIR=lib/qt6/plugins
```
instead of `cmake ..`, and also use `make install` **instead of** `sudo make install`.
Once built, you can prepare the overlay by placing it under `~/kde` and linking it into `/var/lib/extensions/kde`, where `systemd-sysext` expects extension roots to be located. The following command automates that:
```bash
sh ../tools/deploy-to-overlay.sh
```
This way, the plugin is installed in a form that `systemd-sysext` can recognize and load, while still preserving the integrity of the immutable root filesystem.
# How to load or unload the effect
To activate the effect, you can now log out and log back in, or run the command below inside the `build` directory:
```bash
sh ../tools/load.sh
```
To fully uninstall the effect, run the following commands inside the `build` directory:
```bash
sh ../tools/unload.sh
sudo make uninstall
```
# How to auto-install after KWin update
After each KWin package update, the effect becomes incompatible. So it won't load without a rebuild.
As long as the effect is not part of the KWin yet (being discussed
[here](https://invent.kde.org/plasma/kwin/-/issues/198)), you can automate the re-installation by running the command
below inside the `build` directory:
```bash
sh ../tools/install-autorun-test.sh
```
The command above adds a `.desktop` file inside the `autorun` directory which checks if the effect is still compatible,
If it is incompatible, the script will automatically rebuild and reinstall the effect.
> [!NOTE]
> The script uses `qdbus` to show a progress bar. On Plasma 6, it is not installed by default. You need to manually install the package `qtchooser`.
# How to adjust its settings
You can change the corner radius, outlines, exclusions, and more in:
> System Settings → Workspace Behavior → Desktop Effects → Rounded Corners
# Extra Tips
## How to add more languages to the translation
Translations are stored in `po//kcmcorners.po`. One can copy from other languages and start editing it in a different subdirectory of `po`.
If the `kcm.ui` changes, a new language template `.pot` can be generated by running the script `tools/generate-messages.sh`.
## How to add shadow to windows without decoration (like Steam)
You can add shadows for specific windows using the hack below.
1. In [ System settings ] → [ Window management ] → [ Window rules ] → [ Appearance & Fixes ]:
**Add [steam] and set [ No titlebar ] and frame to [ No ]**
2. In [ System settings ] → [ Application Style ] → [ Window decoration ] → [ Breeze theme setting ] → [ Window specific overrides ]:
**Add [steam] and set [ Hide Window title bar ] to [ Yes ].**
After that, the Steam window gets its shadows back.
## How to add debug messages
When troubleshooting or reporting an issue, it might be useful to enable Debug logs during the build time using:
```bash
cmake .. --DCMAKE_BUILD_TYPE=Debug
cmake --build . -j
```
You may also need to add the `default.debug=true` rule in `~/.config/QtProject/qtlogging.ini`. The example of the file content is:
```ini
[Rules]
*.debug=false
qt.qpa.xcb.xcberror.warning=false
default.debug=true
```
After the installation and loading the effect, debug messages would appear in `journalctl`:
```bash
journalctl -f | grep kwin
```
or have some colorful logs with
```bash
sh ../tools/show-kwin-logs.sh
```