mirror of
https://github.com/anotherhadi/nixy.git
synced 2026-10-05 11:18:24 +02:00
43 lines
1.3 KiB
Nix
43 lines
1.3 KiB
Nix
{
|
|
pkgs,
|
|
scripts,
|
|
...
|
|
}: {
|
|
scripts.power-cycle = pkgs.writeShellScriptBin "power-cycle" ''
|
|
ppd=${pkgs.power-profiles-daemon}/bin/powerprofilesctl
|
|
cur=$("$ppd" get)
|
|
case "$cur" in
|
|
power-saver) next=balanced; icon="" ;;
|
|
balanced) next=performance; icon="" ;;
|
|
performance) next=power-saver; icon="" ;;
|
|
*) next=balanced; icon="" ;;
|
|
esac
|
|
"$ppd" set "$next"
|
|
OSD_TEXT="$icon ''${next^}"
|
|
${scripts.waybar-osd}/bin/waybar-osd "$OSD_TEXT"
|
|
'';
|
|
|
|
home.packages = [pkgs.poweralertd scripts.power-cycle];
|
|
|
|
xdg.desktopEntries.power-cycle = {
|
|
name = "Power Profile";
|
|
exec = "${scripts.power-cycle}/bin/power-cycle";
|
|
icon = "power-profile-balanced-symbolic";
|
|
comment = "Cycle power-saver / balanced / performance";
|
|
categories = ["System"];
|
|
terminal = false;
|
|
settings.Keywords = "power;profile;performance;battery;";
|
|
};
|
|
|
|
# Event-driven low-battery/critical/full notifications via UPower dbus signals
|
|
# (thresholds set in nixos/utils.nix, services.upower.percentage*).
|
|
systemd.user.services.poweralertd = {
|
|
Unit.Description = "UPower-powered battery notifications";
|
|
Service = {
|
|
ExecStart = "${pkgs.poweralertd}/bin/poweralertd";
|
|
Restart = "on-failure";
|
|
};
|
|
Install.WantedBy = ["graphical-session.target"];
|
|
};
|
|
}
|