#amdgpu #libdrm #linux #x11 #xorg #nvidia #i915 #ctm

libvibrant

A library to control screen saturation on X servers

8 stable releases

1.1.1 Jan 15, 2021
1.0.6 Jan 13, 2021
1.0.5 Jan 6, 2021
1.0.3 Jan 5, 2021
1.0.0 Jan 3, 2021

#322 in Unix APIs

Download history 17/week @ 2023-10-29 15/week @ 2023-11-05 5/week @ 2023-11-12 5/week @ 2023-11-19 33/week @ 2023-11-26 21/week @ 2023-12-03 12/week @ 2023-12-10 4/week @ 2023-12-17 21/week @ 2023-12-24 11/week @ 2023-12-31 7/week @ 2024-01-07 13/week @ 2024-01-14 12/week @ 2024-01-21 20/week @ 2024-01-28 4/week @ 2024-02-04 34/week @ 2024-02-11

79 downloads per month
Used in libvibrant-ffi

Custom license

20KB
420 lines

Logo vibrant

⚠️ NOTE ⚠️

libvibrant is in maintenance-only right now, as it's rather feature-complete. As I (@Scrumplex) have switched to Wayland for some time now, I can't and won't work on this library anymore. An effort for Wayland is planned in the future, though it will take some time until this can be implemented in a compositor-agnostic way.


A simple library to adjust color saturation of X11 outputs.

vibrant, with it's library libvibrant and it's command-line tool vibrant-cli, allows you to adjust the color saturation on X11 outputs, as long as the CTM property is supported.

Usage

$ vibrant-cli OUTPUT [SATURATION]

Get or set saturation of output.

OUTPUT is the name of the X11 output. You can find this by running xrandr. SATURATION is a floating point value between (including) 0.0 and (including) 4.0.

  • 0.0 or 0 means monochrome
  • 1.0 or 1 is normal color saturation (100%)
  • if empty the saturation will not be changed

Examples

150% on DisplayPort-0

$ vibrant-cli DisplayPort-0 1.5

Monochrome on DisplayPort-0

$ vibrant-cli DisplayPort-0 0

Reset DisplayPort-0

$ vibrant-cli DisplayPort-0 1

Only query current saturation on DisplayPort-0

$ vibrant-cli DisplayPort-0

Compatibility

vibrant supports most modern GPUs.

AMD GPUs

  • Your card needs to be supported by the AMD Display Code kernel driver

NVIDIA GPUs

  • Currently only the NVIDIA proprietary driver is supported
  • Support is handled by libXNVCtrl, which should be bundled with most installations of the driver

Confirmed working

  • NVIDIA GeForce GTX 660
  • Radeon RX 5700 XT
  • Radeon RX 5600 XT
  • Radeon VII
  • Radeon RX Vega 56
  • Radeon RX 580
  • Radeon RX 470
  • Radeon R9 270

Installation

Arch Linux

vibrant is available on the Arch Linux User Repository, maintained by me.

  • vibrantAUR - Latest release of the vibrant library and vibrant-cli
  • vibrant-gitAUR - Latest revision from Git master of the vibrant library and vibrant-cli

Other Distros

See Bulding

Building

This project uses CMake.

Dependencies

  • libX11
  • libXrandr (possibly bundled with libX11)
  • libXNVCtrl (possibly bundled with nvidia-settings)

Basic building

$ cd <project directory>
$ mkdir build
$ cd build
$ cmake ..
$ make

The binary will be called vibrant-cli and will be linked to libvibrant.so.0

License

This project is licensed under the terms of the GNU General Public License 3.0. You can read the full license text in LICENSE.

Additionally this project is based on color-demo-app written by Leo (Sunpeng) Li sunpeng.li@amd.com, licensed under the terms of the MIT license. You can read it's full license text in NOTICE

Dependencies

~0.8–3MB
~63K SLoC