From 710caefead86c2a519e546e26c51dbf9dd6c0a1b Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Fri, 10 Oct 2025 16:04:15 -0400 Subject: [PATCH] Add initial minimalist waybar config --- config/waybar/config | 121 +++++++++++++++++++++++ config/waybar/style.css | 213 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 334 insertions(+) create mode 100644 config/waybar/config create mode 100644 config/waybar/style.css diff --git a/config/waybar/config b/config/waybar/config new file mode 100644 index 0000000..34bc04a --- /dev/null +++ b/config/waybar/config @@ -0,0 +1,121 @@ +{ + "position": "top", // Waybar position (top|bottom|left|right) + "height": 5, // Waybar height (to be removed for auto height) + "modules-left": [], + "modules-center": ["clock"], + "modules-right": ["pulseaudio", "network", "cpu","memory","battery", "tray"], + "sway/mode": { + "format": "{}" + }, + "mpd": { + "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ ", + "format-disconnected": "Disconnected ", + "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", + "unknown-tag": "N/A", + "interval": 2, + "consume-icons": { + "on": " " + }, + "random-icons": { + "off": " ", + "on": " " + }, + "repeat-icons": { + "on": " " + }, + "single-icons": { + "on": "1 " + }, + "state-icons": { + "paused": "", + "playing": "" + }, + "tooltip-format": "MPD (connected)", + "tooltip-format-disconnected": "MPD (disconnected)" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "tray": { + "spacing": 10 + }, + "clock": { + "format": "{:%A, %b %d | %I:%M %p}", + "format-alt": "{:%Y-%m-%d}" + + }, + "cpu": { + "states": { + "critical": 90, + "warning": 75, + "good": 0, + }, + "format": "", + "format-alt": "{usage}% ", + }, + + "memory": { + "states": { + "critical": 80, + "warning": 50, + "good": 0, + }, + "format": "", + }, + "temperature": { + "critical-threshold": 80, + "format": "{temperatureC}°C {icon}", + "format-icons": ["", "", ""] + }, + "backlight": { + "format": "{icon}", + "format-icons": ["", ""] + }, + "battery": { + "states": { + "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{icon}", + "format-icons": ["", "", "", "", ""], + "format-charging": "{capacity}%", + "format-plugged": "{capacity}%", + "format-alt": "{capacity}% | {time}" + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interfac + "format-wifi": "", + "tooltip-format-wifi": "{essid} {signalStrength}%", + "format-ethernet": "", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "󰖪", + "format-alt": "{ifname}: {ipaddr}/{cidr}" + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format-icons": ["", "", ""], + "format": "{icon}", + "format-bluetooth": "{{icon} {format_source}", + "format-bluetooth-muted": "󰝟 {format_source}", + "format-muted": "󰝟 ", + "on-click": "pavucontrol" + }, + "custom/media": { + "format": " {}", + "return-type": "json", + "max-length": 40, + "escape": true, + "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder + // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + }, + "hyprland/workspaces": { + "format": "{icon}", + "on-scroll-up": "hyprctl dispatch workspace e+1", + "on-scroll-down": "hyprctl dispatch workspace e-1" +} +} diff --git a/config/waybar/style.css b/config/waybar/style.css new file mode 100644 index 0000000..231fbe9 --- /dev/null +++ b/config/waybar/style.css @@ -0,0 +1,213 @@ +* { + border: none; + border-radius: 4px; + /* `ttf-font-awesome` is required to be installed for icons */ + font-family: "IosevkaTermSlab Nerd Font Propo"; + + /* adjust font-size value to your liking: */ + font-size: 14px; + + min-height: 0; +} + +window#waybar { + background-color: #191919; + color: #ffffff; +} + +#workspaces button { + color: #ffffff; + box-shadow: inset 0 -3px transparent; +} + +#workspaces button:hover { + background: rgba(0, 0, 0, 0.9); + box-shadow: inset 0 -3px #ffffff; +} + +#workspaces button.focused { + background-color: #64727d; +} + +#workspaces button.urgent { + background-color: #eb4d4b; +} + +#mode { + background-color: #64727d; +} + +#clock, +#battery, +#cpu, +#memory, +#temperature, +#backlight, +#network, +#pulseaudio, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#mpd { + padding: 0 10px; + margin: 6px 3px; + color: #191919; +} + +#window, +#workspaces { + margin: 0 4px; +} + +/* If workspaces is the leftmost module, omit left margin */ +.modules-left > widget:first-child > #workspaces { + margin-left: 0; +} + +/* If workspaces is the rightmost module, omit right margin */ +.modules-right > widget:last-child > #workspaces { + margin-right: 0; +} + +#clock { + background-color: #191919; + color: white; +} + +#battery { + background-color: #191919; + color: white; +} + +#battery.charging { + color: #8BAE68; + background-color: #191919; +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #191919; + } +} + +#battery.critical:not(.charging) { + color: #DE6E7C; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +label:focus { + background-color: #191919; +} + +#cpu { + background-color: #191919; + color: #ffffff; +} + +#cpu.warning{ + color: #D68C67; +} +#cpu.critical{ + color: #DE6E7C; +} + +#memory { + background-color: #191919; + color: #ffffff; +} + +#memory.warning{ + color: #D68C67; +} +#memory.critical{ + color: #DE6E7C; +} +#backlight { + background-color: #191919; + color: white; +} + +#network { + background-color: #191919; + color: white; +} + +#network.disconnected { + background-color: #DE6E7c; +} + +#pulseaudio { + background-color: #191919; + color: #ffffff; +} + +#pulseaudio.muted { + background-color: #191919; + color: #DE6E7c; +} + +#custom-media { + background-color: #66cc99; + color: #2a5c45; + min-width: 100px; +} + +#custom-media.custom-spotify { + background-color: #66cc99; +} + +#custom-media.custom-vlc { + background-color: #ffa000; +} + +#temperature { + background-color: #f0932b; +} + +#temperature.critical { + background-color: #eb4d4b; +} + +#tray { + background-color: #2980b9; +} + +#idle_inhibitor { + background-color: #2d3436; +} + +#idle_inhibitor.activated { + background-color: #ecf0f1; + color: #2d3436; +} + +#mpd { + background-color: #66cc99; + color: #2a5c45; +} + +#mpd.disconnected { + background-color: #f53c3c; +} + +#mpd.stopped { + background-color: #90b1b1; +} + +#mpd.paused { + background-color: #51a37a; +} + +#language { + background: #bbccdd; + color: #333333; + padding: 0 5px; + margin: 6px 3px; + min-width: 16px; +}