diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-02 12:16:38 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-02 12:16:38 -0500 |
| commit | 8c32bbbf9fab115dc51afa17c081e0763cbee717 (patch) | |
| tree | 246b46b53c956cfea07bc9d1c2b81f9f8de53d65 /dotfiles/hyprland/.local/bin/set-theme | |
| parent | 3f370d6c19c83430547d1771b0e6fa669dc7d5c5 (diff) | |
| download | archsetup-8c32bbbf9fab115dc51afa17c081e0763cbee717.tar.gz archsetup-8c32bbbf9fab115dc51afa17c081e0763cbee717.zip | |
refactor: drop in-repo dotfiles/, move stow tooling to the dotfiles repo
Since the installer clones DOTFILES_REPO into ~/.dotfiles and stows from there, the in-repo dotfiles/ tree was dead weight. Nothing reads it at install time. I removed it (831 files) now that both machines are migrated.
The Makefile's stow / restow / reset / unstow / import targets and the dotfile-script unit suites moved to the dotfiles repo. They sit alongside the scripts they manage and run standalone (cd ~/.dotfiles && make ...). This Makefile keeps the VM-integration targets and the installer-helper suite (safe-rm-rf).
I updated CLAUDE.md and README.md so stow operations run from ~/.dotfiles, and the dotfile-management, theme, and unit-test sections point at the standalone repo. The README was already describing the old in-repo model from before the installer switched to cloning. This brings it in line.
Diffstat (limited to 'dotfiles/hyprland/.local/bin/set-theme')
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/set-theme | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/dotfiles/hyprland/.local/bin/set-theme b/dotfiles/hyprland/.local/bin/set-theme deleted file mode 100755 index 075e47b..0000000 --- a/dotfiles/hyprland/.local/bin/set-theme +++ /dev/null @@ -1,129 +0,0 @@ -#!/bin/sh -# Theme switcher for Hyprland desktop -# Usage: set-theme <theme-name> -# set-theme --toggle -# set-theme --current -# Available themes: dupre, hudson - -THEME_DIR="$HOME/.config/themes" -CURRENT_FILE="$HOME/.config/current-theme" - -# Get current theme -get_current() { - if [ -f "$CURRENT_FILE" ]; then - cat "$CURRENT_FILE" - else - echo "hudson" # default - fi -} - -# List available themes -list_themes() { - for dir in "$THEME_DIR"/*/; do - basename "$dir" - done -} - -# Apply a theme -apply_theme() { - theme="$1" - - if [ ! -d "$THEME_DIR/$theme" ]; then - echo "Error: Theme '$theme' not found in $THEME_DIR" - echo "Available themes: $(list_themes | tr '\n' ' ')" - exit 1 - fi - - echo "Applying theme: $theme" - - # Copy configs that don't support sourcing - cp "$THEME_DIR/$theme/foot.ini" "$HOME/.config/foot/foot.ini" - cp "$THEME_DIR/$theme/fuzzel.ini" "$HOME/.config/fuzzel/fuzzel.ini" - cp "$THEME_DIR/$theme/waybar.css" "$HOME/.config/waybar/style.css" - cp "$THEME_DIR/$theme/dunstrc" "$HOME/.config/dunst/dunstrc" - cp "$THEME_DIR/$theme/hyprlock.conf" "$HOME/.config/hypr/hyprlock.conf" - cp "$THEME_DIR/$theme/Xresources" "$HOME/.Xresources" - - # Apply Xresources (for X11 apps and Emacs) - xrdb -merge "$HOME/.Xresources" 2>/dev/null - - # Apply Hyprland colors directly via hyprctl - case "$theme" in - dupre) - # Window borders - hyprctl keyword general:col.active_border "rgba(d7af5fff)" - hyprctl keyword general:col.inactive_border "rgba(474544ff)" - ;; - hudson) - # Window borders - hyprctl keyword general:col.active_border "rgba(daa520ff)" - hyprctl keyword general:col.inactive_border "rgba(444444ff)" - ;; - esac - - # Save current theme - echo "$theme" > "$CURRENT_FILE" - - # Set default wallpaper - swww img ~/pictures/wallpaper/trondheim-norway.jpg 2>/dev/null - - # Reload applications - killall -SIGUSR2 waybar 2>/dev/null - pkill dunst && dunst & - - # Notify user - notify-send "Theme" "Switched to $theme" -t 2000 - - echo "Theme '$theme' applied. Open new terminals to see changes." -} - -# Toggle between themes -toggle_theme() { - current=$(get_current) - case "$current" in - dupre) apply_theme "hudson" ;; - hudson) apply_theme "dupre" ;; - *) apply_theme "dupre" ;; - esac -} - -# Show picker with fuzzel -pick_theme() { - themes=$(list_themes) - current=$(get_current) - selected=$(echo "$themes" | fuzzel --dmenu --prompt "Theme (current: $current): ") - if [ -n "$selected" ]; then - apply_theme "$selected" - fi -} - -# Main -case "$1" in - --toggle|-t) - toggle_theme - ;; - --current|-c) - get_current - ;; - --list|-l) - list_themes - ;; - --pick|-p) - pick_theme - ;; - --help|-h) - echo "Usage: set-theme <theme-name>" - echo " set-theme --toggle Toggle between themes" - echo " set-theme --current Show current theme" - echo " set-theme --list List available themes" - echo " set-theme --pick Pick theme with fuzzel" - echo "" - echo "Available themes: $(list_themes | tr '\n' ' ')" - ;; - "") - pick_theme - ;; - *) - apply_theme "$1" - ;; -esac |
