Sparkling gems and new releases from the world of Free and Open Source Software
Monitor controller
ddcutil
It's amazing that the same companies responsible for incredible display hardware engineering, weaving organic light-emitting diodes together at the sub-millimeter level, can't create a decent on-screen navigation menu system. Perhaps it's a case of hardware engineers versus software engineers, but for whatever reason, many otherwise wonderful screens are crippled by a single button and a menu system designed to test the patience of a saint. Fortunately, the hardware engineers have a trick themselves in the form of the Display Data Channel (DDC), a two-way communications protocol that can transfer messages between your computer and the majority of modern screens. This means we're free to reinvent those menus ourselves.
The extent of what can be controlled over DDC is entirely dependent on the monitor, but it usually includes the elements you can find in their on-screen menus, including brightness, color profiles, and input selection. The only problem is how you access this functionality as a user. The answer is a brilliant little command-line tool called ddcutil
, which enables access to whatever functionality your monitor hides within the DDC protocol. A good place to start is with its ddcutil detect
command, which will attempt to find any connected screens and report on their capabilities. If this fails to find enough details, the ddcutil interrogate
command will try harder and take longer. You can then use other commands, including setvcp
, display
, and watch
to configure a color profile, switch hardware input, and watch changes respectively. There's a lot more power and complexity here, which can take some unravelling, but it's still easier to use than your monitor's on-screen menu.
Project Website
Display input switcher
Buy this article as PDF
(incl. VAT)