feat: add low battery indicator

This commit is contained in:
Swarsel 2024-12-15 15:00:44 +01:00
parent aee51f5b09
commit 3ba1690e3a
Signed by: swarsel
GPG key ID: 26A54C31F2A4FD84
4 changed files with 72 additions and 0 deletions

View file

@ -3062,6 +3062,7 @@ This section is for setting things that should be used on hosts that are using t
# ./safeeyes.nix # ./safeeyes.nix
./distrobox.nix ./distrobox.nix
./lid.nix ./lid.nix
./lowbattery.nix
]; ];
nixpkgs.config.permittedInsecurePackages = [ nixpkgs.config.permittedInsecurePackages = [
@ -3149,8 +3150,12 @@ Mostly used to install some compilers and lsp's that I want to have available wh
# secure boot # secure boot
sbctl sbctl
# nix package database
nix-index nix-index
# proc info
acpi
# better make for general tasks # better make for general tasks
just just
@ -4570,6 +4575,42 @@ This turns off the display when the lid is closed.
} }
#+end_src #+end_src
**** Low battery notification
:PROPERTIES:
:CUSTOM_ID: h:adf894d7-b3c6-4b8b-b13f-c28b3a5e1e17
:END:
Since I hide the waybar completely during normal operation, I run the risk of not noticing when my battery is about to run out. This module sends a notification when the battery level falls below 10%. Written by [[https://gist.github.com/cafkafk][cafkafk]].
#+begin_src nix :tangle profiles/common/nixos/lowbattery.nix
{ pkgs, lib, ... }:
{
systemd.user.services."battery-low" = {
enable = true;
description = "Notify user if battery is below 10%";
partOf = [ "graphical-session.target" ];
wantedBy = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = pkgs.writeShellScript "battery-low-notification"
''
if (( 10 >= $(${lib.getExe pkgs.acpi} -b | head -n 1 | ${lib.getExe pkgs.ripgrep} -o "\d+%" | ${lib.getExe pkgs.ripgrep} -o "\d+")));
then ${lib.getExe pkgs.libnotify} --urgency=critical "low battery" "$(${lib.getExe pkgs.acpi} -b | head -n 1 | ${lib.getExe pkgs.ripgrep} -o "\d+%")";
fi;
'';
};
};
systemd.user.timers."battery-low" = {
wantedBy = [ "timers.target" ];
timerConfig = {
# Every Minute
OnCalendar = "*-*-* *:*:00";
Unit = "battery-low.service";
};
};
}
#+end_src
*** Server *** Server
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:e492c24a-83a0-4bcb-a084-706f49318651 :CUSTOM_ID: h:e492c24a-83a0-4bcb-a084-706f49318651

View file

@ -38,6 +38,7 @@ _:
# ./safeeyes.nix # ./safeeyes.nix
./distrobox.nix ./distrobox.nix
./lid.nix ./lid.nix
./lowbattery.nix
]; ];
nixpkgs.config.permittedInsecurePackages = [ nixpkgs.config.permittedInsecurePackages = [

View file

@ -0,0 +1,26 @@
{ pkgs, lib, ... }:
{
systemd.user.services."battery-low" = {
enable = true;
description = "Notify user if battery is below 10%";
partOf = [ "graphical-session.target" ];
wantedBy = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = pkgs.writeShellScript "battery-low-notification"
''
if (( 10 >= $(${lib.getExe pkgs.acpi} -b | head -n 1 | ${lib.getExe pkgs.ripgrep} -o "\d+%" | ${lib.getExe pkgs.ripgrep} -o "\d+")));
then ${lib.getExe pkgs.libnotify} --urgency=critical "low battery" "$(${lib.getExe pkgs.acpi} -b | head -n 1 | ${lib.getExe pkgs.ripgrep} -o "\d+%")";
fi;
'';
};
};
systemd.user.timers."battery-low" = {
wantedBy = [ "timers.target" ];
timerConfig = {
# Every Minute
OnCalendar = "*-*-* *:*:00";
Unit = "battery-low.service";
};
};
}

View file

@ -26,8 +26,12 @@
# secure boot # secure boot
sbctl sbctl
# nix package database
nix-index nix-index
# proc info
acpi
# better make for general tasks # better make for general tasks
just just