Update waybar

This commit is contained in:
Tyler 2025-10-03 18:57:00 -04:00
parent dd26b79bdd
commit d09224cb3b
Signed by: tyler
GPG Key ID: 03B27509E17EFDC8
2 changed files with 444 additions and 117 deletions

View File

@ -1,74 +1,77 @@
{
// Waybar reads JSONC and is styled via CSS.
// niri has a native workspaces module "niri/workspaces".
// Save as: ~/.config/waybar/config.jsonc
"layer": "top",
"position": "top",
"layer": "top",
"position": "top",
"height": 28,
"gtk-layer-shell": true,
"modules-left": [
"modules-left": [
"niri/workspaces",
],
"modules-center": [
],
"modules-right": [
"custom/weather",
"custom/loadavg",
"custom/arrow10"
],
"modules-right": [
"custom/arrow9",
"pulseaudio",
"custom/arrow8",
"network",
"custom/arrow7",
"memory",
"custom/arrow6",
"cpu",
"custom/arrow5",
"temperature",
"custom/arrow4",
"battery",
"custom/arrow3",
"custom/docker",
"custom/arrow2",
"tray",
"clock#date",
"custom/arrow1",
"clock#time"
],
"cpu",
"memory",
"pulseaudio",
"bluetooth",
"battery",
"tray",
"clock"
],
// Modules
"battery": {
"interval": 10,
"states": {
"warning": 30,
"critical": 15
},
"format-time": "{H}:{M:02}",
"format": "{icon} {capacity}% ({time})",
"format-charging": " {capacity}% ({time})",
"format-charging-full": " {capacity}%",
"format-full": "{icon} {capacity}%",
"format-alt": "{icon} {power}W",
"format-icons": [
"",
"",
"",
"",
""
],
"tooltip": false
},
"clock#time": {
"interval": 10,
"format": "{:%H:%M}",
"tooltip": false
},
"clock#date": {
"interval": 20,
"format": "{:%e %b %Y}",
"tooltip": false
//"tooltip-format": "{:%e %B %Y}"
},
// ----- niri workspaces -----
"niri/workspaces": {
"format": "{name}",
"on-click": "niri msg action toggle-overview",
"disable-scroll": false
},
// ----- CPU / Memory -----
"cpu": {
"interval": 3,
"format": " {usage:>2}%"
},
"memory": {
"interval": 5,
"format": " {used:0.1f}G"
},
// ----- Clock / Date -----
"clock": {
"interval": 1,
"format": " {:%a %b %d}  {:%H:%M:%S}",
"tooltip": false
},
// ----- Loadavg (custom) -----
"custom/loadavg": {
"exec": "awk '{printf \" %s\", $1}' /proc/loadavg",
"interval": 5,
"return-type": "text",
"tooltip": false
},
// ----- IP (custom) -----
// Shows first non-loopback IPv4; adjust if you prefer a specific iface.
"custom/ip": {
"exec": "ip -4 -o addr show scope global | awk '{print $4}' | cut -d/ -f1 | head -n1 | awk '{print \" \"$1}'",
"interval": 15,
"return-type": "text",
"tooltip": "ip -4 -o addr show"
},
// ----- Docker (custom) -----
"custom/docker": {
"exec": "printf \" %s\" \"$(docker ps -q 2>/dev/null | wc -l)\"",
"interval": 10,
@ -76,30 +79,140 @@
"tooltip": "docker ps"
},
// ----- Bluetooth (native) -----
"bluetooth": {
"format": "{status}",
"format-disabled": " off",
"format-connected": " {num_connections}",
"on-click": "blueman-manager"
},
"cpu": {
"interval": 1,
"tooltip": false,
"format": " {usage}%",
"format-alt": " {load}",
"states": {
"warning": 70,
"critical": 90
}
},
// ----- Battery -----
"battery": {
"interval": 15,
"format": "{icon} {capacity}%",
"format-charging": " {capacity}%",
"format-icons": ["", "", "", "", ""],
"states": {
"warning": 25,
"critical": 10
}
},
"memory": {
"interval": 5,
"format": "{used:0.1f}G/{total:0.1f}G",
"states": {
"warning": 70,
"critical": 90
},
"tooltip": false
},
// ----- System tray -----
"tray": {
"icon-size": 16,
"spacing": 6
}
"network": {
"interval": 5,
"format-wifi": " {essid} ({signalStrength}%)",
"format-ethernet": "{ifname}",
"format-disconnected": "No connection",
"format-alt": " {ipaddr}/{cidr}",
"tooltip": false
},
"sway/mode": {
"format": "{}",
"tooltip": false
},
"sway/window": {
"format": "{}",
"max-length": 30,
"tooltip": false
},
"sway/workspaces": {
"disable-scroll-wraparound": true,
"smooth-scrolling-threshold": 4,
"enable-bar-scroll": true,
"format": "{name}"
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-bluetooth": "{icon} {volume}%",
"format-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", ""]
},
"scroll-step": 1,
"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
"tooltip": false
},
"temperature": {
"critical-threshold": 90,
"interval": 5,
"format": "{icon} {temperatureC}°",
"format-icons": [
"",
"",
"",
"",
""
],
"tooltip": false
},
"tray": {
"icon-size": 18
//"spacing": 10
},
"custom/arrow1": {
"format": "",
"tooltip": false
},
"custom/arrow2": {
"format": "",
"tooltip": false
},
"custom/arrow3": {
"format": "",
"tooltip": false
},
"custom/arrow4": {
"format": "",
"tooltip": false
},
"custom/arrow5": {
"format": "",
"tooltip": false
},
"custom/arrow6": {
"format": "",
"tooltip": false
},
"custom/arrow7": {
"format": "",
"tooltip": false
},
"custom/arrow8": {
"format": "",
"tooltip": false
},
"custom/arrow9": {
"format": "",
"tooltip": false
},
"custom/arrow10": {
"format": "",
"tooltip": false
}
}
// vi:ft=jsonc

View File

@ -1,51 +1,265 @@
/* Waybar CSS — match your DWM palette + Hermit font */
/* Keyframes */
@keyframes blink-critical {
to {
/*color: @white;*/
background-color: @critical;
}
}
/* Styles */
/* Colors (gruvbox) */
@define-color black #282828;
@define-color red #cc241d;
@define-color green #98971a;
@define-color yellow #d79921;
@define-color blue #458588;
@define-color purple #b16286;
@define-color aqua #689d6a;
@define-color gray #a89984;
@define-color brgray #928374;
@define-color brred #fb4934;
@define-color brgreen #b8bb26;
@define-color bryellow #fabd2f;
@define-color brblue #83a598;
@define-color brpurple #d3869b;
@define-color braqua #8ec07c;
@define-color white #ebdbb2;
@define-color bg2 #504945;
@define-color warning @bryellow;
@define-color critical @red;
@define-color mode @black;
@define-color unfocused @bg2;
@define-color focused @braqua;
@define-color inactive @purple;
@define-color sound @brpurple;
@define-color network @purple;
@define-color memory @braqua;
@define-color cpu @green;
@define-color temp @brgreen;
@define-color layout @bryellow;
@define-color battery @aqua;
@define-color date @black;
@define-color time @white;
/* Reset all styles */
* {
font-family: Hermit, monospace;
font-size: 11pt;
border: none;
border-radius: 0;
min-height: 0;
margin: 0;
padding: 0;
box-shadow: none;
text-shadow: none;
icon-shadow: none;
}
window#waybar {
background: #222222;
color: #eeeeee;
border-bottom: 0px solid transparent;
/* The whole bar */
#waybar {
background: rgba(40, 40, 40, 0.8784313725); /* #282828e0 */
color: @white;
font-family: JetBrains Mono, Siji;
font-size: 10pt;
/*font-weight: bold;*/
}
/* Each module */
#battery,
#clock,
#cpu,
#language,
#memory,
#mode,
#network,
#pulseaudio,
#temperature,
#tray,
#backlight,
#idle_inhibitor,
#disk,
#user,
#mpris {
padding-left: 8pt;
padding-right: 8pt;
}
/* Each critical module */
#mode,
#memory.critical,
#cpu.critical,
#temperature.critical,
#battery.critical.discharging {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
animation-name: blink-critical;
animation-duration: 1s;
}
/* Each warning */
#network.disconnected,
#memory.warning,
#cpu.warning,
#temperature.warning,
#battery.warning.discharging {
color: @warning;
}
/* And now modules themselves in their respective order */
/* Current sway mode (resize etc) */
#mode {
color: @white;
background: @mode;
}
/* Workspaces stuff */
#workspaces button {
padding: 0 6px;
margin: 0 3px;
border-radius: 6px;
background: #222222;
color: #bbbbbb;
border: 1px solid #444444;
/*font-weight: bold;*/
padding-left: 2pt;
padding-right: 2pt;
color: @white;
background: @unfocused;
}
#workspaces button.active {
background: #458588; /* your light blue accent */
color: #eeeeee;
border-color: #458588;
/* Inactive (on unfocused output) */
#workspaces button.visible {
color: @white;
background: @inactive;
}
/* Active (on focused output) */
#workspaces button.focused {
color: @black;
background: @focused;
}
/* Contains an urgent window */
#workspaces button.urgent {
color: @black;
background: @warning;
}
/* Style when cursor is on the button */
#workspaces button:hover {
background: #444444;
color: #eeeeee;
background: @black;
color: @white;
}
#cpu, #memory, #clock, #pulseaudio, #battery, #tray,
#custom-weather, #custom-loadavg, #custom-ip, #custom-docker, #bluetooth {
padding: 0 10px;
margin: 0 4px;
border-radius: 8px;
background: #222222;
border: 1px solid #444444;
#window {
margin-right: 35pt;
margin-left: 35pt;
}
#pulseaudio.muted {
color: #bbbbbb;
opacity: 0.7;
}
#battery.warning {
color: #ffcc00;
}
#battery.critical {
color: #ff5555;
#pulseaudio {
background: @sound;
color: @black;
}
#network {
background: @network;
color: @white;
}
#memory {
background: @memory;
color: @black;
}
#cpu {
background: @cpu;
color: @white;
}
#temperature {
background: @temp;
color: @black;
}
#language {
background: @layout;
color: @black;
}
#battery {
background: @battery;
color: @white;
}
#tray {
background: @date;
}
#clock.date {
background: @date;
color: @white;
}
#clock.time {
background: @time;
color: @black;
}
#custom-arrow1 {
font-size: 11pt;
color: @time;
background: @date;
}
#custom-arrow2 {
font-size: 11pt;
color: @date;
background: @layout;
}
#custom-arrow3 {
font-size: 11pt;
color: @layout;
background: @battery;
}
#custom-arrow4 {
font-size: 11pt;
color: @battery;
background: @temp;
}
#custom-arrow5 {
font-size: 11pt;
color: @temp;
background: @cpu;
}
#custom-arrow6 {
font-size: 11pt;
color: @cpu;
background: @memory;
}
#custom-arrow7 {
font-size: 11pt;
color: @memory;
background: @network;
}
#custom-arrow8 {
font-size: 11pt;
color: @network;
background: @sound;
}
#custom-arrow9 {
font-size: 11pt;
color: @sound;
background: transparent;
}
#custom-arrow10 {
font-size: 11pt;
color: @unfocused;
background: transparent;
}