dotfiles
1

Configure Feed

Select the types of activity you want to include in your feed.

Add waybar as the default status bar

Juan Nunez-Iglesias (Jun 28, 2026, 8:32 PM +0200) b288a44b 6c144d19

+163 -4
+1
dots
··· 40 40 "cosmic/custom-shortcuts": HOME / ".config" / "cosmic" / "com.system76.CosmicSettings.Shortcuts" / "v1" / "custom", 41 41 "cosmic/system-actions": HOME / ".config" / "cosmic" / "com.system76.CosmicSettings.Shortcuts" / "v1" / "system_actions", 42 42 "sway": HOME / ".config" / "sway", 43 + "waybar": HOME / ".config" / "waybar", 43 44 "starship/starship.toml": HOME / ".config" / "starship.toml", 44 45 "keyd/default.conf": Path("/etc/keyd/default.conf"), 45 46 }
+6 -4
sway/config
··· 259 259 260 260 bindsym $mod+r mode "resize" 261 261 262 - # Start swaybar to display a workspace bar (plus i3status' system information). 263 - # i3status is compositor-agnostic and works under sway unchanged. 262 + # Status bar: Waybar (replaces swaybar + i3status). 263 + # `swaybar_command waybar` hands the bar over to Waybar but lets sway own its 264 + # lifecycle, so it restarts on `reload` and goes away on exit -- no stray 265 + # `exec waybar` needed. Waybar's own config lives in ~/.config/waybar/ (tracked 266 + # in these dotfiles) and draws the workspaces, system info, and tray itself. 264 267 bar { 265 - status_command i3status -c ~/.config/sway/i3status.conf 266 - tray_output primary 268 + swaybar_command waybar 267 269 } 268 270 269 271 # Make sure apps and the tray see the Wayland/desktop environment.
+99
waybar/config
··· 1 + // Waybar configuration for sway. 2 + // Reproduces the modules from the old sway/i3status.conf: 3 + // disk /, wireless/ethernet, battery, load/cpu, the MAD/SF/NY/local clocks, 4 + // and volume -- plus a system tray. 5 + // Launched by sway via `bar { swaybar_command waybar }` (see sway/config). 6 + // Docs: `man waybar` and https://github.com/Alexays/Waybar/wiki/Configuration 7 + { 8 + "layer": "top", 9 + "position": "bottom", 10 + "height": 24, 11 + 12 + "modules-left": ["sway/workspaces", "sway/mode"], 13 + "modules-center": ["clock#local"], 14 + "modules-right": [ 15 + "network", 16 + "disk", 17 + "cpu", 18 + "pulseaudio", 19 + "battery", 20 + "clock#madrid", 21 + "clock#la", 22 + "clock#dc", 23 + "tray" 24 + ], 25 + 26 + "sway/workspaces": { 27 + "disable-scroll": true, 28 + "all-outputs": false 29 + }, 30 + 31 + "sway/mode": { 32 + "format": "<span style=\"italic\">{}</span>" 33 + }, 34 + 35 + // i3status: disk "/" { format = "%avail" } 36 + "disk": { 37 + "path": "/", 38 + "format": "{free}", 39 + "tooltip-format": "{used} used of {total} on {path}" 40 + }, 41 + 42 + // i3status: wireless/ethernet _first_ 43 + "network": { 44 + "format-wifi": "W: {essid} {ipaddr}", 45 + "format-ethernet": "E: {ipaddr}", 46 + "format-disconnected": "down", 47 + "tooltip-format": "{ifname}: {ipaddr}/{cidr}", 48 + "tooltip-format-wifi": "{essid} ({signalStrength}%) {ipaddr}" 49 + }, 50 + 51 + // i3status: load { format = "%1min" } -- waybar reports CPU load average. 52 + "cpu": { 53 + "format": "{load}", 54 + "tooltip": true 55 + }, 56 + 57 + // i3status: volume master -- now via PipeWire/PulseAudio. 58 + "pulseaudio": { 59 + "format": "♪: {volume}%", 60 + "format-muted": "♪: X", 61 + "scroll-step": 5, 62 + "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle", 63 + "tooltip-format": "{desc}: {volume}%" 64 + }, 65 + 66 + // i3status: battery 0 67 + "battery": { 68 + "format": "{icon} {capacity}%", 69 + "format-charging": "⚡ {capacity}%", 70 + "format-full": "☻ {capacity}%", 71 + "format-icons": ["🔋"], 72 + "states": { "warning": 20, "critical": 10 }, 73 + "tooltip-format": "{timeTo} ({power}W)" 74 + }, 75 + 76 + // i3status: the four tztime clocks. Local is centered; the others sit right. 77 + "clock#local": { 78 + "timezone": "Australia/Melbourne", 79 + "format": "{:%a %d %b %H:%M}", 80 + "tooltip-format": "<tt>{calendar}</tt>" 81 + }, 82 + "clock#madrid": { 83 + "timezone": "Europe/Madrid", 84 + "format": "MAD {:%H:%M(%a)}" 85 + }, 86 + "clock#la": { 87 + "timezone": "America/Los_Angeles", 88 + "format": "SF {:%H:%M(%a)}" 89 + }, 90 + "clock#dc": { 91 + "timezone": "America/New_York", 92 + "format": "NY {:%H:%M(%a)}" 93 + }, 94 + 95 + "tray": { 96 + "icon-size": 18, 97 + "spacing": 8 98 + } 99 + }
+57
waybar/style.css
··· 1 + /* Waybar style for sway. Dark theme matching the purple swaylock palette 2 + * (ring-color 7c5cbf, text e0def4). Edit freely -- changes apply on reload. */ 3 + 4 + * { 5 + font-family: "DejaVu Sans Mono", monospace; 6 + font-size: 13px; 7 + min-height: 0; 8 + } 9 + 10 + window#waybar { 11 + background-color: #1e1e2e; 12 + color: #e0def4; 13 + } 14 + 15 + #workspaces button { 16 + padding: 0 8px; 17 + background-color: transparent; 18 + color: #e0def4; 19 + border-bottom: 2px solid transparent; 20 + } 21 + 22 + #workspaces button.focused { 23 + background-color: #2e2a3e; 24 + border-bottom: 2px solid #7c5cbf; 25 + } 26 + 27 + #workspaces button.urgent { 28 + color: #bf616a; 29 + border-bottom: 2px solid #bf616a; 30 + } 31 + 32 + #mode { 33 + color: #ebcb8b; 34 + padding: 0 8px; 35 + } 36 + 37 + #network, 38 + #disk, 39 + #cpu, 40 + #pulseaudio, 41 + #battery, 42 + #clock, 43 + #tray { 44 + padding: 0 10px; 45 + } 46 + 47 + #battery.warning { 48 + color: #ebcb8b; 49 + } 50 + 51 + #battery.critical { 52 + color: #bf616a; 53 + } 54 + 55 + #clock.local { 56 + color: #9d7cff; 57 + }