summaryrefslogtreecommitdiff
path: root/dotfiles/hyprland
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles/hyprland')
-rw-r--r--dotfiles/hyprland/.config/hypr/hyprland.conf4
-rw-r--r--dotfiles/hyprland/.config/themes/dupre/dunstrc72
-rw-r--r--dotfiles/hyprland/.config/themes/dupre/foot.ini38
-rw-r--r--dotfiles/hyprland/.config/themes/dupre/fuzzel.ini31
-rw-r--r--dotfiles/hyprland/.config/themes/dupre/hyprland.conf7
-rw-r--r--dotfiles/hyprland/.config/themes/dupre/waybar.css111
-rw-r--r--dotfiles/hyprland/.config/themes/hudson/dunstrc72
-rw-r--r--dotfiles/hyprland/.config/themes/hudson/foot.ini38
-rw-r--r--dotfiles/hyprland/.config/themes/hudson/fuzzel.ini31
-rw-r--r--dotfiles/hyprland/.config/themes/hudson/hyprland.conf7
-rw-r--r--dotfiles/hyprland/.config/themes/hudson/waybar.css111
-rwxr-xr-xdotfiles/hyprland/.local/bin/set-theme119
12 files changed, 641 insertions, 0 deletions
diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf
index 1ab1a84..a63a535 100644
--- a/dotfiles/hyprland/.config/hypr/hyprland.conf
+++ b/dotfiles/hyprland/.config/hypr/hyprland.conf
@@ -140,6 +140,10 @@ bind = $mod SHIFT, L, exec, calibre
bind = $mod SHIFT, R, exec, shortwave
bind = $mod SHIFT, P, exec, waypaper
+# Theme switching
+bind = $mod, Y, exec, set-theme --toggle
+bind = $mod SHIFT, Y, exec, set-theme --pick
+
# Window management (from DWM)
# Layout-aware navigation (works across master, scrolling, hy3)
bind = $mod, J, exec, layout-navigate next
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 = "<small>%a</small>\n<b>%s</b>\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;
+}
diff --git a/dotfiles/hyprland/.config/themes/hudson/dunstrc b/dotfiles/hyprland/.config/themes/hudson/dunstrc
new file mode 100644
index 0000000..0c84133
--- /dev/null
+++ b/dotfiles/hyprland/.config/themes/hudson/dunstrc
@@ -0,0 +1,72 @@
+# Dunst config - Hudson theme
+# Tomorrow Night + Goldenrod accent
+
+[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 - Hudson theme
+foreground = "#eeeeee"
+frame_color = "#daa520"
+highlight = "#daa520, #f0c674"
+
+# Text
+font = BerkeleyMono Nerd Font 11
+markup = full
+format = "<small>%a</small>\n<b>%s</b>\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 = "#222222f0"
+timeout = 3
+
+[urgency_normal]
+background = "#222222f0"
+timeout = 8
+
+[urgency_critical]
+background = "#cc6666f0"
+frame_color = "#d54e53"
+highlight = "#ff2a00"
+foreground = "#eeeeee"
+timeout = 0
+
+[fullscreen_delay_everything]
+fullscreen = delay
+
+[fullscreen_show_critical]
+msg_urgency = critical
+fullscreen = show
diff --git a/dotfiles/hyprland/.config/themes/hudson/foot.ini b/dotfiles/hyprland/.config/themes/hudson/foot.ini
new file mode 100644
index 0000000..39dcc5e
--- /dev/null
+++ b/dotfiles/hyprland/.config/themes/hudson/foot.ini
@@ -0,0 +1,38 @@
+# foot terminal configuration - Hudson theme
+# Tomorrow Night + Goldenrod accent
+
+[main]
+term=xterm-256color
+font=Berkeley Mono:size=14
+pad=8x8
+
+[scrollback]
+lines=10000
+
+[colors]
+# Hudson theme - Tomorrow Night + Goldenrod accent
+background=222222
+foreground=eeeeee
+
+# Regular colors (0-7)
+regular0=222222 # black
+regular1=cc6666 # red
+regular2=b5bd68 # green
+regular3=f0c674 # yellow
+regular4=81a2be # blue
+regular5=b294bb # magenta
+regular6=8abeb7 # cyan
+regular7=c5c8c6 # white
+
+# Bright colors (8-15)
+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=70c0b1 # bright cyan
+bright7=eeeeee # bright white
+
+# Cursor: goldenrod on dark
+cursor=222222 daa520
diff --git a/dotfiles/hyprland/.config/themes/hudson/fuzzel.ini b/dotfiles/hyprland/.config/themes/hudson/fuzzel.ini
new file mode 100644
index 0000000..975004c
--- /dev/null
+++ b/dotfiles/hyprland/.config/themes/hudson/fuzzel.ini
@@ -0,0 +1,31 @@
+# Fuzzel config - Hudson theme
+# Tomorrow Night + Goldenrod accent
+
+[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=222222f0
+text=eeeeeeff
+selection=daa520ff
+selection-text=222222ff
+border=daa520ff
+match=daa520ff
+prompt=bbbbbbff
+placeholder=888888ff
+input=eeeeeeff
+
+[border]
+width=2
+radius=16
diff --git a/dotfiles/hyprland/.config/themes/hudson/hyprland.conf b/dotfiles/hyprland/.config/themes/hudson/hyprland.conf
new file mode 100644
index 0000000..37694da
--- /dev/null
+++ b/dotfiles/hyprland/.config/themes/hudson/hyprland.conf
@@ -0,0 +1,7 @@
+# Hyprland colors - Hudson theme
+# Tomorrow Night + Goldenrod accent
+
+general {
+ col.active_border = rgba(daa520ff)
+ col.inactive_border = rgba(444444ff)
+}
diff --git a/dotfiles/hyprland/.config/themes/hudson/waybar.css b/dotfiles/hyprland/.config/themes/hudson/waybar.css
new file mode 100644
index 0000000..f9d2e4f
--- /dev/null
+++ b/dotfiles/hyprland/.config/themes/hudson/waybar.css
@@ -0,0 +1,111 @@
+/* Waybar style - Hudson theme */
+/* Tomorrow Night + Goldenrod accent */
+
+* {
+ 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: #bbbbbb;
+ border-radius: 1rem;
+ transition: all 0.3s ease;
+}
+
+#workspaces button.active {
+ background: #daa520;
+ color: #222222;
+ border-radius: 1rem;
+}
+
+#workspaces button.urgent {
+ background-color: rgba(255, 88, 88, 0.4);
+}
+
+.modules-right, .modules-left {
+ background-color: #222222;
+ border-radius: 1rem;
+ padding: 0.2rem 0.6rem;
+ margin: 0.3rem;
+ border: 0.095rem solid #daa520;
+ 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: #bbbbbb;
+ 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: #444444;
+ border-radius: 1rem;
+}
+
+#clock {
+ color: #eeeeee;
+}
+
+#wireplumber {
+ color: #bbbbbb;
+}
+
+#wireplumber.muted {
+ color: #666666;
+}
+
+#battery.warning {
+ color: #daa520;
+}
+
+#battery.critical {
+ color: #ff5858;
+}
+
+#tray > .passive {
+ -gtk-icon-effect: dim;
+}
+
+#tray > .needs-attention {
+ -gtk-icon-effect: highlight;
+ background-color: #daa520;
+}
diff --git a/dotfiles/hyprland/.local/bin/set-theme b/dotfiles/hyprland/.local/bin/set-theme
new file mode 100755
index 0000000..48fc8ee
--- /dev/null
+++ b/dotfiles/hyprland/.local/bin/set-theme
@@ -0,0 +1,119 @@
+#!/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"
+
+ # Apply Hyprland colors directly via hyprctl
+ case "$theme" in
+ dupre)
+ hyprctl keyword general:col.active_border "rgba(d7af5fff)"
+ hyprctl keyword general:col.inactive_border "rgba(474544ff)"
+ ;;
+ hudson)
+ hyprctl keyword general:col.active_border "rgba(daa520ff)"
+ hyprctl keyword general:col.inactive_border "rgba(444444ff)"
+ ;;
+ esac
+
+ # Save current theme
+ echo "$theme" > "$CURRENT_FILE"
+
+ # 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