From 717f5fe83960bd308ecff6a77c0dc3f516efad55 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 25 Jan 2026 23:01:47 -0600 Subject: feat(hyprland): add theme switching between dupre and hudson Add two complete themes: - dupre: warm earthy colors from Emacs dupre-theme.el - hudson: Tomorrow Night + Goldenrod accent (original) Theme files cover: foot, fuzzel, waybar, dunst, hyprland borders. Add set-theme script with: - set-theme : apply a theme - set-theme --toggle: switch between themes - set-theme --pick: fuzzel picker Keybindings: - $mod Y: toggle theme - $mod Shift Y: pick theme with fuzzel Co-Authored-By: Claude Opus 4.5 --- dotfiles/hyprland/.config/themes/dupre/dunstrc | 72 +++++++++++++ dotfiles/hyprland/.config/themes/dupre/foot.ini | 38 +++++++ dotfiles/hyprland/.config/themes/dupre/fuzzel.ini | 31 ++++++ .../hyprland/.config/themes/dupre/hyprland.conf | 7 ++ dotfiles/hyprland/.config/themes/dupre/waybar.css | 111 +++++++++++++++++++++ 5 files changed, 259 insertions(+) create mode 100644 dotfiles/hyprland/.config/themes/dupre/dunstrc create mode 100644 dotfiles/hyprland/.config/themes/dupre/foot.ini create mode 100644 dotfiles/hyprland/.config/themes/dupre/fuzzel.ini create mode 100644 dotfiles/hyprland/.config/themes/dupre/hyprland.conf create mode 100644 dotfiles/hyprland/.config/themes/dupre/waybar.css (limited to 'dotfiles/hyprland/.config/themes/dupre') diff --git a/dotfiles/hyprland/.config/themes/dupre/dunstrc b/dotfiles/hyprland/.config/themes/dupre/dunstrc new file mode 100644 index 0000000..104df28 --- /dev/null +++ b/dotfiles/hyprland/.config/themes/dupre/dunstrc @@ -0,0 +1,72 @@ +# Dunst config - Dupre theme +# Warm, earthy colors from dupre-theme.el + +[global] +# Display +follow = mouse +width = 350 +height = (0, 300) +origin = top-right +offset = (35, 35) +indicate_hidden = yes +notification_limit = 5 +gap_size = 12 +padding = 12 +horizontal_padding = 20 +frame_width = 2 +sort = no +corner_radius = 10 + +# Progress bar +progress_bar_frame_width = 0 +progress_bar_corner_radius = 3 + +# Colors - Dupre theme +foreground = "#f0fef0" +frame_color = "#d7af5f" +highlight = "#d7af5f, #ccc768" + +# Text +font = BerkeleyMono Nerd Font 11 +markup = full +format = "%a\n%s\n%b" +alignment = left +vertical_alignment = center +show_age_threshold = -1 +hide_duplicate_count = false + +# Icon +icon_position = left +min_icon_size = 54 +max_icon_size = 80 +icon_corner_radius = 4 + +# Misc/Advanced +dmenu = fuzzel --dmenu --prompt 'Open with' + +# Mouse +mouse_left_click = close_current +mouse_middle_click = do_action, close_current +mouse_right_click = close_all + +[urgency_low] +background = "#151311f0" +timeout = 3 + +[urgency_normal] +background = "#151311f0" +timeout = 8 + +[urgency_critical] +background = "#7c2a09f0" +frame_color = "#d47c59" +highlight = "#ff2a00" +foreground = "#f0fef0" +timeout = 0 + +[fullscreen_delay_everything] +fullscreen = delay + +[fullscreen_show_critical] +msg_urgency = critical +fullscreen = show diff --git a/dotfiles/hyprland/.config/themes/dupre/foot.ini b/dotfiles/hyprland/.config/themes/dupre/foot.ini new file mode 100644 index 0000000..8837f92 --- /dev/null +++ b/dotfiles/hyprland/.config/themes/dupre/foot.ini @@ -0,0 +1,38 @@ +# foot terminal configuration - Dupre theme +# Warm, earthy colors from dupre-theme.el + +[main] +term=xterm-256color +font=Berkeley Mono:size=14 +pad=8x8 + +[scrollback] +lines=10000 + +[colors] +# Dupre theme colors (from Emacs dupre-theme.el) +background=151311 +foreground=f0fef0 + +# 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) +regular5=b294bb # magenta +regular6=8a9496 # cyan (dupre-steel) +regular7=d0cbc0 # white (dupre-gray+2) + +# 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) +bright5=c397d8 # bright magenta +bright6=acb0b3 # bright cyan (dupre-steel+1) +bright7=f0fef0 # bright white (dupre-fg) + +# Cursor: muted gold on dark +cursor=151311 d7af5f diff --git a/dotfiles/hyprland/.config/themes/dupre/fuzzel.ini b/dotfiles/hyprland/.config/themes/dupre/fuzzel.ini new file mode 100644 index 0000000..64711b8 --- /dev/null +++ b/dotfiles/hyprland/.config/themes/dupre/fuzzel.ini @@ -0,0 +1,31 @@ +# Fuzzel config - Dupre theme +# Warm, earthy colors from dupre-theme.el + +[main] +font=BerkeleyMono Nerd Font:size=14 +prompt=Search: +icon-theme=hicolor +icons-enabled=yes +width=30 +lines=12 +horizontal-pad=20 +vertical-pad=12 +inner-pad=8 +layer=overlay +exit-on-keyboard-focus-loss=yes + +[colors] +# Format: RRGGBBAA +background=151311f0 +text=f0fef0ff +selection=d7af5fff +selection-text=151311ff +border=d7af5fff +match=d7af5fff +prompt=969385ff +placeholder=6c6a60ff +input=f0fef0ff + +[border] +width=2 +radius=16 diff --git a/dotfiles/hyprland/.config/themes/dupre/hyprland.conf b/dotfiles/hyprland/.config/themes/dupre/hyprland.conf new file mode 100644 index 0000000..b9313ff --- /dev/null +++ b/dotfiles/hyprland/.config/themes/dupre/hyprland.conf @@ -0,0 +1,7 @@ +# Hyprland colors - Dupre theme +# Warm, earthy colors from dupre-theme.el + +general { + col.active_border = rgba(d7af5fff) + col.inactive_border = rgba(474544ff) +} diff --git a/dotfiles/hyprland/.config/themes/dupre/waybar.css b/dotfiles/hyprland/.config/themes/dupre/waybar.css new file mode 100644 index 0000000..4bd0052 --- /dev/null +++ b/dotfiles/hyprland/.config/themes/dupre/waybar.css @@ -0,0 +1,111 @@ +/* Waybar style - Dupre theme */ +/* Warm, earthy colors from dupre-theme.el */ + +* { + border: none; + border-radius: 0; + font-size: 14px; + min-height: 0; + font-family: "BerkeleyMono Nerd Font", "Berkeley Mono", monospace; +} + +window#waybar { + background: transparent; +} + +#workspaces { + padding: 0.2rem; +} + +#workspaces button { + padding: 0.5rem; + margin: 0.2rem; + background-color: transparent; + color: #969385; + border-radius: 1rem; + transition: all 0.3s ease; +} + +#workspaces button.active { + background: #d7af5f; + color: #151311; + border-radius: 1rem; +} + +#workspaces button.urgent { + background-color: rgba(212, 124, 89, 0.4); +} + +.modules-right, .modules-left { + background-color: #151311; + border-radius: 1rem; + padding: 0.2rem 0.6rem; + margin: 0.3rem; + border: 0.095rem solid #d7af5f; + box-shadow: 0rem 0.2rem 0.4rem rgba(0,0,0,0.5); +} + +#cpu, +#temperature, +#memory, +#disk, +#custom-netspeed, +#battery, +#wireplumber, +#tray, +#clock, +#custom-layout, +#window { + padding: 0.4rem; + margin: 0.3rem; + color: #969385; + background-color: transparent; + border-radius: 1rem; +} + +#sysmonitor { + margin: 0.3rem; + background-color: transparent; + border-radius: 1rem; +} + +#cpu:hover, +#temperature:hover, +#memory:hover, +#disk:hover, +#custom-netspeed:hover, +#wireplumber:hover, +#sysmonitor:hover, +#custom-layout:hover { + background-color: #474544; + border-radius: 1rem; +} + +#clock { + color: #f0fef0; +} + +#wireplumber { + color: #969385; +} + +#wireplumber.muted { + color: #58574e; +} + +#battery.warning { + color: #d7af5f; +} + +#battery.critical { + color: #d47c59; +} + +#tray > .passive { + -gtk-icon-effect: dim; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: #d7af5f; +} -- cgit v1.2.3