From a6c643d8b1904dc0ba24607c5305d3a6d6194c9c Mon Sep 17 00:00:00 2001 From: oddlama Date: Mon, 16 Oct 2023 16:33:20 +0200 Subject: [PATCH] feat: add brightness keybinds and notification --- pkgs/scripts/assets/brightness-decrease.svg | 1 + pkgs/scripts/assets/brightness-increase.svg | 1 + pkgs/scripts/assets/brightness.svg | 35 +++++++++++++++++++++ pkgs/scripts/brightness.nix | 30 ++++++++++++++++++ pkgs/scripts/default.nix | 1 + users/myuser/graphical/i3.nix | 9 +++--- 6 files changed, 73 insertions(+), 4 deletions(-) create mode 120000 pkgs/scripts/assets/brightness-decrease.svg create mode 120000 pkgs/scripts/assets/brightness-increase.svg create mode 100644 pkgs/scripts/assets/brightness.svg create mode 100644 pkgs/scripts/brightness.nix diff --git a/pkgs/scripts/assets/brightness-decrease.svg b/pkgs/scripts/assets/brightness-decrease.svg new file mode 120000 index 0000000..a523061 --- /dev/null +++ b/pkgs/scripts/assets/brightness-decrease.svg @@ -0,0 +1 @@ +brightness.svg \ No newline at end of file diff --git a/pkgs/scripts/assets/brightness-increase.svg b/pkgs/scripts/assets/brightness-increase.svg new file mode 120000 index 0000000..a523061 --- /dev/null +++ b/pkgs/scripts/assets/brightness-increase.svg @@ -0,0 +1 @@ +brightness.svg \ No newline at end of file diff --git a/pkgs/scripts/assets/brightness.svg b/pkgs/scripts/assets/brightness.svg new file mode 100644 index 0000000..c97a862 --- /dev/null +++ b/pkgs/scripts/assets/brightness.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + diff --git a/pkgs/scripts/brightness.nix b/pkgs/scripts/brightness.nix new file mode 100644 index 0000000..df21ccf --- /dev/null +++ b/pkgs/scripts/brightness.nix @@ -0,0 +1,30 @@ +{ + writeShellApplication, + bc, + libnotify, + brightnessctl, +}: +writeShellApplication { + name = "brightness"; + text = '' + set -euo pipefail + + ${brightnessctl}/bin/brightnessctl "$1" "$2" + case "$2" in + "+"*) image=${./assets}/brightness-increase.svg ;; + *"-") image=${./assets}/brightness-decrease.svg ;; + esac + + max=$(${brightnessctl}/bin/brightnessctl -m max) + value=$(${brightnessctl}/bin/brightnessctl -m get) + value=$(${bc}/bin/bc <<< "scale=0; 100*$value/$max") + ${libnotify}/bin/notify-send \ + "Brightness" \ + --hint=string:image-path:"$image" \ + --hint=int:value:"$value" \ + --hint="string:wired-tag:indicator" \ + --hint="string:wired-note:brightness" \ + --expire-time=1000 \ + || true + ''; +} diff --git a/pkgs/scripts/default.nix b/pkgs/scripts/default.nix index 6b70971..461ce01 100644 --- a/pkgs/scripts/default.nix +++ b/pkgs/scripts/default.nix @@ -1,5 +1,6 @@ _final: prev: { scripts = { + brightness = prev.callPackage ./brightness.nix {}; screenshot-area = prev.callPackage ./screenshot-area.nix {}; screenshot-area-scan-qr = prev.callPackage ./screenshot-area-scan-qr.nix {}; screenshot-screen = prev.callPackage ./screenshot-screen.nix {}; diff --git a/users/myuser/graphical/i3.nix b/users/myuser/graphical/i3.nix index 2a9e050..7362d62 100644 --- a/users/myuser/graphical/i3.nix +++ b/users/myuser/graphical/i3.nix @@ -70,11 +70,12 @@ in { "XF86AudioLowerVolume" = "exec --no-startup-id ${getExe pkgs.scripts.volume} set-volume @DEFAULT_AUDIO_SINK@ 5%-"; "XF86AudioMute" = "exec --no-startup-id ${getExe pkgs.scripts.volume} set-mute @DEFAULT_AUDIO_SINK@ toggle"; "XF86AudioMicMute" = "exec --no-startup-id ${getExe pkgs.scripts.volume} set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; + "XF86AudioPlay" = "exec --no-startup-id ${getExe pkgs.playerctl} play-pause"; + "XF86AudioNext" = "exec --no-startup-id ${getExe pkgs.playerctl} next"; + "XF86AudioPrev" = "exec --no-startup-id ${getExe pkgs.playerctl} previous"; + "XF86MonBrightnessUp" = "exec --no-startup-id ${getExe pkgs.scripts.brightness} set +5%"; + "XF86MonBrightnessDown" = "exec --no-startup-id ${getExe pkgs.scripts.brightness} set 5%-"; } - # // optionalAttrs useBacklight { - # "XF86MonBrightnessUp" = "exec ${pkgs.light}/bin/light -A 5"; - # "XF86MonBrightnessDown" = "exec ${pkgs.light}/bin/light -U 5"; - # } // { "Menu" = "exec ${cfg.menu}"; }