Code
Search code
Reviewed-on: #4
This is a tool that acts as an ICC Profile editor for VCGTs.
It applies changes through KDE's screen management API on Plasma, or directly
through wlr-gamma-control-unstable-v1 on Hyprland and compatible Wayland
compositors. The backend is selected automatically at runtime.
Building
On Fedora, install the build dependencies with:
sudo dnf install cmake extra-cmake-modules gcc-c++ ninja-build \
pkgconf-pkg-config qt6-qtbase-devel qt6-qtdeclarative-devel \
kf6-ki18n-devel kf6-kirigami-devel kf6-kglobalaccel-devel kf6-kdbusaddons-devel \
libkscreen-devel lcms2-devel wayland-devel wayland-protocols-devel
On Arch Linux, install them with:
sudo pacman -S --needed cmake extra-cmake-modules gcc ninja pkgconf \
qt6-base qt6-declarative ki18n kirigami kglobalaccel kdbusaddons libkscreen lcms2 wayland
Run make to configure and build a debug version with CMake and Ninja. Use make run to rebuild and launch the application. The build directory and build type can be overridden, for example:
make BUILD_DIR=build-release BUILD_TYPE=Release
Use make release for the usual optimized build. To build an optimized version and install it for only the current user under ~/.local, run:
make install-local
For a system-wide install, set PREFIX=/usr and run the install with the appropriate privileges. Packagers can stage an install without changing the live system by setting DESTDIR, for example make install PREFIX=/usr DESTDIR=/tmp/kgamma-package. Run make uninstall with the same PREFIX to remove an installation.
AI assistance and relationship to upstream
AI assistance was used for figuring out stuff and design. I use it to help with areas I do not yet know well, while reviewing, testing, and directing the resulting changes around my own requirements.
I do not currently plan to upstream these changes. This fork targets a very specific use case: gaming, especially osu!, and adapts the workflow to be more familiar to players. It also makes product and design decisions that may not be appropriate for, or accepted by, the upstream project.
I am very grateful to the original maintainer for taking the first steps and making progress on this application. That work provided the foundation which allowed this fork to arrive at a solution that works well for its intended use.