diff options
| author | brustybee <beebeeb5k@gmail.com> | 2026-04-13 03:04:59 +0530 |
|---|---|---|
| committer | brustybee <beebeeb5k@gmail.com> | 2026-04-13 03:04:59 +0530 |
| commit | 1bb49481dbec223e68df4f60fa1d425525e16cff (patch) | |
| tree | 66e87c01c39054b7abb51d04bfc50f63b201aaf4 /common/modules/dwm/scripts.nix | |
| parent | f5b78ff561eff75c803ed1ef6e736a6c991cd135 (diff) | |
This is like that one dream you don't know how to describe
Diffstat (limited to 'common/modules/dwm/scripts.nix')
| -rw-r--r-- | common/modules/dwm/scripts.nix | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/common/modules/dwm/scripts.nix b/common/modules/dwm/scripts.nix new file mode 100644 index 0000000..5b52686 --- /dev/null +++ b/common/modules/dwm/scripts.nix @@ -0,0 +1,78 @@ +homeManager: +{ pkgs, lib, ... }: +let + sync_dms = pkgs.writeShellScriptBin "sync_dms" '' + jq=${pkgs.jq}/bin/jq + CONFIG_FILE=$HOME/.local/state/DankMaterialShell/session.json + + get_val() { $jq -r ".$1" "$CONFIG_FILE"; } + set_val() { + local tmp=$(mktemp) + $jq --arg val "$2" ".$1 = \$val" "$CONFIG_FILE" > "$tmp" && mv "$tmp" "$CONFIG_FILE" + } + + + function sync_all { + ISNIGHTMODE=$(get_val "nightModeEnabled") + NIGHTMODETEMP=$(get_val "nightModeTemperature") + WALL=$(get_val "wallpaperPath") + ${pkgs.xwallpaper}/bin/xwallpaper --zoom "$WALL" + + if [[ "$ISNIGHTMODE" == "true" ]]; then + echo "bitch $ISNIGHTMODE" + ${pkgs.redshift}/bin/redshift -o "$NIGHTMODETEMP" + else + ${pkgs.redshift}/bin/redshift -x + fi + } + + function dmenu_settings { + ISNIGHTMODE=$(get_val "nightModeEnabled") + options="NightMode (Currently $ISNIGHTMODE)\nSync Now" + + choice=$(echo -e "$options" | dmenu -p "Settings:") + + case "$choice" in + *"NightMode"*) + if [[ "$ISNIGHTMODE" == "true" ]]; then + set_val "nightModeEnabled" "false" + else + set_val "nightModeEnabled" "true" + fi + sync_all + ;; + "Sync Now") + sync_all + ;; + esac + } + + case "$1" in + settings) dmenu_settings ;; + *) sync_all ;; + esac + ''; + logout_dmenu = pkgs.writeShellScriptBin "logout_dmenu" '' + options="Lock\nLogout\nReboot\nShutdown" + + choice=$(echo -e "$options" | dmenu -p "System:") + + case "$choice" in + Lock) slock ;; + Logout) pkill dwm ;; + Reboot) reboot ;; + Shutdown) poweroff ;; + *) exit 1 ;; + esac + ''; +in +{ + config = lib.mkIf homeManager ( + lib.optionalAttrs homeManager { + home.packages = with pkgs; [ + sync_dms + logout_dmenu + ]; + } + ); +} |
