summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CLAUDE.md45
-rw-r--r--Makefile123
-rwxr-xr-xarchsetup40
-rw-r--r--dotfiles/common/.Xresources87
-rw-r--r--dotfiles/common/.config/dunst/dunstrc26
-rw-r--r--dotfiles/dwm/.gnupg/gpg-agent.conf (renamed from dotfiles/common/.gnupg/gpg-agent.conf)0
-rw-r--r--dotfiles/dwm/.gnupg/pinentry-dmenu.conf (renamed from dotfiles/common/.gnupg/pinentry-dmenu.conf)0
-rw-r--r--dotfiles/dwm/.local/share/applications/dwm.desktop (renamed from dotfiles/common/.local/share/applications/dwm.desktop)0
-rw-r--r--dotfiles/dwm/.local/share/applications/emacsclient-mail.desktop (renamed from dotfiles/common/.local/share/applications/emacsclient-mail.desktop)0
-rw-r--r--dotfiles/dwm/.local/share/applications/file.desktop (renamed from dotfiles/common/.local/share/applications/file.desktop)0
-rw-r--r--dotfiles/dwm/.local/share/applications/img.desktop (renamed from dotfiles/common/.local/share/applications/img.desktop)0
-rw-r--r--dotfiles/dwm/.local/share/applications/lock-screen.desktop (renamed from dotfiles/common/.local/share/applications/lock-screen.desktop)0
-rw-r--r--dotfiles/dwm/.local/share/applications/logout.desktop (renamed from dotfiles/common/.local/share/applications/logout.desktop)0
-rw-r--r--dotfiles/dwm/.local/share/applications/mail.desktop (renamed from dotfiles/common/.local/share/applications/mail.desktop)0
-rw-r--r--dotfiles/dwm/.local/share/applications/pdf.desktop (renamed from dotfiles/common/.local/share/applications/pdf.desktop)0
-rw-r--r--dotfiles/dwm/.local/share/applications/reboot.desktop (renamed from dotfiles/common/.local/share/applications/reboot.desktop)0
-rw-r--r--dotfiles/dwm/.local/share/applications/shutdown.desktop (renamed from dotfiles/common/.local/share/applications/shutdown.desktop)0
-rw-r--r--dotfiles/dwm/.local/share/applications/suspend.desktop (renamed from dotfiles/common/.local/share/applications/suspend.desktop)0
-rw-r--r--dotfiles/dwm/.local/share/applications/text.desktop (renamed from dotfiles/common/.local/share/applications/text.desktop)0
-rw-r--r--dotfiles/hyprland/.config/foot/foot.ini44
-rw-r--r--dotfiles/hyprland/.config/fuzzel/fuzzel.ini4
-rw-r--r--dotfiles/hyprland/.config/hypr/hyprland.conf2
-rw-r--r--dotfiles/hyprland/.config/hypr/hyprlock.conf22
-rw-r--r--dotfiles/hyprland/.config/waybar/style.css37
-rw-r--r--todo.org20
25 files changed, 277 insertions, 173 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
index d99cb74..846c26f 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -10,16 +10,29 @@ Arch Linux installation and configuration scripts with dotfiles managed via GNU
- `dotfiles/hyprland/` - Hyprland-specific dotfiles (7 scripts)
- `docs/` - Documentation and package lists
- `reference-repos/` - External dotfile references
+- `Makefile` - GNU Stow operations for dotfile management
-## Script Organization (Jan 2026 Refactor)
+## Makefile Targets
```
-dotfiles/common/.local/bin/ → Universal scripts (44) - work on X11 & Wayland
-dotfiles/dwm/.local/bin/ → X11/DWM-only scripts (8)
-dotfiles/hyprland/.local/bin/ → Hyprland-only scripts (7)
+make stow dwm # Fresh install (common + dwm)
+make stow hyprland # Fresh install (common + hyprland)
+make restow dwm # Refresh links after git pull
+make reset hyprland # Fix conflicts, keep repo version
+make unstow dwm # Remove all symlinks
+make import common # fzf select → import to common/
+make import dwm # fzf select → import to dwm/
+make import hyprland # fzf select → import to hyprland/
+```
+
+## Script Counts
+```
+dotfiles/common/.local/bin/ → 33 universal scripts
+dotfiles/dwm/.local/bin/ → 8 X11/DWM scripts
+dotfiles/hyprland/.local/bin/ → 7 Hyprland scripts
```
### DWM Scripts (8)
-Scripts bound in ~/code/dwm/config.def.h:
+Scripts bound in ~/code/dwm/config.def.h (on velox):
- brightness (XF86 keys), toggle-touchpad (Mod+F9), dmenuexitmenu (Mod+Shift+Q)
- Plus: airplanemodetoggle, colorpick, dmenuunicode, screenshotmenu, wallsearch
@@ -28,7 +41,7 @@ All actively used in configs:
- cycle-layout, layout-navigate, pinentry-fuzzel, set-theme
- toggle-scratchpad, waybar-layout, waybar-netspeed
-## Shell Configuration (Jan 2026 Refactor)
+## Shell Configuration
```
~/.profile → Environment variables only (POSIX compatible)
~/.bash_profile → Sources .profile + .bashrc for login shells
@@ -52,35 +65,25 @@ All actively used in configs:
- `dotfiles/common/.profile.d/` - Shell environment scripts
- `dotfiles/common/.config/qt5ct/qt5ct.conf` - Qt5 theming
- `dotfiles/common/.config/qt6ct/qt6ct.conf` - Qt6 theming
-- `dotfiles/common/.local/bin/resetmimetypes` - MIME associations script
-
-## Stowing Dotfiles
-- DWM installs: `stow --target=$HOME common && stow --target=$HOME dwm`
-- Hyprland installs: `stow --target=$HOME common && stow --target=$HOME hyprland`
## Pending Work
-- Review common/.local/bin/ scripts (44) - decide which to keep
-- Review common/.config/ directories (27) for unused app configs
-- Task #6: Add Makefile targets for foolproof stowing
- Task #4: Evaluate Euphonica MPD client (May 2026)
## Recent Changes (Jan 2026)
+- Added Makefile for GNU Stow operations (stow, restow, reset, unstow, import)
- Renamed dotfiles/system/ to dotfiles/common/ for clarity
+- Cleaned up scripts: common 44→33, dwm 50→8, hyprland 8→7
- Deleted unused configs: ghostty, lf, mopidy, nitrogen, pychess, JetBrains, youtube-dl, sublime-merge
-- Added yt-dlp config (replaces youtube-dl)
-- Cleaned up DWM scripts: 26 → 8 (removed 17 unreferenced + 24 statusbar scripts)
-- Cleaned up Hyprland scripts: 8 → 7 (removed power-menu, using wlogout)
-- Removed lf scripts from common (lfrun, lfub)
+- Added yt-dlp config and org-protocol-setup script
+- Fixed yt-dlp aliases: --add-metadata → --embed-metadata
- Refactored shell configs: proper .profile/.bashrc/.zshrc separation
- Created .bashrc.d/ and .zshrc.d/ for modular configs
- Added Qt theming with adwaita-qt5/qt6
-- Added font packages: cantarell-fonts, ttf-caladea, ttf-carlito, ttf-croscore
- Pruned ~90 desktop files from app menu with NoDisplay=true overrides
-- Switched file manager from Thunar to Nautilus
## Notes
- Desktop file overrides go in `dotfiles/hyprland/.local/share/applications/`
-- Stow conflicts require manual symlinks: `ln -sf source target`
- MPD is configured but mpv handles audio file associations
- BerkeleyMono Nerd Font is the primary monospace font
- DWM keybindings defined in ~/code/dwm/config.def.h on velox
+- audacious config kept in common/ for potential future use
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..3679c86
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,123 @@
+# Makefile for archsetup dotfiles
+# GNU Stow operations for managing dotfiles
+
+STOW := stow --target=$(HOME) --no-folding
+DOTFILES := $(shell pwd)/dotfiles
+
+# Extract DE from command line (e.g., 'make stow dwm' -> DE=dwm)
+DE := $(filter dwm hyprland,$(MAKECMDGOALS))
+
+# Extract DEST from command line for import (e.g., 'make import common' -> DEST=common)
+DEST := $(filter common dwm hyprland,$(MAKECMDGOALS))
+
+.PHONY: help stow restow reset unstow import common dwm hyprland
+
+# Default target - show help
+help:
+ @echo "Dotfiles Management (GNU Stow)"
+ @echo ""
+ @echo "Usage: make <target> <de|dest>"
+ @echo ""
+ @echo "Desktop Environments / Destinations:"
+ @echo " common Shared configs (all setups)"
+ @echo " dwm X11/DWM specific"
+ @echo " hyprland Wayland/Hyprland specific"
+ @echo ""
+ @echo "Targets:"
+ @echo " stow Create symlinks (fresh install) - requires DE"
+ @echo " restow Refresh symlinks (unlink + relink) - requires DE"
+ @echo " reset Resolve conflicts, keep repo version - requires DE"
+ @echo " unstow Remove all symlinks - requires DE"
+ @echo " import Import new app configs into repo (fzf) - requires dest"
+ @echo ""
+ @echo "Examples:"
+ @echo " make stow dwm # Fresh DWM install (common + dwm)"
+ @echo " make stow hyprland # Fresh Hyprland install (common + hyprland)"
+ @echo " make restow dwm # Refresh DWM links after git pull"
+ @echo " make reset hyprland # Resolve conflicts, keep repo version"
+ @echo " make import common # Import configs to common/"
+ @echo " make import hyprland # Import configs to hyprland/"
+ @echo ""
+
+# Prevent 'common', 'dwm' and 'hyprland' from being treated as file targets
+common dwm hyprland:
+ @:
+
+# Validate DE was provided (for stow/restow/reset/unstow)
+check-de:
+ifeq ($(DE),)
+ @echo "Error: Desktop environment required (dwm or hyprland)."
+ @echo ""
+ @$(MAKE) --no-print-directory help
+ @exit 1
+endif
+
+# Validate DEST was provided (for import)
+check-dest:
+ifeq ($(DEST),)
+ @echo "Error: Destination required (common, dwm, or hyprland)."
+ @echo ""
+ @$(MAKE) --no-print-directory help
+ @exit 1
+endif
+
+# Stow - create symlinks
+stow: check-de
+ @echo "Stowing common + $(DE)..."
+ @cd $(DOTFILES) && $(STOW) common
+ @cd $(DOTFILES) && $(STOW) $(DE)
+ @echo "Done."
+
+# Restow - refresh symlinks (unlink + relink)
+restow: check-de
+ @echo "Restowing common + $(DE)..."
+ @cd $(DOTFILES) && $(STOW) --restow common
+ @cd $(DOTFILES) && $(STOW) --restow $(DE)
+ @echo "Done."
+
+# Reset - resolve conflicts by adopting then reverting to repo version
+reset: check-de
+ @echo "Resetting common + $(DE)..."
+ @cd $(DOTFILES) && $(STOW) --adopt common
+ @cd $(DOTFILES) && $(STOW) --adopt $(DE)
+ @echo "Reverting adopted files to repo version..."
+ @git checkout -- dotfiles/
+ @echo "Done. Symlinks created, repo unchanged."
+
+# Unstow - remove symlinks
+unstow: check-de
+ @echo "Unstowing common + $(DE)..."
+ @cd $(DOTFILES) && $(STOW) --delete common
+ @cd $(DOTFILES) && $(STOW) --delete $(DE)
+ @echo "Done."
+
+# Import - select and import new app configs into repo
+import: check-dest
+ @echo "Select directories to import (Tab to multi-select, Enter to confirm):"
+ @echo ""
+ @selections=$$({ \
+ find $(HOME) -maxdepth 1 -mindepth 1 -name '.*' -type d 2>/dev/null | grep -v '\.cache\|\.local\|\.config' | sed 's|$(HOME)/||'; \
+ find $(HOME)/.config -maxdepth 1 -mindepth 1 -type d 2>/dev/null | sed 's|$(HOME)/||'; \
+ find $(HOME)/.local -maxdepth 2 -mindepth 1 -type d 2>/dev/null | sed 's|$(HOME)/||'; \
+ } | sort -u | fzf --multi --prompt="Import to $(DEST)> " --header="Select configs to import into dotfiles/$(DEST)/"); \
+ if [ -z "$$selections" ]; then \
+ echo "No selections made."; \
+ exit 0; \
+ fi; \
+ echo ""; \
+ for dir in $$selections; do \
+ src="$(HOME)/$$dir"; \
+ dest="$(DOTFILES)/$(DEST)/$$dir"; \
+ if [ -d "$$dest" ]; then \
+ echo "Skipping $$dir (already exists in dotfiles/$(DEST))"; \
+ else \
+ echo "Importing $$dir to $(DEST)..."; \
+ mkdir -p "$$(dirname $$dest)"; \
+ mv "$$src" "$$dest"; \
+ fi; \
+ done; \
+ echo ""; \
+ echo "Restowing $(DEST)..."; \
+ cd $(DOTFILES) && $(STOW) --restow $(DEST); \
+ echo ""; \
+ echo "Done. Don't forget to: git add -A && git commit"
diff --git a/archsetup b/archsetup
index faffda2..790e966 100755
--- a/archsetup
+++ b/archsetup
@@ -493,14 +493,6 @@ is_btrfs_root() {
[ "$(findmnt -n -o FSTYPE /)" = "btrfs" ]
}
-# CPU Detection
-is_amd_zen5() {
- # Returns 0 (true) if CPU is AMD Zen 5 (family 26/0x1a)
- # Used to detect CPUs affected by RDSEED32 bug (CVE-2025-62626)
- grep -q "AuthenticAMD" /proc/cpuinfo && \
- grep -E "^cpu family" /proc/cpuinfo | head -1 | grep -q ": 26$"
-}
-
# Encryption Detection
is_encrypted_root() {
# Returns 0 (true) if root filesystem is on an encrypted volume
@@ -1089,6 +1081,18 @@ EOF
action="enabling geoclue geolocation service" && display "task" "$action"
systemctl enable geoclue.service >> "$logfile" 2>&1 || error_warn "$action" "$?"
+ # Whitelist gammastep in geoclue (prevents "unable to obtain geoclue client path" error)
+ action="whitelisting gammastep in geoclue" && display "task" "$action"
+ if ! grep -q "^\[gammastep\]" /etc/geoclue/geoclue.conf 2>/dev/null; then
+ cat >> /etc/geoclue/geoclue.conf << 'EOF'
+
+[gammastep]
+allowed=true
+system=false
+users=
+EOF
+ fi
+
# Fix dbus-broker race condition with sysusers (geoclue user must exist before dbus parses service files)
action="configuring dbus-broker to wait for sysusers" && display "task" "$action"
mkdir -p /etc/systemd/system/dbus-broker.service.d
@@ -1951,26 +1955,6 @@ EOF
sed -i "s/.*GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT=\"rw loglevel=2 rd.systemd.show_status=auto rd.udev.log_level=2 nvme.noacpi=1 mem_sleep_default=deep nowatchdog random.trust_cpu=off quiet splash\"/g" /etc/default/grub
fi
- # Hardware-specific workarounds
- display "subtitle" "Hardware Workarounds"
-
- # AMD Zen 5 RDSEED32 bug (CVE-2025-62626)
- # Zen 5 CPUs have a broken RDSEED instruction that causes kernel warnings at boot.
- # Adding clearcpuid=rdseed disables the instruction via CPUID masking, suppressing
- # the "RDSEED32 is broken. Disabling the corresponding CPUID bit." message.
- # This is cosmetic - the kernel already disables RDSEED when it detects the bug.
- if is_amd_zen5; then
- action="applying AMD Zen 5 RDSEED32 workaround (CVE-2025-62626)" && display "task" "$action"
- if [ -f /etc/default/grub ]; then
- # Add clearcpuid=rdseed if not already present
- if ! grep -q "clearcpuid=rdseed" /etc/default/grub; then
- sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="\(.*\)"/GRUB_CMDLINE_LINUX_DEFAULT="\1 clearcpuid=rdseed"/' /etc/default/grub
- fi
- fi
- else
- display "task" "no hardware workarounds needed"
- fi
-
# Regenerate GRUB config after all modifications
if [ -f /etc/default/grub ]; then
action="generating grub configuration" && display "task" "$action"
diff --git a/dotfiles/common/.Xresources b/dotfiles/common/.Xresources
index d149a72..96e4803 100644
--- a/dotfiles/common/.Xresources
+++ b/dotfiles/common/.Xresources
@@ -1,68 +1,69 @@
-!! X Resources - Dupre theme
-!! Warm, earthy colors from dupre-theme.el
+!! X Resources - Hudson theme
+!! Tomorrow Night + Goldenrod accent
!! For X11 applications (st, xterm, etc.) and Emacs
!! X Font Settings
Xft.dpi: 109
-Xcursor.size: 32
-Xcursor.theme: Vimix-white-cursors
Xft.autohint: 0
Xft.lcdfilter: lcddefault
Xft.hintstyle: hintfull
Xft.hinting: 1
Xft.antialias: 1
Xft.rgba: rgb
+Xcursor.size: 32
+Xcursor.theme: Vimix-white-cursors
!! Emacs
Emacs*toolBar: 0
!! ============================================================================
-!! Dupre Theme Colors
+!! Hudson Theme Colors (Tomorrow Night + Goldenrod)
!! ============================================================================
-#define dupre_fg #f0fef0
-#define dupre_bg #151311
-#define dupre_black #252321
-#define dupre_red #d47c59
-#define dupre_green #a4ac64
-#define dupre_yellow #d7af5f
-#define dupre_blue #67809c
-#define dupre_magenta #b294bb
-#define dupre_cyan #8a9496
-#define dupre_white #d0cbc0
-#define dupre_br_black #474544
-#define dupre_br_red #edb08f
-#define dupre_br_green #ccc768
-#define dupre_br_yellow #ffd75f
-#define dupre_br_blue #b2c3cc
-#define dupre_br_magenta #c397d8
-#define dupre_br_cyan #acb0b3
-#define dupre_br_white #f0fef0
+#define hudson_fg #eeeeee
+#define hudson_bg #222222
+#define hudson_black #222222
+#define hudson_red #cc6666
+#define hudson_green #b5bd68
+#define hudson_yellow #f0c674
+#define hudson_blue #81a2be
+#define hudson_magenta #b294bb
+#define hudson_cyan #8abeb7
+#define hudson_white #c5c8c6
+#define hudson_br_black #444444
+#define hudson_br_red #d54e53
+#define hudson_br_green #b9ca4a
+#define hudson_br_yellow #e0b040
+#define hudson_br_blue #7aa6da
+#define hudson_br_magenta #c397d8
+#define hudson_br_cyan #70c0b1
+#define hudson_br_white #eeeeee
!! Active theme aliases
-#define theme_fg dupre_fg
-#define theme_bg dupre_bg
-#define theme_black dupre_black
-#define theme_red dupre_red
-#define theme_green dupre_green
-#define theme_yellow dupre_yellow
-#define theme_blue dupre_blue
-#define theme_magenta dupre_magenta
-#define theme_cyan dupre_cyan
-#define theme_white dupre_white
-#define theme_br_black dupre_br_black
-#define theme_br_red dupre_br_red
-#define theme_br_green dupre_br_green
-#define theme_br_yellow dupre_br_yellow
-#define theme_br_blue dupre_br_blue
-#define theme_br_magenta dupre_br_magenta
-#define theme_br_cyan dupre_br_cyan
-#define theme_br_white dupre_br_white
+#define theme_fg hudson_fg
+#define theme_bg hudson_bg
+#define theme_black hudson_black
+#define theme_red hudson_red
+#define theme_green hudson_green
+#define theme_yellow hudson_yellow
+#define theme_blue hudson_blue
+#define theme_magenta hudson_magenta
+#define theme_cyan hudson_cyan
+#define theme_white hudson_white
+#define theme_br_black hudson_br_black
+#define theme_br_red hudson_br_red
+#define theme_br_green hudson_br_green
+#define theme_br_yellow hudson_br_yellow
+#define theme_br_blue hudson_br_blue
+#define theme_br_magenta hudson_br_magenta
+#define theme_br_cyan hudson_br_cyan
+#define theme_br_white hudson_br_white
!! ============================================================================
!! ST (suckless terminal) settings
-st.font: BerkeleyMono Nerd Font:size=12
+!! size is in points (fontconfig syntax)
+st.font: BerkeleyMono Nerd Font:size=13
st.background: theme_bg
st.foreground: theme_fg
st.color0: theme_black
@@ -83,7 +84,7 @@ st.color14: theme_br_cyan
st.color15: theme_br_white
!! XTerm settings
-XTerm*faceName: BerkeleyMono Nerd Font:size=12
+XTerm*faceName: BerkeleyMono Nerd Font:size=13
XTerm*selectToClipboard: true
XTerm*background: theme_bg
XTerm*foreground: theme_fg
diff --git a/dotfiles/common/.config/dunst/dunstrc b/dotfiles/common/.config/dunst/dunstrc
index 104df28..2cbf0e6 100644
--- a/dotfiles/common/.config/dunst/dunstrc
+++ b/dotfiles/common/.config/dunst/dunstrc
@@ -1,5 +1,5 @@
-# Dunst config - Dupre theme
-# Warm, earthy colors from dupre-theme.el
+# Dunst config - Hudson theme
+# Tomorrow Night + Goldenrod accent
[global]
# Display
@@ -21,13 +21,13 @@ corner_radius = 10
progress_bar_frame_width = 0
progress_bar_corner_radius = 3
-# Colors - Dupre theme
-foreground = "#f0fef0"
-frame_color = "#d7af5f"
-highlight = "#d7af5f, #ccc768"
+# Colors - Hudson theme
+foreground = "#eeeeee"
+frame_color = "#daa520"
+highlight = "#daa520, #f0c674"
-# Text
-font = BerkeleyMono Nerd Font 11
+# Text (size in points, Pango syntax)
+font = BerkeleyMono Nerd Font 13
markup = full
format = "<small>%a</small>\n<b>%s</b>\n%b"
alignment = left
@@ -50,18 +50,18 @@ mouse_middle_click = do_action, close_current
mouse_right_click = close_all
[urgency_low]
-background = "#151311f0"
+background = "#222222f0"
timeout = 3
[urgency_normal]
-background = "#151311f0"
+background = "#222222f0"
timeout = 8
[urgency_critical]
-background = "#7c2a09f0"
-frame_color = "#d47c59"
+background = "#cc6666f0"
+frame_color = "#d54e53"
highlight = "#ff2a00"
-foreground = "#f0fef0"
+foreground = "#eeeeee"
timeout = 0
[fullscreen_delay_everything]
diff --git a/dotfiles/common/.gnupg/gpg-agent.conf b/dotfiles/dwm/.gnupg/gpg-agent.conf
index 6448665..6448665 100644
--- a/dotfiles/common/.gnupg/gpg-agent.conf
+++ b/dotfiles/dwm/.gnupg/gpg-agent.conf
diff --git a/dotfiles/common/.gnupg/pinentry-dmenu.conf b/dotfiles/dwm/.gnupg/pinentry-dmenu.conf
index ccd4d55..ccd4d55 100644
--- a/dotfiles/common/.gnupg/pinentry-dmenu.conf
+++ b/dotfiles/dwm/.gnupg/pinentry-dmenu.conf
diff --git a/dotfiles/common/.local/share/applications/dwm.desktop b/dotfiles/dwm/.local/share/applications/dwm.desktop
index ba3bd00..ba3bd00 100644
--- a/dotfiles/common/.local/share/applications/dwm.desktop
+++ b/dotfiles/dwm/.local/share/applications/dwm.desktop
diff --git a/dotfiles/common/.local/share/applications/emacsclient-mail.desktop b/dotfiles/dwm/.local/share/applications/emacsclient-mail.desktop
index 6efcf61..6efcf61 100644
--- a/dotfiles/common/.local/share/applications/emacsclient-mail.desktop
+++ b/dotfiles/dwm/.local/share/applications/emacsclient-mail.desktop
diff --git a/dotfiles/common/.local/share/applications/file.desktop b/dotfiles/dwm/.local/share/applications/file.desktop
index 5df1633..5df1633 100644
--- a/dotfiles/common/.local/share/applications/file.desktop
+++ b/dotfiles/dwm/.local/share/applications/file.desktop
diff --git a/dotfiles/common/.local/share/applications/img.desktop b/dotfiles/dwm/.local/share/applications/img.desktop
index 42aa81e..42aa81e 100644
--- a/dotfiles/common/.local/share/applications/img.desktop
+++ b/dotfiles/dwm/.local/share/applications/img.desktop
diff --git a/dotfiles/common/.local/share/applications/lock-screen.desktop b/dotfiles/dwm/.local/share/applications/lock-screen.desktop
index 2bd7afa..2bd7afa 100644
--- a/dotfiles/common/.local/share/applications/lock-screen.desktop
+++ b/dotfiles/dwm/.local/share/applications/lock-screen.desktop
diff --git a/dotfiles/common/.local/share/applications/logout.desktop b/dotfiles/dwm/.local/share/applications/logout.desktop
index 8c3bc3a..8c3bc3a 100644
--- a/dotfiles/common/.local/share/applications/logout.desktop
+++ b/dotfiles/dwm/.local/share/applications/logout.desktop
diff --git a/dotfiles/common/.local/share/applications/mail.desktop b/dotfiles/dwm/.local/share/applications/mail.desktop
index d24aea2..d24aea2 100644
--- a/dotfiles/common/.local/share/applications/mail.desktop
+++ b/dotfiles/dwm/.local/share/applications/mail.desktop
diff --git a/dotfiles/common/.local/share/applications/pdf.desktop b/dotfiles/dwm/.local/share/applications/pdf.desktop
index 8c38677..8c38677 100644
--- a/dotfiles/common/.local/share/applications/pdf.desktop
+++ b/dotfiles/dwm/.local/share/applications/pdf.desktop
diff --git a/dotfiles/common/.local/share/applications/reboot.desktop b/dotfiles/dwm/.local/share/applications/reboot.desktop
index ae2c76e..ae2c76e 100644
--- a/dotfiles/common/.local/share/applications/reboot.desktop
+++ b/dotfiles/dwm/.local/share/applications/reboot.desktop
diff --git a/dotfiles/common/.local/share/applications/shutdown.desktop b/dotfiles/dwm/.local/share/applications/shutdown.desktop
index 2d93aa0..2d93aa0 100644
--- a/dotfiles/common/.local/share/applications/shutdown.desktop
+++ b/dotfiles/dwm/.local/share/applications/shutdown.desktop
diff --git a/dotfiles/common/.local/share/applications/suspend.desktop b/dotfiles/dwm/.local/share/applications/suspend.desktop
index ab8addf..ab8addf 100644
--- a/dotfiles/common/.local/share/applications/suspend.desktop
+++ b/dotfiles/dwm/.local/share/applications/suspend.desktop
diff --git a/dotfiles/common/.local/share/applications/text.desktop b/dotfiles/dwm/.local/share/applications/text.desktop
index 41ee05f..41ee05f 100644
--- a/dotfiles/common/.local/share/applications/text.desktop
+++ b/dotfiles/dwm/.local/share/applications/text.desktop
diff --git a/dotfiles/hyprland/.config/foot/foot.ini b/dotfiles/hyprland/.config/foot/foot.ini
index 8fe19b3..4e9681c 100644
--- a/dotfiles/hyprland/.config/foot/foot.ini
+++ b/dotfiles/hyprland/.config/foot/foot.ini
@@ -1,5 +1,5 @@
-# foot terminal configuration - Dupre theme
-# Warm, earthy colors from dupre-theme.el
+# foot terminal configuration - Hudson theme
+# Tomorrow Night + Goldenrod accent
[main]
term=xterm-256color
@@ -10,29 +10,29 @@ pad=8x8
lines=10000
[colors]
-# Dupre theme colors (from Emacs dupre-theme.el)
-background=151311
-foreground=f0fef0
+# Hudson theme - Tomorrow Night + Goldenrod accent
+background=222222
+foreground=eeeeee
-# Regular colors (0-7) - dupre palette
-regular0=252321 # black (dupre-bg+1)
-regular1=d47c59 # red (dupre-red)
-regular2=a4ac64 # green (dupre-green)
-regular3=d7af5f # yellow (dupre-yellow)
-regular4=67809c # blue (dupre-blue)
+# Regular colors (0-7)
+regular0=222222 # black
+regular1=cc6666 # red
+regular2=b5bd68 # green
+regular3=f0c674 # yellow
+regular4=81a2be # blue
regular5=b294bb # magenta
-regular6=8a9496 # cyan (dupre-steel)
-regular7=d0cbc0 # white (dupre-gray+2)
+regular6=8abeb7 # cyan
+regular7=c5c8c6 # white
# Bright colors (8-15)
-bright0=474544 # bright black (dupre-bg+2)
-bright1=edb08f # bright red (dupre-red+1)
-bright2=ccc768 # bright green (dupre-green+1)
-bright3=ffd75f # bright yellow (dupre-yellow+1)
-bright4=b2c3cc # bright blue (dupre-blue+1)
+bright0=444444 # bright black
+bright1=d54e53 # bright red
+bright2=b9ca4a # bright green
+bright3=e0b040 # bright yellow (adjusted for gold)
+bright4=7aa6da # bright blue
bright5=c397d8 # bright magenta
-bright6=acb0b3 # bright cyan (dupre-steel+1)
-bright7=f0fef0 # bright white (dupre-fg)
+bright6=70c0b1 # bright cyan
+bright7=eeeeee # bright white
-# Cursor: muted gold on dark
-cursor=151311 d7af5f
+# Cursor: goldenrod on dark
+cursor=222222 daa520
diff --git a/dotfiles/hyprland/.config/fuzzel/fuzzel.ini b/dotfiles/hyprland/.config/fuzzel/fuzzel.ini
index 0efda0d..39dabc0 100644
--- a/dotfiles/hyprland/.config/fuzzel/fuzzel.ini
+++ b/dotfiles/hyprland/.config/fuzzel/fuzzel.ini
@@ -1,5 +1,5 @@
-# Fuzzel config - matching waybar DWM-inspired theme
-# Colors from waybar: bg=#222222, cpu=#bbbbbb, clock=#eeeeee, accent=#daa520
+# Fuzzel config - Hudson theme
+# Tomorrow Night + Goldenrod accent
[main]
# size is in points (fontconfig syntax)
diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf
index 390d905..709865a 100644
--- a/dotfiles/hyprland/.config/hypr/hyprland.conf
+++ b/dotfiles/hyprland/.config/hypr/hyprland.conf
@@ -10,7 +10,7 @@ monitor=,preferred,auto,auto
# ============================================================================
# Startup Applications
# ============================================================================
-exec-once = hyprpm reload
+exec-once = hyprpm reload && sleep 1 && hyprctl dismissnotify -1
exec-once = waybar
exec-once = swww-daemon && sleep 1 && swww img ~/pictures/wallpaper/trondheim-norway.jpg
exec-once = dunst
diff --git a/dotfiles/hyprland/.config/hypr/hyprlock.conf b/dotfiles/hyprland/.config/hypr/hyprlock.conf
index fd85651..f9c08bb 100644
--- a/dotfiles/hyprland/.config/hypr/hyprlock.conf
+++ b/dotfiles/hyprland/.config/hypr/hyprlock.conf
@@ -1,5 +1,5 @@
-# Hyprlock configuration - Dupre theme
-# Warm, earthy colors from dupre-theme.el
+# Hyprlock configuration - Hudson theme
+# Tomorrow Night + Goldenrod accent
general {
disable_loading_bar = false
@@ -25,7 +25,7 @@ label {
monitor =
text = $TIME12
text_align = center
- color = rgb(969385)
+ color = rgb(bbbbbb)
font_size = 64
font_family = BerkeleyMono Nerd Font
position = 0, 15%
@@ -40,7 +40,7 @@ image {
size = 120
rounding = -1
border_size = 3
- border_color = rgb(d7af5f)
+ border_color = rgb(daa520)
position = 0, 0%
halign = center
valign = center
@@ -54,7 +54,7 @@ label {
monitor =
text = $USER
text_align = center
- color = rgb(d7af5f)
+ color = rgb(daa520)
font_size = 36
font_family = BerkeleyMono Nerd Font
position = 0, -7%
@@ -71,19 +71,19 @@ input-field {
dots_spacing = 0.15
dots_center = true
dots_rounding = -1
- outer_color = rgb(151311)
- inner_color = rgb(151311)
- font_color = rgb(969385)
+ outer_color = rgb(222222)
+ inner_color = rgb(222222)
+ font_color = rgb(bbbbbb)
fade_on_empty = true
fade_timeout = 1000
placeholder_text = <i>Password...</i>
hide_input = false
rounding = 8
- check_color = rgb(d7af5f)
- fail_color = rgb(d47c59)
+ check_color = rgb(daa520)
+ fail_color = rgb(d54e53)
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
fail_transition = 300
- capslock_color = rgb(ccc768)
+ capslock_color = rgb(e0b040)
numlock_color = -1
bothlock_color = -1
invert_numlock = false
diff --git a/dotfiles/hyprland/.config/waybar/style.css b/dotfiles/hyprland/.config/waybar/style.css
index 03b11b6..9056529 100644
--- a/dotfiles/hyprland/.config/waybar/style.css
+++ b/dotfiles/hyprland/.config/waybar/style.css
@@ -1,5 +1,5 @@
-/* Waybar style - Dupre theme */
-/* Warm, earthy colors from dupre-theme.el */
+/* Waybar style - Hudson theme */
+/* Tomorrow Night + Goldenrod accent */
* {
border: none;
@@ -22,27 +22,27 @@ window#waybar {
padding: 0.5rem;
margin: 0.2rem;
background-color: transparent;
- color: #969385;
+ color: #bbbbbb;
border-radius: 1rem;
transition: all 0.3s ease;
}
#workspaces button.active {
- background: #d7af5f;
- color: #151311;
+ background: #daa520;
+ color: #222222;
border-radius: 1rem;
}
#workspaces button.urgent {
- background-color: rgba(212, 124, 89, 0.4);
+ background-color: rgba(255, 88, 88, 0.4);
}
.modules-right, .modules-left {
- background-color: #151311;
+ background-color: #222222;
border-radius: 1rem;
padding: 0.2rem 0.6rem;
margin: 0.3rem;
- border: 0.095rem solid #d7af5f;
+ border: 0.095rem solid #daa520;
box-shadow: 0rem 0.2rem 0.4rem rgba(0,0,0,0.5);
}
@@ -53,22 +53,17 @@ window#waybar {
#custom-netspeed,
#battery,
#wireplumber,
-#idle_inhibitor,
#tray,
#clock,
#custom-layout,
#window {
padding: 0.4rem;
margin: 0.3rem;
- color: #969385;
+ color: #bbbbbb;
background-color: transparent;
border-radius: 1rem;
}
-#idle_inhibitor {
- margin-right: 0.8rem;
-}
-
#sysmonitor {
margin: 0.3rem;
background-color: transparent;
@@ -83,28 +78,28 @@ window#waybar {
#wireplumber:hover,
#sysmonitor:hover,
#custom-layout:hover {
- background-color: #474544;
+ background-color: #444444;
border-radius: 1rem;
}
#clock {
- color: #f0fef0;
+ color: #eeeeee;
}
#wireplumber {
- color: #969385;
+ color: #bbbbbb;
}
#wireplumber.muted {
- color: #58574e;
+ color: #666666;
}
#battery.warning {
- color: #d7af5f;
+ color: #daa520;
}
#battery.critical {
- color: #d47c59;
+ color: #ff5858;
}
#tray > .passive {
@@ -113,5 +108,5 @@ window#waybar {
#tray > .needs-attention {
-gtk-icon-effect: highlight;
- background-color: #d7af5f;
+ background-color: #daa520;
}
diff --git a/todo.org b/todo.org
index 877a35f..f9cf542 100644
--- a/todo.org
+++ b/todo.org
@@ -327,8 +327,10 @@ Current config uses fixed pixel margins - may need adjustment for laptop screen.
***** DONE [#B] Fix rseed32 issue in console at boot
CLOSED: [2026-01-26 Mon]
-Added clearcpuid=rdseed kernel parameter to suppress "RDSEED32 is broken" message.
-Also added is_amd_zen5() detection and Hardware Workarounds section to archsetup.
+Attempted clearcpuid=rdseed kernel parameter but it doesn't suppress the message.
+The kernel detection runs separately and still logs the warning. Proper fix requires
+a BIOS update from Framework with newer AGESA microcode. Reverted the workaround
+since it's cosmetic only - the kernel already mitigates the actual security issue.
***** DONE [#B] Prune desktop files from application menu
CLOSED: [2026-01-26 Mon]
@@ -360,15 +362,11 @@ Hudson: active #444/#bbb, inactive #c5c8c6, urgent red, locked cyan.
Test the monocle/tab group mode to verify hy3 tab bar colors look correct with dupre and hudson themes.
Run =set-theme dupre= and =set-theme hudson= while in tab group mode ($mod SHIFT M).
-***** TODO [#C] Consider breaking out Hardware Workarounds as separate section
-The Hardware Workarounds section in archsetup could be its own optional step with user prompt to skip.
-Would allow users to opt-out if workarounds don't apply or cause issues.
-
-Current workaround:
-- AMD Zen 5 RDSEED32 bug (CVE-2025-62626): clearcpuid=rdseed kernel parameter
-
-Candidate for future inclusion:
-- AMD GPU VPE issue: potential video processing engine problem on newer AMD GPUs (not yet encountered)
+***** DONE [#C] Consider breaking out Hardware Workarounds as separate section
+CLOSED: [2026-01-26 Mon]
+Removed the Hardware Workarounds section from archsetup entirely. The only workaround
+(AMD Zen 5 RDSEED32) didn't actually suppress the warning message - the kernel detection
+runs separately. Proper fix requires BIOS updates from vendors with AGESA microcode.
*** TODO [#A] Fix sleep/suspend on Framework Laptop (velox only)
Critical functionality for laptop use - current battery drain unacceptable