diff --git a/docs/TODO.md b/docs/TODO.md index e1470e9..f9d5491 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -23,6 +23,7 @@ feel free to contribute <3 ([CONTRIBUTING.md](CONTRIBUTING.md)) - [ ] Animations based on app name - [ ] Wofi: popin - [ ] Wlogout: fade in + - [ ] Fix screenshots - [ ] Nixvim - [ ] Telescope: find with file content diff --git a/home/scripts/brightness/default.nix b/home/scripts/brightness/default.nix index b077f71..1c2dc2d 100644 --- a/home/scripts/brightness/default.nix +++ b/home/scripts/brightness/default.nix @@ -13,9 +13,7 @@ let message="󰃠 Brightness: $brightness_level%" - ${pkgs.libnotify}/bin/notify-send "$message" \ - -h int:value:"$brightness_level" \ - --replace-id="$(cat "/tmp/nixy-notification" 2>/dev/null || echo 0)" --print-id > "/tmp/nixy-notification" + notif "brightness" "$message" "extraargs=-h int:value:$brightness_level" ''; brightness-up = pkgs.writeShellScriptBin "brightness-up" '' diff --git a/home/scripts/caffeine/default.nix b/home/scripts/caffeine/default.nix index 579dfeb..ffe5650 100644 --- a/home/scripts/caffeine/default.nix +++ b/home/scripts/caffeine/default.nix @@ -14,8 +14,7 @@ let pkill hypridle message="󰅶 Caffeine Activated" fi - ${pkgs.libnotify}/bin/notify-send "$message" \ - --replace-id="$(cat "/tmp/nixy-notification" 2>/dev/null || echo 0)" --print-id > "/tmp/nixy-notification" + notif "caffeine" "$message" ''; in { home.packages = [ caffeine-status caffeine ]; } diff --git a/home/scripts/misc/default.nix b/home/scripts/misc/default.nix index 387cebd..9725fe2 100644 --- a/home/scripts/misc/default.nix +++ b/home/scripts/misc/default.nix @@ -17,12 +17,8 @@ let fi ''; - wireguard-import = pkgs.writeShellScriptBin "wireguard-import" '' - nmcli connection import type wireguard file "$1" + lock = pkgs.writeShellScriptBin "lock" '' + ${pkgs.hyprlock}/bin/hyprlock ''; - vault = pkgs.writeShellScriptBin "vault" '' - nvim $HOME/Nextcloud/obsidian - ''; - -in { home.packages = [ menu wireguard-import powermenu vault ]; } +in { home.packages = [ menu powermenu lock ]; } diff --git a/home/scripts/night-shift/default.nix b/home/scripts/night-shift/default.nix index 0458789..072ade2 100644 --- a/home/scripts/night-shift/default.nix +++ b/home/scripts/night-shift/default.nix @@ -1,21 +1,18 @@ -{ pkgs, config, ... }: +{ pkgs, ... }: let - homedir = config.home.homeDirectory; default = "4000"; night-shift-on = pkgs.writeShellScriptBin "night-shift-on" '' ${pkgs.hyprland}/bin/hyprctl dispatch exec "${pkgs.wlsunset}/bin/wlsunset -t ${default}" message="󰖔 Night-Shift Activated" - ${pkgs.libnotify}/bin/notify-send "$message" \ - --replace-id="$(cat "/tmp/nixy-notification" 2>/dev/null || echo 0)" --print-id > "/tmp/nixy-notification" + notif "night-shift" "$message" ''; - + night-shift-off = pkgs.writeShellScriptBin "night-shift-off" '' pkill wlsunset message="󰖔 Night-Shift Deactivated" - ${pkgs.libnotify}/bin/notify-send "$message" \ - --replace-id="$(cat "/tmp/nixy-notification" 2>/dev/null || echo 0)" --print-id > "/tmp/nixy-notification" + notif "night-shift" "$message" ''; in { home.packages = [ night-shift-on night-shift-off ]; } diff --git a/home/scripts/sounds/default.nix b/home/scripts/sounds/default.nix index 39fa66c..ad5afbc 100644 --- a/home/scripts/sounds/default.nix +++ b/home/scripts/sounds/default.nix @@ -26,9 +26,7 @@ let message="󰕾 Volume: $volume%" fi - ${pkgs.libnotify}/bin/notify-send "$message" \ - -h int:value:"$volume" \ - --replace-id="$(cat "/tmp/nixy-notification" 2>/dev/null || echo 0)" --print-id > "/tmp/nixy-notification" + notif "sound" "$message" "extraargs=-h int:value:$volume" ''; sound-up = pkgs.writeShellScriptBin "sound-up" '' diff --git a/home/scripts/startup/default.nix b/home/scripts/startup/default.nix index 641aaf6..33b8e6a 100644 --- a/home/scripts/startup/default.nix +++ b/home/scripts/startup/default.nix @@ -7,7 +7,7 @@ let [[ ${toString config.var.sops} == "1" ]] && systemctl --user start sops-nix - notify-system & + battery-watch & ${pkgs.waybar}/bin/waybar & diff --git a/home/scripts/system/default.nix b/home/scripts/system/default.nix index 1787b0e..dd560e7 100644 --- a/home/scripts/system/default.nix +++ b/home/scripts/system/default.nix @@ -1,16 +1,37 @@ { pkgs, ... }: let - notify-system = pkgs.writeShellScriptBin "notify-system" '' - function minute() { - while true;do - battery-plugged & - battery-level & - sleep 60 - done - } - minute + notif = pkgs.writeShellScriptBin "notif" '' + # Shell script to send custom notifications + NOTIF_FOLDER="/tmp/notif" + sender_id=$1 # To overwrite existing notifications + message=$2 + extraargs="" + description="" + if [[ $3 == "extraargs="* ]]; then + extraargs=$(echo "$3" | sed 's/extraargs=//g') + else + description="$3" + extraargs="$4" + fi + + [[ -d "$NOTIF_FOLDER" ]] || mkdir $NOTIF_FOLDER + [[ -f "$NOTIF_FOLDER/$sender_id" ]] || echo "0" > "$NOTIF_FOLDER/$sender_id" + + old_notification_id=$(cat "$NOTIF_FOLDER/$sender_id") + + ${pkgs.libnotify}/bin/notify-send "$message" \ + $extraargs \ + --replace-id="$old_notification_id" --print-id > "$NOTIF_FOLDER/$sender_id" + ''; + + battery-watch = pkgs.writeShellScriptBin "battery-watch" '' + while true;do + battery-plugged & + battery-level & + sleep 60 + done ''; battery-plugged = pkgs.writeShellScriptBin "battery-plugged" '' @@ -18,9 +39,9 @@ let OLD_BATTERY_STATUS=$(cat /tmp/old_battery_status 2>/dev/null || echo "Unknown") if [[ $BATTERY_STATUS != $OLD_BATTERY_STATUS && $OLD_BATTERY_STATUS != "Unknown" ]]; then if [[ $BATTERY_STATUS == "Discharging" ]]; then - ${pkgs.libnotify}/bin/notify-send "󰚦 " "Battery is unplugged" + notif "battery" "󰚦 Battery is unplugged" else - ${pkgs.libnotify}/bin/notify-send "󰚥 " "Battery is plugged in" + notif "battery" "󰚥 Battery is plugged in" fi fi echo $BATTERY_STATUS > /tmp/old_battery_status @@ -30,12 +51,12 @@ let BATTERY_LEVEL=$(cat /sys/class/power_supply/BAT*/capacity | head -n1) BATTERY_STATUS=$(cat /sys/class/power_supply/BAT*/status | head -n1) if [[ $BATTERY_LEVEL -le 20 ]] && [[ $BATTERY_STATUS == "Discharging" ]]; then - ${pkgs.libnotify}/bin/notify-send "󰁻 Low battery" "Battery level is $BATTERY_LEVEL%" + notif "battery" "󰁻 Low battery" "Battery level is $BATTERY_LEVEL%" elif [[ $BATTERY_LEVEL -le 10 ]] && [[ $BATTERY_STATUS == "Discharging" ]]; then - ${pkgs.libnotify}/bin/notify-send --urgency=critical "󰁺 Very low battery" "Battery level is $BATTERY_LEVEL%" + notif "battery" "󰁺 Very low battery" "Battery level is $BATTERY_LEVEL%" elif [[ $BATTERY_LEVEL -eq 100 ]] && [[ $BATTERY_STATUS -ne "Discharging" ]]; then - ${pkgs.libnotify}/bin/notify-send "󰁹 Fully charged" + notif "battery" "󰁹 Fully charged" fi ''; -in { home.packages = [ notify-system battery-plugged battery-level ]; } +in { home.packages = [ notif battery-watch battery-plugged battery-level ]; } diff --git a/home/system/shell/zsh.nix b/home/system/shell/zsh.nix index 491b24a..3091f35 100644 --- a/home/system/shell/zsh.nix +++ b/home/system/shell/zsh.nix @@ -49,6 +49,8 @@ icat = "${pkgs.kitty}/bin/kitty +kitten icat"; note = "vim ~/Nextcloud/obsidian"; obs = "vim ~/Nextcloud/obsidian"; + wireguard-import = "nmcli connection import type wireguard file"; + vault = "nvim $HOME/nextcloud/Notes/"; # git ga = "git add";