From 6ce385c2be62492d43ef90b9525d38edc7cd8190 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sat, 24 Jan 2026 18:37:14 -0600 Subject: feat(archsetup): add Hyprland/Wayland desktop environment support - Add DESKTOP_ENV config variable (dwm/hyprland/none, default: hyprland) - Create wayland() and hyprland() installation functions - Add display_server/window_manager conditional step wrappers - Create dotfiles/hyprland/ with full config suite: - hyprland.conf with keybindings translated from DWM + sxhkd - waybar config matching conky status bar - hypridle/hyprlock for screen locking - wofi config matching rofi theme - gammastep config for Wayland (replaces redshift) - Add Hyprland validation tests to validation.sh - Update archsetup.conf.example with DESKTOP_ENV option --- dotfiles/hyprland/.config/waybar/config | 50 ++++++++++++++++++++++ dotfiles/hyprland/.config/waybar/style.css | 68 ++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 dotfiles/hyprland/.config/waybar/config create mode 100644 dotfiles/hyprland/.config/waybar/style.css (limited to 'dotfiles/hyprland/.config/waybar') diff --git a/dotfiles/hyprland/.config/waybar/config b/dotfiles/hyprland/.config/waybar/config new file mode 100644 index 0000000..3b3a90f --- /dev/null +++ b/dotfiles/hyprland/.config/waybar/config @@ -0,0 +1,50 @@ +{ + "layer": "top", + "position": "top", + "height": 30, + "spacing": 4, + + "modules-left": ["hyprland/workspaces"], + "modules-center": ["hyprland/window"], + "modules-right": ["tray", "battery", "disk", "clock"], + + "hyprland/workspaces": { + "format": "{name}", + "on-click": "activate", + "sort-by-number": true + }, + + "hyprland/window": { + "format": "{}", + "max-length": 50 + }, + + "tray": { + "spacing": 10 + }, + + "battery": { + "bat": "BAT0", + "interval": 30, + "states": { + "warning": 30, + "critical": 15 + }, + "format": "󱊣 {capacity}% {icon}", + "format-charging": "󱊣 {capacity}% ", + "format-plugged": "󱊣 {capacity}% ", + "format-icons": ["", "", "", "", ""] + }, + + "disk": { + "interval": 30, + "format": " {used}/{total}", + "path": "/" + }, + + "clock": { + "interval": 30, + "format": " {:%a %B %d} 󰥔 {:%I:%M %p %Z}", + "tooltip-format": "{calendar}" + } +} diff --git a/dotfiles/hyprland/.config/waybar/style.css b/dotfiles/hyprland/.config/waybar/style.css new file mode 100644 index 0000000..9411b46 --- /dev/null +++ b/dotfiles/hyprland/.config/waybar/style.css @@ -0,0 +1,68 @@ +/* Waybar style - matching DWM colors */ +/* gray1=#222222, gray2=#444444, gray3=#bbbbbb, gray4=#eeeeee, accent=#daa520 */ + +* { + font-family: "FiraCode Nerd Font Mono", monospace; + font-size: 12px; + border: none; + border-radius: 0; + min-height: 0; +} + +window#waybar { + background-color: #222222; + color: #bbbbbb; +} + +#workspaces button { + padding: 0 8px; + color: #bbbbbb; + background-color: transparent; +} + +#workspaces button:hover { + background-color: #444444; +} + +#workspaces button.active { + color: #eeeeee; + background-color: #daa520; +} + +#workspaces button.urgent { + background-color: #900000; +} + +#window { + color: #bbbbbb; + padding: 0 10px; +} + +#clock, +#battery, +#disk, +#tray { + padding: 0 10px; + color: #bbbbbb; +} + +#battery.charging { + color: #daa520; +} + +#battery.warning:not(.charging) { + color: #f0ad4e; +} + +#battery.critical:not(.charging) { + color: #d9534f; +} + +#tray > .passive { + -gtk-icon-effect: dim; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: #daa520; +} -- cgit v1.2.3