aboutsummaryrefslogtreecommitdiff
path: root/dotfiles/hyprland/.local/bin/set-theme
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-02 12:16:38 -0500
committerCraig Jennings <c@cjennings.net>2026-06-02 12:16:38 -0500
commit8c32bbbf9fab115dc51afa17c081e0763cbee717 (patch)
tree246b46b53c956cfea07bc9d1c2b81f9f8de53d65 /dotfiles/hyprland/.local/bin/set-theme
parent3f370d6c19c83430547d1771b0e6fa669dc7d5c5 (diff)
downloadarchsetup-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-xdotfiles/hyprland/.local/bin/set-theme129
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