summaryrefslogtreecommitdiff
path: root/common/modules/window_managers/dwm/scripts.nix
diff options
context:
space:
mode:
authorbee <beebeeb5k@gmail.com>2026-05-01 23:45:21 +0530
committerbee <beebeeb5k@gmail.com>2026-05-01 23:45:21 +0530
commitcd08309515bce3796777f4b20efffd379b9fabcc (patch)
tree9bc843dc067983511b31139b5c71afdd12a8e20e /common/modules/window_managers/dwm/scripts.nix
parent1bb49481dbec223e68df4f60fa1d425525e16cff (diff)
Homecoming
Diffstat (limited to 'common/modules/window_managers/dwm/scripts.nix')
-rw-r--r--common/modules/window_managers/dwm/scripts.nix78
1 files changed, 78 insertions, 0 deletions
diff --git a/common/modules/window_managers/dwm/scripts.nix b/common/modules/window_managers/dwm/scripts.nix
new file mode 100644
index 0000000..5b52686
--- /dev/null
+++ b/common/modules/window_managers/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
+ ];
+ }
+ );
+}