mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 17:17:22 +01:00
feat: add low battery indicator
This commit is contained in:
parent
aee51f5b09
commit
3ba1690e3a
4 changed files with 72 additions and 0 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ _:
|
||||||
# ./safeeyes.nix
|
# ./safeeyes.nix
|
||||||
./distrobox.nix
|
./distrobox.nix
|
||||||
./lid.nix
|
./lid.nix
|
||||||
|
./lowbattery.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.config.permittedInsecurePackages = [
|
nixpkgs.config.permittedInsecurePackages = [
|
||||||
|
|
|
||||||
26
profiles/common/nixos/lowbattery.nix
Normal file
26
profiles/common/nixos/lowbattery.nix
Normal 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue