Apple Cinema Display Control Utility for Linux

SourceForge Project Page
News
About
Credits
Documentation ( Compiling -- Running -- Known Limitations -- GUI -- Tips and Tricks )

News

05.04.2007
Version 0.4 is out thanks to Arne Zellentin who sent me his patchset!.
-Added option to change brightness relatively
-Fixed magic '%d' appeared in output.
-Updated help with usage examples
16.03.2007
Some files in the tarball somehow had Windows encoding.
A lot of thanks to Veit Wahlich for building Fedora Core 6 RPMs. The other RPM-based systems may use source RPM by issuing the command
rpmbuild --rebuild acdcontrol-0.3-1.cru.src.rpm
The pre-built packages are available from the download section, too.
15.03.2007
Version 0.3 is out.
This version supports 24" Apple Cinema Display (Thanks to Charles Lepple).
Added copying and copyright info (GPL2 text).
09.09.2006
This post is mainly due to the kind contribution of Veit Wahlich (cru [ at ] ircnet.de).
30" Apple Cinema HD Display support was added. Veit also created SysV init-scripts for boot-time control of one or more Apple displays. Additionally, there are pre-built RPMs for Fedora Core and CentOS/RedHat Enterprise Linux. Currently, acdcontrol RPMs are available for Fedora Core 4 only, but work well on FC5. Native FC5 RPMs will soon be available from the site mentioned below. FC3 and CentOS4/RHEL4 RPMs will be built on request, FC6 RPMs right after release.
Note: I'm not a Fedora user, but I very appreciate this kind of contribution and want to publicly thank Veit for this.
Please, visit http://naturidentisch.de/packages/fc4/acdcontrol/ to grab source RPMs and pre-built packages. The packages will also be available from this site, soon.
I want to stress that acdcontrol is available under GPL v.2 license.
23.01.2005
Added multiple monitors and detection support, see the updated documentation.
Version 0.12 released.
GUI writing is started
27.12.2004
Confirmed to work with Samsung SyncMaster 757NF. I'll continue to work on GUI to support all the standard features. It will take some time, but come back from time to time. You can also bomb the forum :) To control the brightness of a USB display other than an Apple display, you need to use --force option. This option is available in CVS version only. Today I'm too sleepy for a release, sorry.
24.12.2004
I've got an information how to take care of other model of monitors, I hope. If this works with other monitors, I'll release a new version, soon
24.12.2004
Initial version 0.1 released.

About

I've written this small utility to be able to control a wonderful Apple Cinema Display I've got recently. As there was no such software in public (at least, I did not manage to find it), I have written one. Hope, it will help somebody else. If you use this program, I'll appreciate if you'll notify me; that will mean that this piece of software isn't totally useless :).

Credits

This program would never possibly come out without valuable help of Andre Beckedorf. Andre wrote a similar software for Windows. Please, visit http://metaexception.de/.
Andre would like to thank to people that helped him to write his software and I'd like to join him as they helped me, too:

Documentation

Whereas this documentation seems to be far from perfect, its should enable you installing and running the program fast and without problems.
However if you need an assistance, please, visit the forum and ask your question there.

Compiling

First, download a tarball, save and unpack it. Then, change to directory you have unpacked files and type:
make
You will get an executable named acdcontrol in the current directory.

Alternatively, you can download source RPM file and issue
rpmbuild --rebuild acdcontrol-<version>.src.rpm
if you use an RPM-based system.

Usage

./acdcontrol [--silent|-s] [--brief|-b] [--help|-h] [--about|-a] [--detect|-d] [--list-all|-l] <hid device(s)> [<brightness>]

Parameters

--silent,-s
Suppress non-functional program output
--brief,-b
Print brightness value only when in query mode, otherwise ignored.
--help,-h
Show short help message and quit.
--about,-a
Show information about the program, some credits and thanks.
--detect,-d
Run program in the detection mode. In this mode no writes are performed to device so you can use any number of files if you are not sure that your monitor(s) are supported.
--list-all,-l
Lists all "officially" supported monitors and quits. If you do not see the device, this does not mean that it won't work it simply means that I did not tested it on such a device. I'll appreiciate if you submit your information in the forum for any display that works
hid device
device that represents your Apple Cinema display. It should be one of /dev/usb/hiddevX or /dev/hiddevX.

Note

You must have write permissions to this device in order to control the display being user, not root. If you have no such permissions, you can either grant read/write permission to world:
chmod a+rw /dev/usb/hiddevX
or change an ownership:
chown <your user name>:users /dev/usb/hiddevX
under root. Or ask your Linux guru friend to do so ;)

Note

It should be safe to run the program on other device than Apple Cinema/Studio display as the program checks whether the device is Apple display and warns about it.
brightness
When this option is specified, the operation is set brightness, otherwise, current brightness is retrieved. If brightness starts with '+' or '-', the current brightness is increased or decreased by that value. (Note: You have to place -- before the negative value!)
Brightness is a parameter ranged [0-255].
Note, that not every value toggles the backlight power; different Apple Display models have different granularity. I use Apple Cinema 20" (clear plastic) and I'm feeling comfortable with the value of 160. I set 0, however, to see films in the darkness. See also: --brief option and Known Limitations section.

Examples

In the following examples I assume that your HID device is /dev/hiddev0. You may have it as /dev/hiddevX or /dev/usb/hiddevX.
acdcontrol
acdcontrol --help
Show long help message.
acdcontrol --detect /dev/hiddev*
Perform detection, which HID device is actually your display to be controlled.
acdcontrol /dev/hiddev0
Read current brightness parameter
acdcontrol /dev/hiddev0 160
Set brightness to 160. Note, that brightness setting depends on your model. Generally, this parameter may get values in the range [0-255].
acdcontrol /dev/hiddev0 +10
Increment current brightness by 10.
acdcontrol /dev/hiddev0 -- -10
Decrement current brightness by 10. Please,note --!

Known Limitations

GUI

I have also written a GUI program for controlling a display; I'll make it available to public, soon.

Tips and Tricks

After I've created this program, I've also created several aliases: nb for normal brightness (160), hb for high brightness (255) and lb for low brightness (0).

I've also created keyboard shortcuts in KDE (if you use a different DE, you can surely do it in your way) as <Win>+F12 for hight brightness, <Win>+F11 and <Win>+F10 for normal and low brightness, accordingly. I've also created shortcut <Win>+F9 to launch sleep 3; xset dpms force off and by this turn off monitor (I actually have 2; it turns off both)

If you use KDE, I think, acdcontrol can integrate into klcddimmer applet.

Note: Enable DPMS in your X configuration file (xorg or XFree86) before using xset ... as otherwise you'll just have display blank but not off!

SourceForge.net Logo