Skip to content
Federico Di Pierro edited this page Nov 1, 2020 · 44 revisions

Clightd offers a bus interface at org.clightd.clightd that is splitted into various objects paths/interfaces.

/org/clightd/clightd

Properties

Prop OUT OUT values Writable Const
Version s
  • Clightd version

/org/clightd/clightd/Backlight

Methods

Backlight Smooth struct:

  • b -> isSmooth (true for smooth change)
  • d -> smooth step (eg: 0.02)
  • u -> smooth timeout: timeout for smoothing in ms
Method IN IN values OUT OUT values Polkit restricted Xorg Wayland tty
GetAll s
  • Backlight interface for internal monitor (Nullable)
a(sd)
  • Array of struct with serialNumber and current backlight pct for each screen
SetAll d(bdu)s
  • Target pct
  • Backlight Smooth struct
  • Internal laptop's screen interface (Nullable)
b
  • True if no error happens
RaiseAll d(bdu)s
  • Relative to current backlight pct target pct
  • Backlight Smooth struct
  • Internal laptop's screen interface (Nullable)
b
  • True if no error happens
LowerAll d(bdu)s
  • Relative to current backlight pct target pct
  • Backlight Smooth struct
  • Internal laptop's screen interface (Nullable)
b
  • True if no error happens
Get s
  • Backlight serial
sd
  • Struct with serialNumber and current backlight pct for desired screen
Set d(bdu)s
  • Target pct
  • Backlight Smooth struct
  • Desired backlight serial
b
  • True if no error happens
Raise d(bdu)s
  • Relative to current backlight pct target pct
  • Backlight Smooth struct
  • Desired backlight serial
b
  • True if no error happens
Lower d(bdu)s
  • Relative to current backlight pct target pct
  • Backlight Smooth struct
  • Desired backlight serial
b
  • True if no error happens

Note that passing an empty/NULL string as internal backlight interface parameter will make clightd use first device it finds (through libudev and ddcutil)!

For external monitors, you should use device Serial Number or I2C bus, as found through:

sudo ddcutil detect
Display 1
I2C bus:             /dev/i2c-1
EDID synopsis:
Mfg id:           ACI
Model:            ASUS VX239
Serial number:    G2LMTJ006007
Manufacture year: 2016
EDID version:     1.3
VCP version:         2.1

Signals

Sig OUT OUT values
Changed sd
  • Backlight interface
  • New backlight level

/org/clightd/clightd/Gamma

Methods

Gamma Smooth struct:

  • b -> isSmooth (true for smooth change)
  • u -> smooth step (eg: 50)
  • u -> smooth timeout: timeout for smoothing in ms
Method IN IN values OUT OUT values Polkit restricted Xorg Wayland tty
Get ss
  • env DISPLAY
  • env XAUTHORITY
i
  • Current display gamma temp
Set ssi(buu)
  • env DISPLAY
  • env XAUTHORITY
  • New gamma value
  • Gamma Smooth struct
b
  • True if no error happens

Signals

Sig OUT OUT values
Changed si
  • Display
  • New temp

/org/clightd/clightd/Sensor

Methods

Method IN IN values OUT OUT values Polkit restricted Xorg Wayland tty
Capture sis
  • Sensor sysname(eg: Video0 for webcam) (Nullable)
  • Number of frames to be captured
  • Sensor settings string (Nullable)
sad
  • Sensor sysname captured
  • Array of frames' brightness in pct
IsAvailable s
  • Sensor sysname(eg: Video0) to be checked. (Nullable)
sb
  • Sensor sysname found
  • True if any sensor could be found

To know more about Sensor API and available settings strings, head to Sensors wiki page.

Note that passing an empty/NULL string as device sysname will make clightd use first sensor device it finds (through libudev).

Signals

Sig OUT OUT values
Changed ss
  • Sensor's devpath
  • Action string, as received from udev. Eg: "add", "remove"

When a new sensor becomes available, a "Changed" signal is sent on both /org/clightd/clightd/Sensor and /org/clightd/clightd/Sensor/$SensorType object paths.

/org/clightd/clightd/Dpms

Note that besides main object path, Dpms exposes 3 "plugins" paths:

  • /org/clightd/clightd/Dpms/Xorg
  • /org/clightd/clightd/Dpms/Wl
  • /org/clightd/clightd/Dpms/Drm

When calling any of those, their plugin will be used; when calling main object path first available plugin will be used instead given the above priority-listed list.

Methods

Method IN IN values OUT OUT values Polkit restricted Xorg Wayland tty
Get ss
  • env DISPLAY
  • env XAUTHORITY
i
  • Current dpms state
Set ssi
  • env DISPLAY
  • env XAUTHORITY
  • New dpms state
i
  • New setted dpms state

Signals

Note that a signal will be sent on both main object path and used plugin's path.

Sig OUT OUT values
Changed si
  • Display
  • New DPMS level

/org/clightd/clightd/Idle

Idle interface is "client" based: you request a new Idle client, set required Client's properties, and then start it. When you are finished, you can stop it and destroy it.
Note that caller is validated against desired client, ie: if you created Client0, you can only call methods and set properties on Client0. If you try on Client1, you will receive EPERM error.

Methods

Method IN IN values OUT OUT values Polkit restricted Xorg Wayland tty
GetClient o
  • New Idle client's object path
DestroyClient o
  • Client's to be destroyed

/org/clightd/clightd/Idle/ClientX

Properties

Prop OUT OUT values Writable Const
Timeout u
  • Client's timeout in seconds

Methods

Method IN IN values OUT OUT values Polkit restricted Xorg Wayland tty
Start
Stop

Signals

Sig OUT OUT values
Idle b
  • New idle value for Client

/org/clightd/clightd/Screen

Screen module offers an easy way to compute currently screen-emitted brightness.

Methods

Method IN IN values OUT OUT values Polkit restricted Xorg Wayland tty
GetEmittedBrightness ss
  • env DISPLAY
  • env XAUTHORITY
d
  • Current screen-emitted brightness, in pct
Clone this wiki locally