Maintainer
Project currently maintained by John Grimm, also known as Reaper.
Repository:
https://github.com/johngrimmreaper/acdcontrol
acdcontrol is a small Unix-style utility for querying and changing the brightness of supported Apple Cinema and Studio Displays through the HID interface exposed by Linux.
The project currently ships two command-line tools:
Project currently maintained by John Grimm, also known as Reaper.
Repository:
https://github.com/johngrimmreaper/acdcontrol
acdcontrol is usable today, but the hardware matrix is still growing.
Support in this repository should be understood in three layers:
A display not appearing in the official support list does not automatically mean it cannot work. It may simply mean it has not been tested and documented yet.
acdcontrol currently has very small build requirements: a C++ compiler and make.
Install the standard build toolchain:
sudo apt update sudo apt install build-essential
Install the compiler and build tool:
sudo dnf install gcc-c++ make
Clone this repository:
git clone https://github.com/johngrimmreaper/acdcontrol.git cd acdcontrol
Build both binaries:
make
New files named acdcontrol and acdprobe should appear in the same repository directory. If the build fails, make sure the required development tools are installed, for example build-essential on Debian/Ubuntu systems.
You can also use the helper script:
./acd-compile.sh
This uses the included docker-compose.yml file and requires Docker and Docker Compose.
Install the binaries and udev rules:
sudo make install
Reload the udev configuration and trigger the updated rules:
sudo udevadm control --reload sudo udevadm trigger
Remove the installed files with:
sudo make uninstall
For staged installs and packaging, you can override the install paths. For example:
make install DESTDIR=/tmp/acd-stage
./acdcontrol [--silent|-s] [--brief|-b] [--help|-h] [--about|-a] \ [--force|-f] [--detect|-d] [--list-all|-l] \ [--auto-brightness on|off|status] \ /dev/acdctlX [brightness]
Detection mode does not write brightness values, so it is the safest first step when identifying a candidate HID device.
Absolute form:
160
Relative increment:
+10
Relative decrement (note the required -- before the negative value):
-- -10
Brightness behavior and useful values may vary depending on the display model.
Show help:
./acdcontrol --help
List officially supported displays:
./acdcontrol --list-all
Detect which HID device belongs to the display:
./acdcontrol --detect /dev/acdctl*
Read the current brightness:
./acdcontrol /dev/acdctl0
Set an absolute brightness value:
./acdcontrol /dev/acdctl0 650
Increase brightness by 10:
./acdcontrol /dev/acdctl0 +10
Decrease brightness by 10:
./acdcontrol /dev/acdctl0 -- -10
Read auto-brightness status:
./acdcontrol /dev/acdctl0 --auto-brightness status
Enable auto-brightness:
./acdcontrol /dev/acdctl0 --auto-brightness on
Disable auto-brightness:
./acdcontrol /dev/acdctl0 --auto-brightness off
Probe a candidate device and save a report bundle:
./acdprobe --collect /dev/acdctl4
Build both binaries:
make
Remove built binaries:
make clean
Create a release archive:
make release
Install files into the live system:
sudo make install
Remove installed files from the live system:
sudo make uninstall
Stage files into an alternate root directory:
make install DESTDIR=/tmp/acd-stage
Use these entry points depending on what you need:
The long-term documentation direction is:
On Apple LED Cinema Display 27-inch (05ac:9226), controlled testing confirms that the standard VESA/MCCS ambient-light-sensor control is exposed through feature report 102 / usage 0x00820066.
Current interpretation:
The vendor-private fields are still under investigation and should not yet be treated as stable public interface guarantees.
Brightness ranges depend on the display model.
On the maintainer's tested Apple LED Cinema Display 27" (A1316), the effective brightness range is 0..1023. Other supported models may expose different useful ranges.
The display detection process is not fully automatic yet, because you still need to point the tool at a candidate HID device path.
On some systems, the first brightness read after boot may be inaccurate until a brightness value is written once. After that, readings are expected to be correct.
In practice, this is usually not a major issue because Cinema and Studio Displays store their brightness settings across sessions.
Native auto-brightness control is currently implemented for the Apple LED Cinema Display 27-inch identified as USB ID 05ac:9226.
On this model, the auto-brightness HID control has been mapped as a two-state feature:
When auto-brightness is enabled, the monitor itself adjusts the standard brightness control in response to ambient light.
Contributions are welcome, especially:
For probe collection and review workflow, see docs/probe-workflow.rst. For project history and acknowledgements, see CHANGELOG.rst and CREDITS.rst.
See COPYING and COPYRIGHT.