diff options
Diffstat (limited to 'dotfiles/hyprland/.config')
20 files changed, 1322 insertions, 172 deletions
diff --git a/dotfiles/hyprland/.config/foot/foot.ini b/dotfiles/hyprland/.config/foot/foot.ini new file mode 100644 index 0000000..8837f92 --- /dev/null +++ b/dotfiles/hyprland/.config/foot/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/fuzzel/fuzzel.ini b/dotfiles/hyprland/.config/fuzzel/fuzzel.ini new file mode 100644 index 0000000..ce46448 --- /dev/null +++ b/dotfiles/hyprland/.config/fuzzel/fuzzel.ini @@ -0,0 +1,31 @@ +# Fuzzel config - matching waybar DWM-inspired theme +# Colors from waybar: bg=#222222, cpu=#bbbbbb, clock=#eeeeee, accent=#daa520 + +[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/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf index ce45088..1701cc0 100644 --- a/dotfiles/hyprland/.config/hypr/hyprland.conf +++ b/dotfiles/hyprland/.config/hypr/hyprland.conf @@ -10,12 +10,12 @@ monitor=,preferred,auto,auto # ============================================================================ # Startup Applications # ============================================================================ +exec-once = hyprpm reload exec-once = waybar exec-once = swww-daemon && sleep 1 && swww img ~/pictures/wallpaper/dark-lion.jpg exec-once = dunst exec-once = hypridle exec-once = gammastep -exec-once = nm-applet exec-once = blueman-applet exec-once = /usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP @@ -39,8 +39,8 @@ env = _JAVA_AWT_WM_NONREPARENTING,1 # DWM colors: gray1=#222222, gray2=#444444, gray3=#bbbbbb, gray4=#eeeeee, cyan=#daa520 general { - gaps_in = 5 - gaps_out = 10 + gaps_in = 25 + gaps_out = 30 border_size = 3 col.active_border = rgba(daa520ff) col.inactive_border = rgba(444444ff) @@ -49,7 +49,7 @@ general { } decoration { - rounding = 0 + rounding = 10 blur { enabled = false } @@ -65,6 +65,7 @@ animations { animation = windowsOut, 1, 3, default, popin 80% animation = fade, 1, 3, default animation = workspaces, 1, 3, default + animation = specialWorkspace, 1, 3, default, slidevert } # ============================================================================ @@ -86,7 +87,7 @@ dwindle { input { kb_layout = us kb_options = ctrl:nocaps - follow_mouse = 1 + follow_mouse = 0 touchpad { natural_scroll = true } @@ -108,15 +109,15 @@ xwayland { } # ============================================================================ -# Window Rules +# Window Rules (Hyprland 0.53+ syntax: match:CONDITION, RULE) # ============================================================================ # Floating windows (from DWM rules) -windowrulev2 = float, class:^(Gimp)$ -windowrulev2 = float, class:^(caffeine)$ -windowrulev2 = float, class:^(blueman-services)$ -windowrulev2 = float, class:^(Blueman-manager)$ -windowrulev2 = float, class:^(qalculate-gtk)$ -windowrulev2 = float, title:^(Event Tester)$ +windowrule = match:class ^(Gimp)$, float on +windowrule = match:class ^(caffeine)$, float on +windowrule = match:class ^(blueman-services)$, float on +windowrule = match:class ^(Blueman-manager)$, float on +windowrule = match:class ^(qalculate-gtk)$, float on +windowrule = match:title ^(Event Tester)$, float on # ============================================================================ # Key Bindings @@ -124,36 +125,43 @@ windowrulev2 = float, title:^(Event Tester)$ $mod = SUPER # Terminal and core apps (from DWM) -bind = $mod, T, exec, st +bind = $mod, T, exec, foot bind = $mod, E, exec, emacsclient -c -a "" || emacs bind = $mod, W, exec, $BROWSER -bind = $mod, P, exec, wofi --show drun +bind = $mod, P, exec, fuzzel # From sxhkdrc -bind = $mod, SPACE, exec, wofi --show drun -bind = $mod SHIFT, S, exec, wofi --show ssh +bind = $mod, SPACE, exec, fuzzel bind = $mod SHIFT, W, exec, $ALTBROWSER bind = CTRL ALT, W, exec, tor-browser bind = CTRL ALT, F, exec, thunar bind = $mod, V, exec, virtualbox 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) -bind = $mod, J, layoutmsg, cyclenext -bind = $mod, K, layoutmsg, cycleprev -bind = $mod SHIFT, J, layoutmsg, swapnext -bind = $mod SHIFT, K, layoutmsg, swapprev -bind = $mod, H, resizeactive, -50 0 -bind = $mod, L, resizeactive, 50 0 -bind = $mod, RETURN, layoutmsg, swapwithmaster +# Layout-aware navigation (works across master, scrolling, hy3) +bind = $mod, J, exec, layout-navigate next +bind = $mod, K, exec, layout-navigate prev +bind = $mod SHIFT, J, exec, layout-navigate next move +bind = $mod SHIFT, K, exec, layout-navigate prev move +bind = $mod, H, splitratio, -0.05 +bind = $mod, L, splitratio, +0.05 +bind = $mod, RETURN, layoutmsg, swapwithmaster master bind = $mod, G, centerwindow bind = $mod, TAB, workspace, previous bind = $mod SHIFT, C, killactive -# Layouts (from DWM) -bind = $mod SHIFT, M, exec, hyprctl keyword general:layout master -bind = $mod SHIFT, T, exec, hyprctl keyword general:layout master +# Layouts: master -> tab group (monocle) -> scrolling -> floating +# Click waybar layout icon to cycle, or use direct keybindings: +bind = $mod SHIFT, T, exec, hyprctl keyword general:layout master && hyprctl keyword master:orientation left +bind = $mod SHIFT, M, exec, hyprctl keyword general:layout hy3 && hyprctl dispatch hy3:changegroup tab +bind = $mod SHIFT, S, exec, hyprctl keyword general:layout scrolling bind = $mod SHIFT, F, togglefloating bind = $mod SHIFT, SPACE, togglefloating @@ -161,10 +169,17 @@ bind = $mod SHIFT, SPACE, togglefloating bind = $mod, I, layoutmsg, addmaster bind = $mod, D, layoutmsg, removemaster +# Focus mode (xtra-dispatchers plugin) +# O = "Only this window" / "bring back Others" / "close Others" +bind = $mod, O, exec, hyprctl dispatch plugin:xtd:throwunfocused 10 +bind = $mod SHIFT, O, exec, hyprctl dispatch plugin:xtd:bringallfrom 10 +bind = $mod CTRL, O, exec, hyprctl dispatch plugin:xtd:closeunfocused + # Gaps (from DWM) -bind = $mod, MINUS, exec, hyprctl keyword general:gaps_out $(( $(hyprctl getoption general:gaps_out -j | jq '.int') - 5 )) -bind = $mod, EQUAL, exec, hyprctl keyword general:gaps_out $(( $(hyprctl getoption general:gaps_out -j | jq '.int') + 5 )) -bind = $mod SHIFT, EQUAL, exec, hyprctl keyword general:gaps_out 10 +bind = $mod, MINUS, exec, hyprctl keyword general:gaps_out $(( $(hyprctl getoption general:gaps_out -j | jq -r '.custom' | cut -d' ' -f1) - 5 )) && hyprctl keyword general:gaps_in $(( $(hyprctl getoption general:gaps_in -j | jq -r '.custom' | cut -d' ' -f1) - 5 )) +bind = $mod, EQUAL, exec, hyprctl keyword general:gaps_out $(( $(hyprctl getoption general:gaps_out -j | jq -r '.custom' | cut -d' ' -f1) + 5 )) && hyprctl keyword general:gaps_in $(( $(hyprctl getoption general:gaps_in -j | jq -r '.custom' | cut -d' ' -f1) + 5 )) +bind = $mod SHIFT, EQUAL, exec, hyprctl keyword general:gaps_out 30 && hyprctl keyword general:gaps_in 25 +bind = $mod SHIFT, MINUS, exec, hyprctl keyword general:gaps_out 0 && hyprctl keyword general:gaps_in 0 # Toggle bar bind = $mod, B, exec, killall -SIGUSR1 waybar @@ -185,16 +200,16 @@ bind = $mod, 9, workspace, 9 bind = $mod, 0, workspace, 10 # Move window to workspace (from DWM tag) -bind = $mod SHIFT, 1, movetoworkspace, 1 -bind = $mod SHIFT, 2, movetoworkspace, 2 -bind = $mod SHIFT, 3, movetoworkspace, 3 -bind = $mod SHIFT, 4, movetoworkspace, 4 -bind = $mod SHIFT, 5, movetoworkspace, 5 -bind = $mod SHIFT, 6, movetoworkspace, 6 -bind = $mod SHIFT, 7, movetoworkspace, 7 -bind = $mod SHIFT, 8, movetoworkspace, 8 -bind = $mod SHIFT, 9, movetoworkspace, 9 -bind = $mod SHIFT, 0, movetoworkspace, 10 +bind = $mod SHIFT, 1, movetoworkspacesilent, 1 +bind = $mod SHIFT, 2, movetoworkspacesilent, 2 +bind = $mod SHIFT, 3, movetoworkspacesilent, 3 +bind = $mod SHIFT, 4, movetoworkspacesilent, 4 +bind = $mod SHIFT, 5, movetoworkspacesilent, 5 +bind = $mod SHIFT, 6, movetoworkspacesilent, 6 +bind = $mod SHIFT, 7, movetoworkspacesilent, 7 +bind = $mod SHIFT, 8, movetoworkspacesilent, 8 +bind = $mod SHIFT, 9, movetoworkspacesilent, 9 +bind = $mod SHIFT, 0, movetoworkspacesilent, 10 # Monitor focus (from DWM focusmon) bind = $mod, COMMA, focusmonitor, -1 @@ -202,53 +217,68 @@ bind = $mod, PERIOD, focusmonitor, +1 bind = $mod SHIFT, COMMA, movewindow, mon:-1 bind = $mod SHIFT, PERIOD, movewindow, mon:+1 +# ============================================================================ # Scratchpads (from DWM togglescratch) -# Audio mixer (was MODKEY+a -> spaudio/pulsemixer) +# ============================================================================ +# Using on-created-empty workspace rules - app launches on first toggle, +# subsequent toggles just show/hide the workspace + +# Workspace rules (auto-launch apps when workspace first accessed) +workspace = special:term, on-created-empty:foot --app-id foot-term tmux +workspace = special:audio, on-created-empty:foot --app-id foot-audio pulsemixer +workspace = special:monitor, on-created-empty:foot --app-id foot-monitor gotop +workspace = special:music, on-created-empty:foot --app-id foot-music ncmpcpp +workspace = special:files, on-created-empty:foot --app-id foot-files ranger +workspace = special:htop, on-created-empty:foot --app-id foot-htop htop +workspace = special:network, on-created-empty:foot --app-id foot-network nmtui + +# Keybindings (single bind per scratchpad - just toggle visibility) +bind = $mod SHIFT, RETURN, togglespecialworkspace, term bind = $mod, A, togglespecialworkspace, audio -bind = $mod, A, exec, [workspace special:audio] pgrep -x pulsemixer || st -n spaudio -e pulsemixer -windowrulev2 = float, class:^(st)$, title:^(spaudio)$ -windowrulev2 = size 60% 60%, class:^(st)$, title:^(spaudio)$ -windowrulev2 = center, class:^(st)$, title:^(spaudio)$ -windowrulev2 = workspace special:audio, class:^(st)$, title:^(spaudio)$ - -# System monitor (was MODKEY+m -> spmon/gotop) bind = $mod, M, togglespecialworkspace, monitor -bind = $mod, M, exec, [workspace special:monitor] pgrep -x gotop || st -n spmon -e gotop -windowrulev2 = float, class:^(st)$, title:^(spmon)$ -windowrulev2 = size 60% 60%, class:^(st)$, title:^(spmon)$ -windowrulev2 = workspace special:monitor, class:^(st)$, title:^(spmon)$ - -# Music player (was MODKEY+slash -> spmp/ncmpcpp) bind = $mod, SLASH, togglespecialworkspace, music -bind = $mod, SLASH, exec, [workspace special:music] pgrep -x ncmpcpp || st -n spmp -e ncmpcpp -windowrulev2 = float, class:^(st)$, title:^(spmp)$ -windowrulev2 = size 60% 60%, class:^(st)$, title:^(spmp)$ -windowrulev2 = workspace special:music, class:^(st)$, title:^(spmp)$ - -# Terminal scratchpad (was MODKEY+Shift+Return -> spterm/tmux) -bind = $mod SHIFT, RETURN, togglespecialworkspace, term -bind = $mod SHIFT, RETURN, exec, [workspace special:term] pgrep -f "st.*spterm" || st -n spterm -e tmux -windowrulev2 = float, class:^(st)$, title:^(spterm)$ -windowrulev2 = size 60% 60%, class:^(st)$, title:^(spterm)$ -windowrulev2 = workspace special:term, class:^(st)$, title:^(spterm)$ - -# File manager (was MODKEY+f -> spfm/ranger) bind = $mod, F, togglespecialworkspace, files -bind = $mod, F, exec, [workspace special:files] pgrep -x ranger || st -n spfm -e ranger -windowrulev2 = float, class:^(st)$, title:^(spfm)$ -windowrulev2 = size 60% 60%, class:^(st)$, title:^(spfm)$ -windowrulev2 = workspace special:files, class:^(st)$, title:^(spfm)$ +bind = $mod SHIFT, H, togglespecialworkspace, htop -# Calculator (was MODKEY+x or MODKEY+c -> qalculate) +# Window rules (using app-id/class matching, Hyprland 0.53+ syntax) +# Terminal scratchpad +windowrule = match:class ^(foot-term)$, float on +windowrule = match:class ^(foot-term)$, size (monitor_w*0.6) (monitor_h*0.6) +windowrule = match:class ^(foot-term)$, center on + +# Audio mixer +windowrule = match:class ^(foot-audio)$, float on +windowrule = match:class ^(foot-audio)$, size (monitor_w*0.6) (monitor_h*0.6) +windowrule = match:class ^(foot-audio)$, center on + +# System monitor +windowrule = match:class ^(foot-monitor)$, float on +windowrule = match:class ^(foot-monitor)$, size (monitor_w*0.6) (monitor_h*0.6) +windowrule = match:class ^(foot-monitor)$, center on + +# Music player +windowrule = match:class ^(foot-music)$, float on +windowrule = match:class ^(foot-music)$, size (monitor_w*0.6) (monitor_h*0.6) +windowrule = match:class ^(foot-music)$, center on + +# File manager +windowrule = match:class ^(foot-files)$, float on +windowrule = match:class ^(foot-files)$, size (monitor_w*0.6) (monitor_h*0.6) +windowrule = match:class ^(foot-files)$, center on + +# Htop +windowrule = match:class ^(foot-htop)$, float on +windowrule = match:class ^(foot-htop)$, size (monitor_w*0.6) (monitor_h*0.6) +windowrule = match:class ^(foot-htop)$, center on + +# Network manager +windowrule = match:class ^(foot-network)$, float on +windowrule = match:class ^(foot-network)$, size (monitor_w*0.6) (monitor_h*0.6) +windowrule = match:class ^(foot-network)$, center on + +# Calculator (not a scratchpad, just launches app) bind = $mod, X, exec, qalculate-gtk -bind = $mod, C, exec, qalculate-gtk - -# Htop (was MODKEY+Shift+h -> sptop/htop) -bind = $mod SHIFT, H, togglespecialworkspace, htop -bind = $mod SHIFT, H, exec, [workspace special:htop] pgrep -x htop || st -n sptop -e htop -windowrulev2 = float, class:^(st)$, title:^(sptop)$ -windowrulev2 = size 60% 60%, class:^(st)$, title:^(sptop)$ -windowrulev2 = workspace special:htop, class:^(st)$, title:^(sptop)$ +bind = $mod, C, exec, hyprpicker -a # Media/hardware keys bindel = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% @@ -263,12 +293,9 @@ bind = CTRL ALT, SPACE, exec, amixer set Capture toggle && amixer get Capture | # Bluetooth (from DWM and sxhkdrc) bind = $mod SHIFT, B, exec, blueman-manager -# Screenshots (Wayland: grim + slurp instead of maim) -bind = $mod, S, exec, grim -g "$(slurp)" ~/pictures/screenshots/$(date +%Y.%m.%d-%H%M%S).png && notify-send "Screenshot" "Saved to ~/pictures/screenshots/" -bind = , Print, exec, grim ~/pictures/screenshots/$(date +%Y.%m.%d-%H%M%S).png && notify-send "Screenshot" "Full screen saved" - -# Color picker (Wayland: hyprpicker instead of xcolor) -# bind = $mod, C, exec, hyprpicker -a # conflicts with calculator, uncomment if needed +# Screenshots (grim + slurp + satty for annotation) +bind = $mod, S, exec, grim -g "$(slurp)" - | satty --filename - --output-filename ~/pictures/screenshots/$(date +%Y.%m.%d-%H%M%S).png +bind = , Print, exec, grim - | satty --filename - --output-filename ~/pictures/screenshots/$(date +%Y.%m.%d-%H%M%S).png # Lock screen (from sxhkdrc: super+Escape) bind = $mod, ESCAPE, exec, hyprlock @@ -277,7 +304,7 @@ bind = $mod, ESCAPE, exec, hyprlock bind = $mod, F9, exec, toggle-touchpad # Exit/session (from DWM) -bind = $mod SHIFT, Q, exec, wofi --show dmenu --prompt "Exit?" -D dmenu/exit="0" < /dev/null && hyprctl dispatch exit +bind = $mod SHIFT, Q, exec, printf "Exit\nCancel" | fuzzel --dmenu --prompt "Exit Hyprland? " | grep -q "Exit" && hyprctl dispatch exit bind = $mod SHIFT, BACKSPACE, exit bind = $mod SHIFT, ESCAPE, exec, hyprctl reload diff --git a/dotfiles/hyprland/.config/hypr/hyprlock.conf b/dotfiles/hyprland/.config/hypr/hyprlock.conf index b4dcfb8..fd85651 100644 --- a/dotfiles/hyprland/.config/hypr/hyprlock.conf +++ b/dotfiles/hyprland/.config/hypr/hyprlock.conf @@ -1,5 +1,5 @@ -# Hyprlock configuration -# Matching DWM colors: gray1=#222222, accent=#daa520 +# Hyprlock configuration - Dupre theme +# Warm, earthy colors from dupre-theme.el general { disable_loading_bar = false @@ -20,56 +20,75 @@ background { vibrancy_darkness = 0.0 } +# Clock (top) +label { + monitor = + text = $TIME12 + text_align = center + color = rgb(969385) + font_size = 64 + font_family = BerkeleyMono Nerd Font + position = 0, 15% + halign = center + valign = center +} + +# Profile image +image { + monitor = + path = ~/pictures/devilman.jpg + size = 120 + rounding = -1 + border_size = 3 + border_color = rgb(d7af5f) + position = 0, 0% + halign = center + valign = center + shadow_passes = 2 + shadow_size = 3 + shadow_color = rgba(0, 0, 0, 0.5) +} + +# Username +label { + monitor = + text = $USER + text_align = center + color = rgb(d7af5f) + font_size = 36 + font_family = BerkeleyMono Nerd Font + position = 0, -7% + halign = center + valign = center +} + +# Password input input-field { monitor = - size = 300, 50 - outline_thickness = 3 + size = 20%, 4% + outline_thickness = 0 dots_size = 0.33 dots_spacing = 0.15 dots_center = true dots_rounding = -1 - outer_color = rgb(444444) - inner_color = rgb(222222) - font_color = rgb(bbbbbb) + outer_color = rgb(151311) + inner_color = rgb(151311) + font_color = rgb(969385) fade_on_empty = true fade_timeout = 1000 placeholder_text = <i>Password...</i> hide_input = false - rounding = 0 - check_color = rgb(daa520) - fail_color = rgb(d9534f) + rounding = 8 + check_color = rgb(d7af5f) + fail_color = rgb(d47c59) fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> fail_transition = 300 - capslock_color = rgb(f0ad4e) + capslock_color = rgb(ccc768) numlock_color = -1 bothlock_color = -1 invert_numlock = false swap_font_color = false - position = 0, -20 - halign = center - valign = center -} - -label { - monitor = - text = $TIME - text_align = center - color = rgb(bbbbbb) - font_size = 64 - font_family = FiraCode Nerd Font Mono - position = 0, 80 - halign = center - valign = center -} - -label { - monitor = - text = $USER - text_align = center - color = rgb(daa520) - font_size = 20 - font_family = FiraCode Nerd Font Mono - position = 0, -80 + position = 0, -12% halign = center valign = center } diff --git a/dotfiles/hyprland/.config/themes/dupre/Xresources b/dotfiles/hyprland/.config/themes/dupre/Xresources new file mode 100644 index 0000000..d149a72 --- /dev/null +++ b/dotfiles/hyprland/.config/themes/dupre/Xresources @@ -0,0 +1,105 @@ +!! X Resources - Dupre theme +!! Warm, earthy colors from dupre-theme.el +!! 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 + +!! Emacs +Emacs*toolBar: 0 + +!! ============================================================================ +!! Dupre Theme Colors +!! ============================================================================ + +#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 + +!! 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 + +!! ============================================================================ + +!! ST (suckless terminal) settings +st.font: BerkeleyMono Nerd Font:size=12 +st.background: theme_bg +st.foreground: theme_fg +st.color0: theme_black +st.color1: theme_red +st.color2: theme_green +st.color3: theme_yellow +st.color4: theme_blue +st.color5: theme_magenta +st.color6: theme_cyan +st.color7: theme_white +st.color8: theme_br_black +st.color9: theme_br_red +st.color10: theme_br_green +st.color11: theme_br_yellow +st.color12: theme_br_blue +st.color13: theme_br_magenta +st.color14: theme_br_cyan +st.color15: theme_br_white + +!! XTerm settings +XTerm*faceName: BerkeleyMono Nerd Font:size=12 +XTerm*selectToClipboard: true +XTerm*background: theme_bg +XTerm*foreground: theme_fg +XTerm*color0: theme_black +XTerm*color1: theme_red +XTerm*color2: theme_green +XTerm*color3: theme_yellow +XTerm*color4: theme_blue +XTerm*color5: theme_magenta +XTerm*color6: theme_cyan +XTerm*color7: theme_white +XTerm*color8: theme_br_black +XTerm*color9: theme_br_red +XTerm*color10: theme_br_green +XTerm*color11: theme_br_yellow +XTerm*color12: theme_br_blue +XTerm*color13: theme_br_magenta +XTerm*color14: theme_br_cyan +XTerm*color15: theme_br_white 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/hyprlock.conf b/dotfiles/hyprland/.config/themes/dupre/hyprlock.conf new file mode 100644 index 0000000..fd85651 --- /dev/null +++ b/dotfiles/hyprland/.config/themes/dupre/hyprlock.conf @@ -0,0 +1,94 @@ +# Hyprlock configuration - Dupre theme +# Warm, earthy colors from dupre-theme.el + +general { + disable_loading_bar = false + hide_cursor = true + grace = 0 + no_fade_in = false +} + +background { + monitor = + path = screenshot + blur_passes = 3 + blur_size = 8 + noise = 0.0117 + contrast = 0.8916 + brightness = 0.8172 + vibrancy = 0.1696 + vibrancy_darkness = 0.0 +} + +# Clock (top) +label { + monitor = + text = $TIME12 + text_align = center + color = rgb(969385) + font_size = 64 + font_family = BerkeleyMono Nerd Font + position = 0, 15% + halign = center + valign = center +} + +# Profile image +image { + monitor = + path = ~/pictures/devilman.jpg + size = 120 + rounding = -1 + border_size = 3 + border_color = rgb(d7af5f) + position = 0, 0% + halign = center + valign = center + shadow_passes = 2 + shadow_size = 3 + shadow_color = rgba(0, 0, 0, 0.5) +} + +# Username +label { + monitor = + text = $USER + text_align = center + color = rgb(d7af5f) + font_size = 36 + font_family = BerkeleyMono Nerd Font + position = 0, -7% + halign = center + valign = center +} + +# Password input +input-field { + monitor = + size = 20%, 4% + outline_thickness = 0 + dots_size = 0.33 + dots_spacing = 0.15 + dots_center = true + dots_rounding = -1 + outer_color = rgb(151311) + inner_color = rgb(151311) + font_color = rgb(969385) + 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) + fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> + fail_transition = 300 + capslock_color = rgb(ccc768) + numlock_color = -1 + bothlock_color = -1 + invert_numlock = false + swap_font_color = false + position = 0, -12% + halign = center + valign = center +} 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/Xresources b/dotfiles/hyprland/.config/themes/hudson/Xresources new file mode 100644 index 0000000..00be166 --- /dev/null +++ b/dotfiles/hyprland/.config/themes/hudson/Xresources @@ -0,0 +1,105 @@ +!! X Resources - Hudson theme +!! Tomorrow Night + Goldenrod accent +!! For X11 applications (st, xterm, etc.) and Emacs + +!! X Font Settings +Xft.dpi: 109 +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 + +!! ============================================================================ +!! Hudson Theme Colors (Tomorrow Night + Goldenrod) +!! ============================================================================ + +#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 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 +st.background: theme_bg +st.foreground: theme_fg +st.color0: theme_black +st.color1: theme_red +st.color2: theme_green +st.color3: theme_yellow +st.color4: theme_blue +st.color5: theme_magenta +st.color6: theme_cyan +st.color7: theme_white +st.color8: theme_br_black +st.color9: theme_br_red +st.color10: theme_br_green +st.color11: theme_br_yellow +st.color12: theme_br_blue +st.color13: theme_br_magenta +st.color14: theme_br_cyan +st.color15: theme_br_white + +!! XTerm settings +XTerm*faceName: BerkeleyMono Nerd Font:size=12 +XTerm*selectToClipboard: true +XTerm*background: theme_bg +XTerm*foreground: theme_fg +XTerm*color0: theme_black +XTerm*color1: theme_red +XTerm*color2: theme_green +XTerm*color3: theme_yellow +XTerm*color4: theme_blue +XTerm*color5: theme_magenta +XTerm*color6: theme_cyan +XTerm*color7: theme_white +XTerm*color8: theme_br_black +XTerm*color9: theme_br_red +XTerm*color10: theme_br_green +XTerm*color11: theme_br_yellow +XTerm*color12: theme_br_blue +XTerm*color13: theme_br_magenta +XTerm*color14: theme_br_cyan +XTerm*color15: theme_br_white 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/hyprlock.conf b/dotfiles/hyprland/.config/themes/hudson/hyprlock.conf new file mode 100644 index 0000000..f9c08bb --- /dev/null +++ b/dotfiles/hyprland/.config/themes/hudson/hyprlock.conf @@ -0,0 +1,94 @@ +# Hyprlock configuration - Hudson theme +# Tomorrow Night + Goldenrod accent + +general { + disable_loading_bar = false + hide_cursor = true + grace = 0 + no_fade_in = false +} + +background { + monitor = + path = screenshot + blur_passes = 3 + blur_size = 8 + noise = 0.0117 + contrast = 0.8916 + brightness = 0.8172 + vibrancy = 0.1696 + vibrancy_darkness = 0.0 +} + +# Clock (top) +label { + monitor = + text = $TIME12 + text_align = center + color = rgb(bbbbbb) + font_size = 64 + font_family = BerkeleyMono Nerd Font + position = 0, 15% + halign = center + valign = center +} + +# Profile image +image { + monitor = + path = ~/pictures/devilman.jpg + size = 120 + rounding = -1 + border_size = 3 + border_color = rgb(daa520) + position = 0, 0% + halign = center + valign = center + shadow_passes = 2 + shadow_size = 3 + shadow_color = rgba(0, 0, 0, 0.5) +} + +# Username +label { + monitor = + text = $USER + text_align = center + color = rgb(daa520) + font_size = 36 + font_family = BerkeleyMono Nerd Font + position = 0, -7% + halign = center + valign = center +} + +# Password input +input-field { + monitor = + size = 20%, 4% + outline_thickness = 0 + dots_size = 0.33 + dots_spacing = 0.15 + dots_center = true + dots_rounding = -1 + 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(daa520) + fail_color = rgb(d54e53) + fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> + fail_transition = 300 + capslock_color = rgb(e0b040) + numlock_color = -1 + bothlock_color = -1 + invert_numlock = false + swap_font_color = false + position = 0, -12% + halign = center + valign = center +} 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/.config/waybar/config b/dotfiles/hyprland/.config/waybar/config index 3b3a90f..c7cc0a7 100644 --- a/dotfiles/hyprland/.config/waybar/config +++ b/dotfiles/hyprland/.config/waybar/config @@ -3,48 +3,124 @@ "position": "top", "height": 30, "spacing": 4, + "margin-top": 6, + "margin-left": 10, + "margin-right": 10, - "modules-left": ["hyprland/workspaces"], - "modules-center": ["hyprland/window"], - "modules-right": ["tray", "battery", "disk", "clock"], + "modules-left": [ + "hyprland/workspaces", + "custom/layout", + "hyprland/window" + ], + "modules-center": [], + "modules-right": [ + "group/sysmonitor", + "custom/netspeed", + "wireplumber", + "tray", + "clock" + ], + + "group/sysmonitor": { + "orientation": "horizontal", + "modules": [ + "cpu", + "temperature", + "memory", + "disk", + "battery" + ] + }, "hyprland/workspaces": { + "disable-scroll": true, + "all-outputs": true, "format": "{name}", - "on-click": "activate", "sort-by-number": true }, + "custom/layout": { + "exec": "waybar-layout", + "return-type": "json", + "interval": 1, + "on-click": "cycle-layout" + }, + "hyprland/window": { - "format": "{}", - "max-length": 50 + "max-length": 50, + "separate-outputs": true }, - "tray": { - "spacing": 10 + "cpu": { + "interval": 10, + "format": "<span size='large'></span> {}%", + "on-click": "toggle-scratchpad monitor" + }, + + "temperature": { + "interval": 10, + "hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:18.3/hwmon", + "input-filename": "temp1_input", + "critical-threshold": 80, + "format": "<span size='large'></span> {temperatureC}°C", + "format-critical": "<span size='large'></span> {temperatureC}°C", + "on-click": "toggle-scratchpad monitor" + }, + + "memory": { + "interval": 30, + "format": "<span size='large'></span> {}%", + "on-click": "toggle-scratchpad monitor" + }, + + "disk": { + "interval": 30, + "format": "<span size='large'></span> {percentage_used}%", + "path": "/", + "on-click": "toggle-scratchpad monitor" + }, + + "custom/netspeed": { + "exec": "waybar-netspeed", + "return-type": "json", + "interval": 2, + "on-click": "toggle-scratchpad network" }, "battery": { - "bat": "BAT0", "interval": 30, "states": { "warning": 30, "critical": 15 }, - "format": " {capacity}% {icon}", - "format-charging": " {capacity}% ", - "format-plugged": " {capacity}% ", - "format-icons": ["", "", "", "", ""] + "format": "<span size='large'>{icon}</span> {capacity}%", + "format-charging": "<span size='large'></span> {capacity}%", + "format-plugged": "<span size='large'></span> {capacity}%", + "format-icons": ["", "", "", "", "", "", "", "", "", "", ""], + "tooltip-format": "{timeTo}" }, - "disk": { - "interval": 30, - "format": " {used}/{total}", - "path": "/" + "tray": { + "icon-size": 22, + "spacing": 10 }, "clock": { - "interval": 30, - "format": " {:%a %B %d} {:%I:%M %p %Z}", - "tooltip-format": "<tt>{calendar}</tt>" + "format": "{:%a, %b %d %Y %I:%M %p %Z}", + "tooltip-format": "<small>{calendar}</small>", + "calendar": { + "format": { + "today": "<span color='#daa520'><b><u>{}</u></b></span>" + } + } + }, + + "wireplumber": { + "format": "<span size='large'></span> {volume}%", + "format-muted": "<span size='large'></span> Muted", + "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle", + "on-click-right": "toggle-scratchpad audio", + "on-scroll-up": "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+", + "on-scroll-down": "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" } } diff --git a/dotfiles/hyprland/.config/waybar/style.css b/dotfiles/hyprland/.config/waybar/style.css index 9411b46..4bd0052 100644 --- a/dotfiles/hyprland/.config/waybar/style.css +++ b/dotfiles/hyprland/.config/waybar/style.css @@ -1,61 +1,104 @@ -/* Waybar style - matching DWM colors */ -/* gray1=#222222, gray2=#444444, gray3=#bbbbbb, gray4=#eeeeee, accent=#daa520 */ +/* Waybar style - Dupre theme */ +/* Warm, earthy colors from dupre-theme.el */ * { - font-family: "FiraCode Nerd Font Mono", monospace; - font-size: 12px; border: none; border-radius: 0; + font-size: 14px; min-height: 0; + font-family: "BerkeleyMono Nerd Font", "Berkeley Mono", monospace; } window#waybar { - background-color: #222222; - color: #bbbbbb; + background: transparent; } -#workspaces button { - padding: 0 8px; - color: #bbbbbb; - background-color: transparent; +#workspaces { + padding: 0.2rem; } -#workspaces button:hover { - background-color: #444444; +#workspaces button { + padding: 0.5rem; + margin: 0.2rem; + background-color: transparent; + color: #969385; + border-radius: 1rem; + transition: all 0.3s ease; } #workspaces button.active { - color: #eeeeee; - background-color: #daa520; + background: #d7af5f; + color: #151311; + border-radius: 1rem; } #workspaces button.urgent { - background-color: #900000; + background-color: rgba(212, 124, 89, 0.4); } -#window { - color: #bbbbbb; - padding: 0 10px; +.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); } -#clock, -#battery, +#cpu, +#temperature, +#memory, #disk, -#tray { - padding: 0 10px; - color: #bbbbbb; +#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; } -#battery.charging { - color: #daa520; +#wireplumber.muted { + color: #58574e; } -#battery.warning:not(.charging) { - color: #f0ad4e; +#battery.warning { + color: #d7af5f; } -#battery.critical:not(.charging) { - color: #d9534f; +#battery.critical { + color: #d47c59; } #tray > .passive { @@ -64,5 +107,5 @@ window#waybar { #tray > .needs-attention { -gtk-icon-effect: highlight; - background-color: #daa520; + background-color: #d7af5f; } |
