{ config, lib, pkgs, ... }: with lib; let cfg = config.custom.services.udev; in { options.custom.services.udev.enable = mkOption { default = false; }; config = mkIf cfg.enable { # https://wiki.archlinux.org/title/Udev # Allow video group to change display brightness # https://raw.githubusercontent.com/ErikReider/SwayOSD/main/data/udev/99-swayosd.rules services.udev.extraRules = let chgrp = "${pkgs.coreutils}/bin/chgrp"; chmod = "${pkgs.coreutils}/bin/chmod"; in '' ACTION=="add", SUBSYSTEM=="backlight", RUN+="${chgrp} video /sys/class/backlight/%k/brightness" ACTION=="add", SUBSYSTEM=="backlight", RUN+="${chmod} g+w /sys/class/backlight/%k/brightness" ''; }; }