From 141ebd6150e1b7c98494c1cc88d2328eba31eb9a Mon Sep 17 00:00:00 2001 From: Szymon P Date: Wed, 25 Feb 2026 09:28:40 +0100 Subject: [PATCH] move some scripts to .nix --- modules/cli/fish.nix | 9 ++-- modules/hypr/hyprland.nix | 90 ++++++++++++-------------------- scripts/check-do-not-disturb.sh | 28 ---------- scripts/check-if-muted.sh | 9 ---- scripts/restart_waybar.sh | 7 --- scripts/screenshot.sh | 50 ------------------ scripts/sekirofpsunlock | Bin 73488 -> 0 bytes 7 files changed, 39 insertions(+), 154 deletions(-) delete mode 100755 scripts/check-do-not-disturb.sh delete mode 100755 scripts/check-if-muted.sh delete mode 100755 scripts/restart_waybar.sh delete mode 100755 scripts/screenshot.sh delete mode 100755 scripts/sekirofpsunlock diff --git a/modules/cli/fish.nix b/modules/cli/fish.nix index faeaa76..809ace3 100644 --- a/modules/cli/fish.nix +++ b/modules/cli/fish.nix @@ -45,9 +45,7 @@ set -l rel_file (realpath --relative-to=$config_dir $file) - if nh home switch $config_dir -c ${ - if isNixOS then "nixos" else "arch" - }" -b backup + if nh home switch $config_dir -c ${if isNixOS then "nixos" else "arch"} git add -A set commit_msg "update: $rel_file" git commit -m "$commit_msg" @@ -61,6 +59,11 @@ ''; }; + reload_dotfiles = { + body = # fish + "nh home switch ~/.config/home-manager -c ${if isNixOS then "nixos" else "arch"}"; + }; + ls = { body = # fish "eza --long --icons --group-directories-first --git $argv"; diff --git a/modules/hypr/hyprland.nix b/modules/hypr/hyprland.nix index 6bd535d..82465aa 100644 --- a/modules/hypr/hyprland.nix +++ b/modules/hypr/hyprland.nix @@ -5,7 +5,21 @@ pkgs, ... }: +let + exe = pkg: bin: if isNixOS then "${pkg}/bin/${bin}" else "/usr/bin/${bin}"; + jq = exe pkgs.jq "jq"; + grim = exe pkgs.grim "grim"; + satty = exe pkgs.satty "satty"; + wl_copy = exe pkgs.wl-clipboard "wl-copy"; + notify_send = exe pkgs.libnotify "notify-send"; + xdg-desktop-portal-hyprland = + if isNixOS then + "${pkgs.xdg-desktop-portal-hyprland}/libexec/xdg-desktop-portal-hyprland" + else + "/usr/lib/xdg-desktop-portal-hyprland"; + hyprlock = exe pkgs.hyprlock "hyprlock"; +in { wayland.windowManager.hyprland = { enable = true; @@ -102,14 +116,9 @@ }; permission = [ - "${if isNixOS then "^${pkgs.grim}/bin/grim$" else "^/usr/bin/grim$"}" - "^${if isNixOS then "${pkgs.hyprlock}/bin/hyprlock" else "/usr/bin/hyprlock"}$, screencopy, allow" - "^${ - if isNixOS then - "${pkgs.xdg-desktop-portal-hyprland}/libexec/xdg-desktop-portal-hyprland" - else - "/usr/lib/xdg-desktop-portal-hyprland" - }$, screencopy, allow" + "^${grim}$, screencopy, allow" + "^${hyprlock}$, screencopy, allow" + "^${xdg-desktop-portal-hyprland}$, screencopy, allow" ]; input = { @@ -293,65 +302,32 @@ ", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle" ]; - bindl = [ - ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle && ${pkgs.writeShellScript "check-muted" '' - MUTED=$(${ - if isNixOS then "${pkgs.wireplumber}/bin/wpctl" else "/usr/bin/wpctl" - } get-volume @DEFAULT_AUDIO_SINK@ | ${pkgs.gnugrep}/bin/grep -iq muted; echo $?) - - if [[ $MUTED -eq 0 ]]; then - ${pkgs.libnotify}/bin/notify-send "Audio muted" -a 'wp-vol' -t 1000 - else - ${pkgs.libnotify}/bin/notify-send "Audio unmuted" -a 'wp-vol' -t 1000 - fi - ''}" - ", XF86AudioNext, exec, playerctl next" - ", Pause, exec, playerctl play-pause" - "$mainMod, Pause, exec, playerctl play-pause --player spotify" - ", XF86AudioPlay, exec, playerctl play-pause" - ", XF86AudioPrev, exec, playerctl previous" - ]; - bindt = [ - ", PRINT, exec, ${pkgs.writeShellScript "region" '' - "$mainMod, PRINT, exec, ${pkgs.writeShellScript "screenshot-region" '' - MONITOR=$(hyprctl monitors -j | ${ - if isNixOS then "${pkgs.jq}/bin/jq" else "/usr/bin/jq" - } -r '.[] | select(.focused == true) | .name') - ${if isNixOS then "${pkgs.grim}/bin/grim" else "/usr/bin/grim"} -o "$MONITOR" - | ${ - if isNixOS then "${pkgs.satty}/bin/satty" else "/usr/bin/satty" - } -f - - ''}" + ", PRINT, exec, ${pkgs.writeShellScript "screenshot-region" '' + MONITOR=$(hyprctl monitors -j | ${jq} -r '.[] | select(.focused == true) | .name') + ${grim} -o "$MONITOR" - | ${satty} -f - ''}" "$mainMod, PRINT, exec, ${pkgs.writeShellScript "screenshot-fullscreen" '' - target_path=${userConfig.pathConfig.screenshot}/$(date +'%d-%m-%Y_%H:%M:%S') - MONITOR=$(hyprctl monitors -j | ${ - if isNixOS then "${pkgs.jq}/bin/jq" else "/usr/bin/jq" - } -r '.[] | select(.focused == true) | .name') ${ - if isNixOS then "${pkgs.grim}/bin/grim" else "/usr/bin/grim" - } -o "$MONITOR" "$target_path" - ${if isNixOS then "${pkgs.wl-clipboard}/bin/wl-copy" else "/usr/bin/wl-copy"} < "$target_path" - ${ - if isNixOS then "${pkgs.libnotify}/bin/notify-send" else "/usr/bin/notify-send" - } -i "$target_path" -u low -a "Screenshot" "Screenshot fullscreen" "Saved and copied" + target_path="$HOME/${userConfig.pathConfig.screenshot}/$(date +'%d-%m-%Y_%H-%M-%S').png" + mkdir -p "$(dirname "$target_path")" + + MONITOR=$(hyprctl monitors -j | ${jq} -r '.[] | select(.focused == true) | .name') + + ${grim} -o "$MONITOR" "$target_path" + ${wl_copy} < "$target_path" + ${notify_send} -i "$target_path" -u low -a "Screenshot" "Screenshot fullscreen" "Saved and copied" ''}" "alt_l, PRINT, exec, ${pkgs.writeShellScript "screenshot-window" '' - target_path="~/${userConfig.pathConfig.screenshot}/$(date +'%d-%m-%Y_%H-%M-%S').png" + target_path="$HOME/${userConfig.pathConfig.screenshot}/$(date +'%d-%m-%Y_%H-%M-%S').png" mkdir -p "$(dirname "$target_path")" - GEOMETRY=$(hyprctl activewindow -j | ${ - if isNixOS then "${pkgs.jq}/bin/jq" else "/usr/bin/jq" - } -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"') + GEOMETRY=$(hyprctl activewindow -j | ${jq} -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"') - ${if isNixOS then "${pkgs.grim}/bin/grim" else "/usr/bin/grim"} -g "$GEOMETRY" "$target_path" - - ${if isNixOS then "${pkgs.wl-clipboard}/bin/wl-copy" else "/usr/bin/wl-copy"} < "$target_path" - - ${ - if isNixOS then "${pkgs.libnotify}/bin/notify-send" else "/usr/bin/notify-send" - } -i "$target_path" -u low -a "Screenshot" "Screenshot window" "Saved and copied" + ${grim} -g "$GEOMETRY" "$target_path" + ${wl_copy} < "$target_path" + ${notify_send} -i "$target_path" -u low -a "Screenshot" "Screenshot window" "Saved and copied" ''}" ]; diff --git a/scripts/check-do-not-disturb.sh b/scripts/check-do-not-disturb.sh deleted file mode 100755 index 7535197..0000000 --- a/scripts/check-do-not-disturb.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash - -disturbed=$(makoctl mode | grep -i do-not-disturb) > /dev/null -mute_icon="" -unmute_icon="🕭" - -case $1 in - "show") - if [[ $disturbed == "" ]]; then - echo "$unmute_icon" - else - echo "$mute_icon" - fi - ;; - "change") - if [[ $disturbed == "" ]]; then - makoctl mode -a do-not-disturb > /dev/null - echo "$unmute_icon" - else - makoctl mode -r do-not-disturb > /dev/null - echo "$mute_icon" - fi - pkill -SIGRTMIN+2 waybar - ;; - *) - echo "Arguments are: show, change" - ;; -esac diff --git a/scripts/check-if-muted.sh b/scripts/check-if-muted.sh deleted file mode 100755 index fc7a154..0000000 --- a/scripts/check-if-muted.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -MUTED=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | grep -iq muted; echo $?) - -if [[ $MUTED -eq 0 ]]; then - notify-send "Audio muted" -a 'wp-vol' -t 1000 -else - notify-send "Audio unmuted" -a 'wp-vol' -t 1000 -fi diff --git a/scripts/restart_waybar.sh b/scripts/restart_waybar.sh deleted file mode 100755 index 237f80d..0000000 --- a/scripts/restart_waybar.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -killall -q waybar - -while pgrep -x waybar >/dev/null; do sleep 1; done - -uwsm app waybar diff --git a/scripts/screenshot.sh b/scripts/screenshot.sh deleted file mode 100755 index 1985e20..0000000 --- a/scripts/screenshot.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env bash - -# variables -## path vars -date="$(date +'%d-%m-%Y_%H:%M:%S')" -fname="$date.png" -target_path="$HOME/Obrazy/zrzuty/$fname" -## stdout -error_wrong_type="The first argument needs to be \"fullscreen\", \"window\" or \"region\". Exiting..." -notification_succes="$target_path saved and copied" - - -# validate input -case "$1" in - "fullscreen" | "window" | "region") - type=$1 - ;; - *) - echo "$error_wrong_type" - exit - ;; -esac - -notification() { - notify-send -i "$target_path" -u low -a "Screenshot" "Screenshot $type" "$notification_succes" -} - -case $type in - "fullscreen") - grim -o $(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .name') "$target_path" - wl-copy < "$target_path" - notification - ;; - "window") - active_window_position="$(hyprctl clients -j | jq -r '.[] | select(.focusHistoryID == 0) | .at')" - active_window_size="$(hyprctl clients -j | jq -r '.[] | select(.focusHistoryID == 0) | .size')" - - x=$(echo "$active_window_position" | jq '.[0]') - y=$(echo "$active_window_position" | jq '.[1]') - width=$(echo "$active_window_size" | jq '.[0]') - height=$(echo "$active_window_size" | jq '.[1]') - - grim -g "${x},${y} ${width}x${height}" "$target_path" - wl-copy < "$target_path" - notification - ;; - "region") - grim -o $(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .name') - | satty -f - - ;; -esac diff --git a/scripts/sekirofpsunlock b/scripts/sekirofpsunlock deleted file mode 100755 index 6499d999641132de369882a27798ff8b404e7c55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73488 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