Skip to content
Federico edited this page Jun 13, 2019 · 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 subsystem matching device it finds (through libudev) for SetAll/GetAll/RaiseAll/LowerAll methods!

Note that Set/Get/Lower/Raise methods require an existent serial to be passed as parameter. You cannot pass a NULL/empty string, not even for internal laptop backlight.

In Set/Get/Lower/Raise methods, for external monitors, you should pass 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

/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

/org/clightd/clightd/Sensor

Methods

Method IN IN values OUT OUT values Polkit restricted Xorg Wayland tty
Capture si
  • Sensor sysname(eg: Video0 for webcam) (Nullable)
  • Number of frames to be captured
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

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"

Supported sensors, by priority:

  • ALS devices
  • Camera devices

For each supported device type, a new object path that implements same interface as /org/clightd/clightd/Sensor will be created to forcefully use that device's type. So these objects' paths are available too:

  • /org/clightd/clightd/Sensor/Als
  • /org/clightd/clightd/Sensor/Camera

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

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

Note: TTY is detected whenever an empty/NULL string is passed as env DISPLAY.

/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 s
  • env DISPLAY
d
  • Current screen-emitted brightness, in pct
Clone this wiki locally