Dimwit is a native Linux system tray application for controlling the brightness of external monitors using DDC/CI. It allows for per-monitor control, synchronous brightness adjustment across all displays, and an automated daytime scheduling feature.
Note
Please note that this application has been developed with the use of local LLMs and Gemini for the purpose of trying the tools.
- Per-Monitor Control: Adjust brightness sliders for each connected display individually.
- Sync Brightness: Link all monitor sliders to change brightness across all screens simultaneously.
- Auto-Brightness Schedule: Define a schedule to automatically interpolate brightness levels throughout the day.
- System Tray Integration: Stays out of the way in your system tray for quick access.
To build and run Dimwit, you need to install some dependencies:
On Ubuntu/Debian, you can typically install these with:
sudo apt update
sudo apt install build-essential cmake qt6-base-dev libddcutil-dev ddcutilOn Arch Linux, you can install them with:
sudo pacman -S base-devel cmake qt6-base ddcutil-
Clone the repository:
git clone https://github.com/FoolHen/dimwit.git cd dimwit -
Create a build directory and compile:
mkdir build cd build cmake .. cmake --build .
After building, you can run the application directly from the build directory:
./DimwitTip
If you want to use the auto-brightness schedule, don't forget to add the application to your startup applications.
The auto-brightness schedule and settings are stored in:
~/.config/dimwit/schedule.json
Dimwit requires access to the I2C bus to communicate with your monitors. Some Linux distros don't allow non-root users to access it by default. In that situation, this might help:
-
Add your user to the
i2cgroup:sudo usermod -aG i2c $USER -
Ensure the
i2c-devmodule is loaded:sudo modprobe i2c-dev
To make this permanent, add
i2c-devto a file in/etc/modules-load.d/. -
Log out and log back in (or reboot) for the new group membership to take effect.
This project is licensed under the conditions specified in the LICENSE.md file.


