nvutils

[About] [Download] [Changelog] [Command-line Usage] [Simple Usage] [Forum]

About

nvutils is a set of command-line userspace programs that allows changing parameters of monitor and videocard, controlled by official nVidia X11 drivers.
NB: only official nVidia X11 drivers are supported. For other drivers/cards try ddccontrol or ddcci-tool. If you're interested in nVidia-overclocking only you should also check nvclock.

Initially nvutils were written to change brightness and contrast of displays that has no front-panel buttons, since software provided with such displays (Samsung's MagicTune, Sony's NaViSet, etc.) usually do not support Linux. But currently they allow to change a lot of various parameters. Examples of supported attributes:
(actual list of supported features may vary depending on monitor/card/driver used)

Download

nvutils sources: nvutils-0.2.1.tar.bz2
See also SourceForge project page

NB: To use DDC/CI-specific attributes you'll need to turn on "AllowDDCCI" option in Device section of your xorg.conf. And to get access to overclocking settings there should be "Coolbits" option set. So the Device section may look like this:
...

Section "Device"
  Identifier  "Videocard0"
  Driver      "nvidia"
  Option      "AllowDDCCI" "1"
  Option      "Coolbits" "1"
  Option      "AddARGBGLXVisuals" "True"
EndSection

...

Changelog

nvutils-0.2.1
=============
* fixed detection of connected displays (first found is used)
+ nvmontune: print name of used display in verbose mode

nvutils-0.2
===========
+ nvattrget: display names and known values for most options
  (detailed descriptions are in nvidia's NVCtrl.h)
+ nvmontune: -s (save settings) parameter
+ nvmontune: -d (restore defaults) parameter
+ nvmontune: support for incremental change of brightness/contrast
* permission checks added to all utilities to prevent nvidia driver crashing X-server.

Command-Line Usage

Currently nvutils include the following tools:
nvutils$ nvmontune
nvmontune - program to tune brightness/contrast of
DDC/CI-compatible monitors through closed NVidia drivers
Usage:
  nvmontune [-v] [-d] [-s] [<brightness> [<contrast>]]
Parameters:
  -v  - verbose (print old and new values)
  -d  - restore factory defaults
  -s  - save changes (otherwise they'll stay only while monitor is on)
  <brightness> and <contrast> are numbers 0..100
  (use +value or -value to increase/decrease it)
Example:
  nvmontune 80 50
  nvmontune +10 +5
  nvmontune -20 -40
Current settings are:
(using display 'Samsung SyncMaster', mask=0x10000)
brightness: 80% (80 of 0..100) (perm=047)
contrast  : 50% (50 of 0..100) (perm=047)

nvutils$ nvmontune -v 40 25
(using display 'Samsung SyncMaster', mask=0x10000)
brightness: 80% (80 of 0..100) (perm=047)
contrast  : 50% (50 of 0..100) (perm=047)
brightness changed (40 of 0..100)
contrast changed (25 of 0..100)

nvutils$ nvattrget
Get raw value of nvidia attribute
Usage:
  nvattrget [-v] <attribute-code>
Parameters:
  -v  - verbose (print description, ranges, permissions...)
  <attribute-code>  - a number from 2 to ~300
Example:
  nvattrget 60
reads GPU temperature.

nvutils$ nvattrset
Set raw value of nvidia attribute
USAGE:
  nvattrset <attribute-code> <value>
Example:
  nvattrset 128 20
sets monitor contrast to 20.

nvutils$ nvattrget 60
59
nvutils$ nvattrget -v 60
GPU_CORE_TEMPERATURE ( 60) type INTEGER (1), perms: [R--G-X--] READ GPU X_SCREEN, value=59(0x3b)
nvutils$ nvattrset 231 1

nvutils$

nvutils$ nvattrlist
Trying to read all attributes. May take some time...
FLATPANEL_SCALING   (  2) is not supported
FLATPANEL_DITHERING (  3) type UNKNOWN (0), perms: [---GFX-V] GPU FRAMELOCK X_SCREEN VCSC, known values: DEFAULT(0) ENABLED(1) DISABLED(2)
DIGITAL_VIBRANCE    (  4) type RANGE   (4), perms: [RWDG-X--] READ WRITE DISPLAY GPU X_SCREEN, values range: 0..1023, value=0(0x0)
BUS_TYPE            (  5) type RANGE   (4), perms: [R--G-X--] READ GPU X_SCREEN, values range: 0..3, value=2(0x2), known values: AGP(0) PCI(1) PCI_EXPRESS(2) INTEGRATED(3)
VIDEO_RAM           (  6) type INTEGER (1), perms: [R--G-X--] READ GPU X_SCREEN, value=262144(0x40000)
IRQ                 (  7) type INTEGER (1), perms: [R--G-X--] READ GPU X_SCREEN, value=16(0x10)
OPERATING_SYSTEM    (  8) type RANGE   (4), perms: [R--G-X--] READ GPU X_SCREEN, values range: 0..2, value=0(0x0), known values: LINUX(0) FREEBSD(1) SUNOS(2)
SYNC_TO_VBLANK      (  9) type BOOL    (3), perms: [RW---Xi-] READ WRITE X_SCREEN XINERAMA, value=0(0x0), known values: OFF(0) ON(1)
LOG_ANISO           ( 10) type RANGE   (4), perms: [RW---Xi-] READ WRITE X_SCREEN XINERAMA, values range: 0..4, value=0(0x0)
FSAA_MODE           ( 11) type INT_BITS(5), perms: [RW---Xi-] READ WRITE X_SCREEN XINERAMA, supported values: 0 1 5 7 8 10 12, value=0(0x0), known values: NONE(0) 2x(1) 2x_5t(2) 15x15(3) 2x2(4) 4x(5) 4x_9t(6) 8x(7) 16x(8) 8xS(9) 8xQ(10) 16xS(11) 16xQ(12) 32xS(13)
TEXTURE_SHARPEN     ( 12) type BOOL    (3), perms: [RW---Xi-] READ WRITE X_SCREEN XINERAMA, value=0(0x0), known values: OFF(0) ON(1)
UBB                 ( 13) is not supported
OVERLAY             ( 14) is not supported
UNKNOWN             ( 15) type UNKNOWN (0), perms: [---GFX-V] GPU FRAMELOCK X_SCREEN VCSC
...

Simple Usage

If you don't want to mess with command-line every time you want to change the brightness, there's a simple usage method.
Create two shortcuts in your KDE menu (or whatever desktop environment you use):
1. "Increase Brightness and Contrast" pointing to "nvmontune +20 +20"
2. "Decrease Brightness and Contrast" pointing to "nvmontune -20 -20"
And assign hotkeys to them (i.e. Ctrl+Alt+ArrowUp and Ctrl+Alt+ArrowDown). So to change the brightness you need just press the hotkey.
SourceForge.net Logo