Skip to content

Hardware

Marchyo enables common hardware support (Bluetooth, Thunderbolt, power management) by default. Some peripheral-specific support is opt-in.

Option Default Description
marchyo.hardware.camera.waitForAccess desktop Delay WirePlumber at login until camera devices are accessible
marchyo.hardware.ddc.enable true DDC/CI external-monitor brightness (ddcutil, i2c bus + group), desktop-only

Enable support for Logitech Unifying / Bolt receivers and the Solaar management GUI with the NixOS option:

{
programs.solaar.enable = true;
}

This also turns on hardware.logitech.wireless, so you can pair devices and tune per-device settings, and arms the shell’s Solaar fallback for device batteries. (marchyo.hardware.logitech.enable is a deprecated alias.)

libcamera opens each camera’s media device once, when WirePlumber starts. At login the user manager can start WirePlumber a moment before logind grants the session access to the seat’s devices, which leaves the camera missing until WirePlumber restarts. With marchyo.hardware.camera.waitForAccess (on with the desktop), WirePlumber waits up to five seconds for the uaccess media devices to become readable. Opt out with marchyo.hardware.camera.waitForAccess = false.

Enabled by default with the desktop. Marchyo loads the i2c-dev module and its udev rules (hardware.i2c), installs ddcutil, and adds Marchyo users to the i2c group so brightness/contrast of external DP/HDMI/VGA displays can be set over the i2c bus. Laptop panels use backlight controls instead. Opt out with:

{
marchyo.hardware.ddc.enable = false;
}