summaryrefslogtreecommitdiff
path: root/common/modules/window_managers
diff options
context:
space:
mode:
authorbee <beebeeb5k@gmail.com>2026-05-05 22:47:01 +0530
committerbee <beebeeb5k@gmail.com>2026-05-05 22:47:01 +0530
commitd550f99d5d1b89569ee512c2716e98e7dc3d81d3 (patch)
treec4bf1dc2b80a4cf1a17d690f5e568c2bf1154fad /common/modules/window_managers
parentcd08309515bce3796777f4b20efffd379b9fabcc (diff)
important stuff
Diffstat (limited to 'common/modules/window_managers')
-rw-r--r--common/modules/window_managers/default.nix1
-rw-r--r--common/modules/window_managers/dwm/default.nix4
-rw-r--r--common/modules/window_managers/dwm/scripts.nix79
-rw-r--r--common/modules/window_managers/hyprland/default.nix79
4 files changed, 95 insertions, 68 deletions
diff --git a/common/modules/window_managers/default.nix b/common/modules/window_managers/default.nix
index 7b51946..6591583 100644
--- a/common/modules/window_managers/default.nix
+++ b/common/modules/window_managers/default.nix
@@ -62,6 +62,7 @@ in
wl-clipboard
cliphist
brightnessctl
+ maim
];
}
else
diff --git a/common/modules/window_managers/dwm/default.nix b/common/modules/window_managers/dwm/default.nix
index f665d06..d1f7850 100644
--- a/common/modules/window_managers/dwm/default.nix
+++ b/common/modules/window_managers/dwm/default.nix
@@ -132,10 +132,8 @@ in
${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1 &
[ -f ~/.Xresources ] && xrdb -merge ~/.Xresources
+ xrandr --output eDP --set TearFree on
- dunst &
- clipcatd &
- slstatus &
sync_dms
systemctl --user restart xidlehook.service xautolock-session.service xss-lock.service clipcat.service
'';
diff --git a/common/modules/window_managers/dwm/scripts.nix b/common/modules/window_managers/dwm/scripts.nix
index 5b52686..25ecc19 100644
--- a/common/modules/window_managers/dwm/scripts.nix
+++ b/common/modules/window_managers/dwm/scripts.nix
@@ -3,43 +3,76 @@ homeManager:
let
sync_dms = pkgs.writeShellScriptBin "sync_dms" ''
jq=${pkgs.jq}/bin/jq
- CONFIG_FILE=$HOME/.local/state/DankMaterialShell/session.json
+ SETTINGS_FILE="$HOME/.config/noctalia/settings.json"
+ WALLPAPER_FILE="$HOME/.cache/noctalia/wallpapers.json"
- get_val() { $jq -r ".$1" "$CONFIG_FILE"; }
- set_val() {
+ # --- Helpers ---
+
+ get_setting() {
+ $jq -r "$1" "$SETTINGS_FILE"
+ }
+
+ toggle_nightlight_state() {
local tmp=$(mktemp)
- $jq --arg val "$2" ".$1 = \$val" "$CONFIG_FILE" > "$tmp" && mv "$tmp" "$CONFIG_FILE"
+ # Flips the boolean cleanly without changing it to a string
+ $jq '.nightLight.enabled = (.nightLight.enabled | not)' "$SETTINGS_FILE" > "$tmp" && mv "$tmp" "$SETTINGS_FILE"
}
+ # --- Modules ---
+
+ apply_wallpaper() {
+ # Read dark mode and monitor preferences from settings.json
+ local is_dark=$(get_setting '.colorSchemes.darkMode')
+ local monitor=$(get_setting '.colorSchemes.monitorForColors')
+
+ # Default to eDP-1 if monitor setting is missing
+ if [[ "$monitor" == "null" || -z "$monitor" ]]; then
+ monitor="eDP-1"
+ fi
+
+ local mode="light"
+ if [[ "$is_dark" == "true" ]]; then
+ mode="dark"
+ fi
- function sync_all {
- ISNIGHTMODE=$(get_val "nightModeEnabled")
- NIGHTMODETEMP=$(get_val "nightModeTemperature")
- WALL=$(get_val "wallpaperPath")
- ${pkgs.xwallpaper}/bin/xwallpaper --zoom "$WALL"
+ # Use jq variables to safely parse the nested monitor and mode keys
+ local wall=$($jq -r --arg mon "$monitor" --arg mode "$mode" '.wallpapers[$mon][$mode]' "$WALLPAPER_FILE")
- if [[ "$ISNIGHTMODE" == "true" ]]; then
- echo "bitch $ISNIGHTMODE"
- ${pkgs.redshift}/bin/redshift -o "$NIGHTMODETEMP"
+ if [[ "$wall" != "null" && -n "$wall" ]]; then
+ ${pkgs.xwallpaper}/bin/xwallpaper --zoom "$wall"
+ fi
+ }
+
+ apply_nightlight() {
+ local is_night_mode=$(get_setting '.nightLight.enabled')
+ local night_temp=$(get_setting '.nightLight.nightTemp')
+
+ if [[ "$is_night_mode" == "true" ]]; then
+ echo "bitch $is_night_mode"
+ # -P resets prior adjustments, -O applies one-shot manual temperature
+ ${pkgs.redshift}/bin/redshift -P -O "$night_temp"
else
+ # -x clears all redshift adjustments
${pkgs.redshift}/bin/redshift -x
fi
}
- function dmenu_settings {
- ISNIGHTMODE=$(get_val "nightModeEnabled")
- options="NightMode (Currently $ISNIGHTMODE)\nSync Now"
+ sync_all() {
+ apply_wallpaper
+ apply_nightlight
+ }
- choice=$(echo -e "$options" | dmenu -p "Settings:")
+ dmenu_settings() {
+ local is_night_mode=$(get_setting '.nightLight.enabled')
+ local options="Toggle NightMode (Currently $is_night_mode)\nSync Now"
+
+ local 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
+ toggle_nightlight_state
+ # Immediately apply the new state after toggling
+ apply_nightlight
;;
"Sync Now")
sync_all
@@ -47,6 +80,8 @@ let
esac
}
+ # --- Main ---
+
case "$1" in
settings) dmenu_settings ;;
*) sync_all ;;
diff --git a/common/modules/window_managers/hyprland/default.nix b/common/modules/window_managers/hyprland/default.nix
index c338f44..c1c13a9 100644
--- a/common/modules/window_managers/hyprland/default.nix
+++ b/common/modules/window_managers/hyprland/default.nix
@@ -12,23 +12,6 @@
}:
let
cfg = config.${moduleNameSpace}.windowManagers;
-
- snip = pkgs.writeShellScript "snip" ''
- case $1 in
- full)
- ${pkgs.grim}/bin/grim - | wl-copy
- ;;
- selection)
- GEOM=$(${pkgs.slurp}/bin/slurp) || exit
- ${pkgs.grim}/bin/grim -g "$GEOM" - | wl-copy
- ;;
- window)
- GEOM=$(hyprctl activewindow -j | ${pkgs.jq}/bin/jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"')
- ${pkgs.grim}/bin/grim -g "$GEOM" - | wl-copy
- ;;
- esac
- '';
-
smart-alacritty = pkgs.writeShellScript "smart-alacritty" ''
alacritty msg create-window || exec alacritty
'';
@@ -55,28 +38,39 @@ in
systemd.variables = [ "--all" ];
xwayland.enable = true;
systemd.enableXdgAutostart = false;
+ extraConfig = ''
+ layerrule {
+ name = noctalia
+ match:namespace = noctalia-background-.*$
+ ignore_alpha = 0.5
+ blur = true
+ blur_popups = true
+ }
+ '';
settings = {
monitor = [ ",1920x1080@120,auto,1.0" ];
- source = [ ] ++ lib.optional (config.beeMods.matugen.enable) "~/.config/hypr/dms/colors.conf";
+ source =
+ [ ] ++ lib.optional (config.beeMods.matugen.enable) "~/.config/hypr/noctalia/noctalia-colors.conf";
"$mainMod" = "SUPER";
- # env = [
- # "NIXOS_OZONE_WL,1"
- # "QT_AUTO_SCREEN_SCALE_FACTOR,1"
- # "ELECTRON_OZONE_PLATFORM_HINT,auto"
- # "QT_QPA_PLATFORM,wayland;xcb"
- # "XDG_SESSION_TYPE,wayland"
- # "GDK_BACKEND,wayland,x11"
- # "GDK_SCALE,1"
- # ];
+ env = [
+ "NIXOS_OZONE_WL,1"
+ "QT_AUTO_SCREEN_SCALE_FACTOR,1"
+ "ELECTRON_OZONE_PLATFORM_HINT,auto"
+ "QT_QPA_PLATFORM,wayland;xcb"
+ "XDG_SESSION_TYPE,wayland"
+ "GDK_BACKEND,wayland,x11"
+ "GDK_SCALE,1"
+ ];
exec-once = [
- "dbus-update-activation-environment --all"
- "sleep 1 && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
- "gnome-keyring-daemon --start --components=secrets,ssh,pkcs11"
+ # "dbus-update-activation-environment --all"
+ "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
+ "gnome-keyring-daemon --start --components=secrets"
+ "noctalia-shell"
]
++ lib.optionals config.beeMods.windowManagers.dwm.enable [
"systemctl --user stop xidlehook.service"
@@ -115,10 +109,7 @@ in
resize_on_border = true;
no_focus_fallback = true;
- allow_tearing = false;
-
- # "col.active_border" = "$_tertiary_fixed_dim";
- # "col.inactive_border" = "$_outline";
+ allow_tearing = true;
};
master = {
@@ -212,7 +203,7 @@ in
};
windowrule = [
- "workspace 1, match:class ^(foot|footclient|alacritty|com.mitchellh.ghostty)$"
+ "workspace 1, match:class ^(foot|footclient|Alacritty|com.mitchellh.ghostty)$"
"workspace 2, match:class ^(zen|firefox|obsidian)$"
"workspace 3, match:class ^(vesktop|discord|thunderbird|Element|equibop)$"
"workspace 4, match:class ^(steam)$"
@@ -224,6 +215,7 @@ in
"no_anim on, match:namespace ^rofi$"
"no_anim on, match:namespace ^(dms)$"
"no_anim on, match:namespace .*dms.*"
+ "no_anim on, match:namespace .*noctalia.*"
];
workspace = [ "2, layout:scrolling" ];
@@ -231,13 +223,15 @@ in
bind = [
"$mainMod, r, exec, hyprctl reload"
"$mainMod, Return, exec, ${terminal}"
- "$mainMod, a, exec,dms ipc call spotlight toggle"
- "$mainMod, v,exec,dms ipc call clipboard toggle"
- "ALT, F4, exec, dms ipc call powermenu toggle"
- "$mainMod, y, exec, dms ipc call dankdash wallpaper"
+ "$mainMod, a, exec,noctalia-shell ipc call launcher toggle"
+ "$mainMod, y, exec,noctalia-shell ipc call wallpaper toggle"
+ "$mainMod, v, exec,noctalia-shell ipc call launcher clipboard"
+ "$mainMod, n, exec,noctalia-shell ipc call notifications toggleHistory"
- "$mainMod, comma, exec,dms ipc call settings focusOrToggle"
+ "$mainMod, comma, exec,noctalia-shell ipc call settings toggle"
+ "$mainMod, Period, exec,noctalia-shell ipc call launcher emoji"
+ "ALT, F4, exec,noctalia-shell ipc call sessionMenu toggle"
"$mainMod, F12, exec, gnome-calculator"
"$mainMod, b, exec, zen"
"$mainMod, e, exec, nautilus"
@@ -250,9 +244,8 @@ in
"$mainMod, k, movefocus, u"
"$mainMod, j, movefocus, d"
- ", Print, exec, ${snip} full"
- "$mainMod, Print, exec, ${snip} selection"
- "$mainMod SHIFT, Print, exec, ${snip} window"
+ ", Print, exec, ${pkgs.grimblast}/bin/grimblast copy screen"
+ "$mainMod, Print, exec, ${pkgs.grimblast}/bin/grimblast copy area"
"$mainMod SHIFT, k, swapwindow, u"
"$mainMod SHIFT, j, swapwindow, d"