From 9567824de75e24da5dc1c05b996f3cd30aae2cee Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 9 Dec 2025 03:09:57 +0100 Subject: tv.lidControl -> hrm.lid-handler --- modules/lid-handler.nix | 57 +++++++++++++++++++++++++++++++++++++++++++++++++ modules/lidControl.nix | 57 ------------------------------------------------- 2 files changed, 57 insertions(+), 57 deletions(-) create mode 100644 modules/lid-handler.nix delete mode 100644 modules/lidControl.nix diff --git a/modules/lid-handler.nix b/modules/lid-handler.nix new file mode 100644 index 0000000..d89aced --- /dev/null +++ b/modules/lid-handler.nix @@ -0,0 +1,57 @@ +{ config, lib, pkgs, ... }: { + options = { + hrm.lid-handler.enable = lib.mkEnableOption "hrm.lid-handler"; + }; + config = let + cfg = config.hrm.lid-handler; + in lib.mkIf cfg.enable { + services.acpid.enable = true; + services.acpid.lidEventCommands = /* sh */ '' + lid_state=$(${pkgs.gawk}/bin/awk '{print$2}' /proc/acpi/button/lid/*/state) + + # usage: vt_is_xserver NUMBER + vt_is_xserver() { + ${pkgs.iproute2}/bin/ss -lp src unix:/tmp/.X11-unix/X* | + ${pkgs.gnused}/bin/sed -n 's|.*/tmp/.X11-unix/X\([0-9]\+\)\>.*|\1|p' | + ${pkgs.gnugrep}/bin/grep -Fqx "$1" + } + + console=$(${pkgs.kbd}/bin/fgconsole) + + if vt_is_xserver "$console"; then + # usage: run_on_display COMMAND [ARG...] + run_on_display() { + owner=$(${pkgs.coreutils}/bin/stat -c %u /tmp/.X11-unix/X$console) + ${pkgs.systemd}/bin/systemd-run -GPq \ + -E DISPLAY=:$console \ + --uid=$owner \ + "$@" + } + case $lid_state in + open) + run_on_display ${pkgs.xorg.xset}/bin/xset dpms force on + ;; + closed) + run_on_display ${pkgs.xorg.xset}/bin/xset dpms force off + ;; + esac + else + case $lid_state in + open) + ${pkgs.brightnessctl}/bin/brightnessctl --restore >/dev/null 2>&1 + ;; + closed) + brightness=$(${pkgs.brightnessctl}/bin/brightnessctl --quiet get) + if test "$brightness" -gt 0; then + ${pkgs.brightnessctl}/bin/brightnessctl --save >/dev/null 2>&1 + ${pkgs.brightnessctl}/bin/brightnessctl --quiet set 0 + fi + ;; + esac + fi + ''; + services.logind.settings.Login.HandleLidSwitch = "ignore"; + services.logind.settings.Login.HandleLidSwitchDocked = "ignore"; + services.logind.settings.Login.HandleLidSwitchExternalPower = "ignore"; + }; +} diff --git a/modules/lidControl.nix b/modules/lidControl.nix deleted file mode 100644 index b9297c9..0000000 --- a/modules/lidControl.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ config, lib, pkgs, ... }: { - options = { - tv.lidControl.enable = lib.mkEnableOption "tv.lidControl"; - }; - config = let - cfg = config.tv.lidControl; - in lib.mkIf cfg.enable { - services.acpid.enable = true; - services.acpid.lidEventCommands = /* sh */ '' - lid_state=$(${pkgs.gawk}/bin/awk '{print$2}' /proc/acpi/button/lid/*/state) - - # usage: vt_is_xserver NUMBER - vt_is_xserver() { - ${pkgs.iproute2}/bin/ss -lp src unix:/tmp/.X11-unix/X* | - ${pkgs.gnused}/bin/sed -n 's|.*/tmp/.X11-unix/X\([0-9]\+\)\>.*|\1|p' | - ${pkgs.gnugrep}/bin/grep -Fqx "$1" - } - - console=$(${pkgs.kbd}/bin/fgconsole) - - if vt_is_xserver "$console"; then - # usage: run_on_display COMMAND [ARG...] - run_on_display() { - owner=$(${pkgs.coreutils}/bin/stat -c %u /tmp/.X11-unix/X$console) - ${pkgs.systemd}/bin/systemd-run -GPq \ - -E DISPLAY=:$console \ - --uid=$owner \ - "$@" - } - case $lid_state in - open) - run_on_display ${pkgs.xorg.xset}/bin/xset dpms force on - ;; - closed) - run_on_display ${pkgs.xorg.xset}/bin/xset dpms force off - ;; - esac - else - case $lid_state in - open) - ${pkgs.brightnessctl}/bin/brightnessctl --restore >/dev/null 2>&1 - ;; - closed) - brightness=$(${pkgs.brightnessctl}/bin/brightnessctl --quiet get) - if test "$brightness" -gt 0; then - ${pkgs.brightnessctl}/bin/brightnessctl --save >/dev/null 2>&1 - ${pkgs.brightnessctl}/bin/brightnessctl --quiet set 0 - fi - ;; - esac - fi - ''; - services.logind.settings.Login.HandleLidSwitch = "ignore"; - services.logind.settings.Login.HandleLidSwitchDocked = "ignore"; - services.logind.settings.Login.HandleLidSwitchExternalPower = "ignore"; - }; -} -- cgit v1.2.3