diff options
| author | brustybee <bee@4d2.org> | 2026-03-14 20:48:08 +0530 |
|---|---|---|
| committer | brustybee <bee@4d2.org> | 2026-03-14 20:48:08 +0530 |
| commit | f33743bfd1fa3924d67a33ea8816c1b45d92e6a1 (patch) | |
| tree | 32100d087fac464626a5df68ca9c1949c5d473e5 /common/modules/mango/scripts.nix | |
| parent | 8ae1bc8bc07b938a7fa44106ce699ad0dc17b510 (diff) | |
ummmmmm light mode
Diffstat (limited to 'common/modules/mango/scripts.nix')
| -rw-r--r-- | common/modules/mango/scripts.nix | 140 |
1 files changed, 137 insertions, 3 deletions
diff --git a/common/modules/mango/scripts.nix b/common/modules/mango/scripts.nix index b3de75d..edc9830 100644 --- a/common/modules/mango/scripts.nix +++ b/common/modules/mango/scripts.nix @@ -1,6 +1,5 @@ { pkgs, ... }: let - # CHANGED: writeShellScript -> writeShellScriptBin volume-control = pkgs.writeShellScriptBin "volume-control" '' TAG="audio-volume" @@ -29,7 +28,6 @@ let fi ''; - # CHANGED: writeShellScript -> writeShellScriptBin brightness-control = pkgs.writeShellScriptBin "brightness-control" '' TAG="screen-brightness" @@ -47,7 +45,6 @@ let "Brightness: $current%" ''; - # CHANGED: writeShellScript -> writeShellScriptBin mic-control = pkgs.writeShellScriptBin "mic-control" '' TAG="audio-mic" @@ -67,11 +64,148 @@ let "Microphone: On" fi ''; + beesettings = pkgs.writeShellScriptBin "beesettings" '' + CONFIG_FILE="$HOME/.config/beeSettings" + WALL_DIR="$HOME/Pictures/Wallpapers" + + init_settings() { + if [ ! -f "$CONFIG_FILE" ]; then + mkdir -p "$(dirname "$CONFIG_FILE")" + echo -e "theme=dark\nnightlight=off\nwallpaper=$WALL_DIR/default.jpg" > "$CONFIG_FILE" + fi + } + + get_val() { grep "^$1=" "$CONFIG_FILE" | cut -d'=' -f2; } + set_val() { sed -i "s|^$1=.*|$1=$2|" "$CONFIG_FILE"; } + set_layout() { mmsg -l "$1"; } + + apply_all() { + local theme=$(get_val "theme") + local wall=$(get_val "wallpaper") + local mode_flag="dark" + [ "$theme" == "light" ] && mode_flag="light" + + matugen image "$wall" -m "$mode_flag" -t scheme-content --source-color-index 0 2>/dev/null + wallust -q -s run "$wall" 2>/dev/null + + dconf write /org/gnome/desktop/interface/color-scheme "'prefer-$mode_flag'" + + if [ -z "$WAYLAND_DISPLAY" ] && [ -n "$DISPLAY" ]; then + xrdb -merge "$HOME/.Xresources" + fi + [ -f "$HOME/.config/sequences" ] && sh "$HOME/.config/sequences" + } + + cmd_wall() { + list_walls() { + for wall in "$WALL_DIR"/*.{jpg,jpeg,png,webp}; do + [ -f "$wall" ] && echo -en "$(basename "$wall")\0icon\x1f$wall\n" + done + } + + SELECTED=$(list_walls | rofi -dmenu -i -p "Wallpaper" \ + -show-icons \ + -theme-str 'element { orientation: vertical; padding: 15px; }' \ + -theme-str 'element-icon { size: 10em; horizontal-align: 0.5; }' \ + -theme-str 'listview { columns: 3; lines: 2; }' \ + -theme-str 'window { width: 50%; }') + + if [ -n "$SELECTED" ]; then + FULL_PATH="$WALL_DIR/$SELECTED" + set_val "wallpaper" "$FULL_PATH" + + if [ -n "$WAYLAND_DISPLAY" ]; then + if command -v swww >/dev/null 2>&1; then + swww img "$FULL_PATH" --transition-type grow --transition-fps 120 --transition-step 60 --transition-duration 1.5 + else + pkill swaybg; swaybg -i "$FULL_PATH" -m fill & + fi + else + feh --bg-fill "$FULL_PATH" + fi + + apply_all + fi + } + + cmd_settings() { + local theme=$(get_val "theme") + local nl=$(get_val "nightlight") + + CHOICE=$(echo -e "Mode: $theme\nNight Light: $nl\nLayouts" | rofi -dmenu -p "Settings" -i) + + case "$CHOICE" in + "Mode: "*) + [ "$theme" == "dark" ] && set_val "theme" "light" || set_val "theme" "dark" + apply_all + ;; + "Night Light: "*) + if [ "$nl" == "on" ]; then + set_val "nightlight" "off"; pkill wlsunset + else + set_val "nightlight" "on"; wlsunset -T 4500 & + fi + ;; + "Layouts") + L=$(echo -e "tile\nmonocle\nscroller\ntgmix\ngrid\ndeck\ncenter tile\nright tile\nvertical scroller\nvertical tile\nvertical grid\nvertical deck" | rofi -dmenu -p "Layout") + case "$L" in + "tile") + set_layout "T" + ;; + "monocle") + set_layout "M" + ;; + "scroller") + set_layout "S" + ;; + "tgmix") + set_layout "TG" + ;; + "grid") + set_layout "G" + ;; + "deck") + set_layout "K" + ;; + "center tile") + set_layout "CT" + ;; + "right tile") + set_layout "RT" + ;; + "vertical grid") + set_layout "VG" + ;; + "vertical tile") + set_layout "VT" + ;; + "vertical deck") + set_layout "VK" + ;; + "vertical scroller") + set_layout "VS" + ;; + esac + ;; + esac + } + + + init_settings + case "$1" in + wall) cmd_wall ;; + settings) cmd_settings ;; + apply) apply_all ;; + *) echo "Usage: bee {wall|settings|apply}" ;; + esac + ''; + in { home.packages = [ volume-control brightness-control mic-control + beesettings ]; } |
