can't maintain this anymore... thanks everyone.
feel free to continue the project if you wish.
KWin-lowlatency is (was?) my attempt to reduce latency and stuttering in the popular KWin compositor used in KDE. since Plasma 5.21 the developers merged official patches which rewrite great parts of the compositing code, putting it on par with former KWin-lowlatency.
however, there's one thing that's not there yet: X11 full-screen unredirection....
the main aim of this project is to add additional settings to the compositor and bring back unredirection based on the direct scanout code. see unredirect.md for more details.
- perfect. it tries its best to allow full-screen unredirection to happen, but I can't promise this is always the case.
- truly designed for low-end systems. if you use KWin-lowlatency in one of them, you may experience stuttering.
kwin-lowlatency is available in the AUR.
also available as a package in the CachyOS repository. thanks ptr1337!
Manjaro has updated Plasma to 5.23! follow the Arch Linux instructions.
available at home:DarkWav:kwin-lowlatency. Leap is on 5.18 though.
you can compile/install this yourself if your distro isn't listed here, or if you merely want to.
you may need to install specific dependencies before compiling. here you can find a list.
you can get the source code by using any of the following 2 methods:
$ git clone https://github.com/tildearrow/kwin-lowlatency.git
$ cd kwin-lowlatency
if you are not using the latest major version of Plasma (you can check by doing kwin_x11 --version
), you may want to check out the branch for your version, e.g.:
$ git checkout Plasma/5.23
you may want to check the current stable version out:
$ git checkout v5.23.5
download stock KWin source and patch file:
$ wget https://download.kde.org/stable/plasma/5.23.5/kwin-5.23.5.tar.xz
$ wget https://tildearrow.org/storage/kwin-lowlatency/kwin-lowlatency-5.23.5.patch
extract:
$ tar -xvf kwin-5.23.5.tar.xz
patch:
$ cd kwin-5.23.5
$ patch -p1 < ../kwin-lowlatency-5.23.5.patch
Ubuntu uses a different library path, which means you'll have to tweak the library dir:
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu -DCMAKE_INSTALL_LIBEXECDIR=lib/x86_64-linux-gnu -DBUILD_TESTING=OFF ..
$ make
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_LIBEXECDIR=lib -DBUILD_TESTING=OFF ..
$ make