=== Framework Kernel Module

Links: +
link:https://github.com/christian-moerz/framework-kmod[GitHub] URL: https://github.com/christian-moerz/framework-kmod[] +
link:https://bugs.freebsd.org/285448[Bugzilla] URL: https://bugs.freebsd.org/285448[]

Contact: Chris Moerz <freebsd@ny-central.org>

The development of the `framework-kmod` kernel module originated from discussions and collaborative efforts within the link:https://wiki.freebsd.org/LaptopDesktopWorkingGroup[FreeBSD Laptop and Desktop Workgroup (LDWG)].
This module addresses a specific need for dynamic screen dimming functionality, particularly suited for environments where full-featured desktop environments are not in use.

The primary feature of the framework-kmod kernel module is to dynamically dim the screen when the computer is not in use and to restore brightness upon detecting user activity.
This functionality is designed to enhance power efficiency and user experience, especially in minimalistic setups.

By default, the module dims the screen very aggressively, dimming it after approximately one second of inactivity.
This behavior ensures immediate power savings but may need adjustment based on user preferences.
The module's settings can be customized through sysctls, allowing users to tailor the behavior to their needs.
Users can set different brightness levels for the dimmed and bright states, adjust the length of time that needs to pass without any input signal before dimming the screen, and apply different settings depending on whether the laptop is running on a power outlet or battery.
Brightness levels can also be adjusted through the use of the keyboard's brightness control keys.

The module tracks input signals through man:evdev[4].
If no input is detected within the set timeout period, the screen brightness is reduced.
Upon detecting user input, the brightness is immediately restored to the previous level.
The module requires drm-kmod drivers to be loaded in advance, ensuring compatibility with the necessary graphics drivers.

The framework-kmod is not a general-purpose screen dimming driver.
It is specifically designed for use with tty consoles or simple window managers like suckless' dwm or i3.
Users of full-featured desktop environments like Gnome or KDE are advised to use the built-in screen dimming functions provided by those environments.

The development of this module was driven by the needs identified during LDWG calls, highlighting the collaborative nature of the workgroup.
A link:https://bugs.freebsd.org/285448[port of the framework-kmod] has been submitted, making it accessible for broader use and further development by the FreeBSD community.
