Skip to content

Instantly share code, notes, and snippets.

@nalakawula
Last active June 9, 2025 07:59
Show Gist options
  • Save nalakawula/c888bf832277d008cee11cacbe92d0db to your computer and use it in GitHub Desktop.
Save nalakawula/c888bf832277d008cee11cacbe92d0db to your computer and use it in GitHub Desktop.
Waybar for Niri

Location: ~/.config/waybar/

Result

image

Hover the most left icon will show monitoring (cpu, ram, temperature, and disk)

image

Hover the most right icon will show session action (lock screen, reboot, and poweroff)

image

{
"layer": "top",
"position": "top",
"height": 30,
"spacing": 1,
"margin": 0,
"modules-left": [
"group/hardware",
"niri/workspaces",
"niri/window"
],
"modules-center": [
"clock"
],
"modules-right": [
"wireplumber#sink",
"backlight",
"network",
"battery",
"group/session",
"tray",
],
"niri/workspaces": {
"format": "{icon}",
"format-icons": {
"active": "",
"default": ""
}
},
"niri/window": {
"format": "<span color='#FFD700'>  {title}</span>",
"rewrite": {
"(.*) - Mozilla Firefox": "🌎 $1",
"(.*) - zsh": "> [$1]"
}
},
"custom/hardware-wrap": {
"format": "",
"tooltip-format": "Resource Usage"
},
"group/hardware": {
"orientation": "horizontal",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": true
},
"modules": [
"custom/hardware-wrap",
"power-profiles-daemon",
"cpu",
"memory",
"temperature",
"disk"
]
},
"custom/session-wrap": {
"format": "<span color='#63a4ff'>  </span>",
"tooltip-format": "Lock, Reboot, Shutdown"
},
"group/session": {
"orientation": "horizontal",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": true
},
"modules": [
"custom/session-wrap",
"custom/lock",
"custom/reboot",
"custom/power"
]
},
"custom/lock": {
"format": "<span color='#00FFFF'>  </span>",
"on-click": "swaylock -c 000000",
"tooltip": true,
"tooltip-format": "Lock screen"
},
"custom/reboot": {
"format": "<span color='#FFD700'>  </span>",
"on-click": "systemctl reboot",
"tooltip": true,
"tooltip-format": "Reboot"
},
"custom/power": {
"format": "<span color='#FF4040'>  </span>",
"on-click": "systemctl poweroff",
"tooltip": true,
"tooltip-format": "Power Off"
},
"clock": {
"format": "󰥔 {:%H:%M 󰃮 %B %d, %Y}",
"format-alt": "󰥔 {:%H:%M}",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 3,
"weeks-pos": "right",
"on-scroll": 1,
"on-click-right": "mode",
"format": {
"months": "<span color='#d3c6aa'><b>{}</b></span>",
"days": "<span color='#e67e80'>{}</span>",
"weeks": "<span color='#a7c080'><b>W{}</b></span>",
"weekdays": "<span color='#7fbbb3'><b>{}</b></span>",
"today": "<span color='#dbbc7f'><b><u>{}</u></b></span>"
}
},
"actions": {
"on-click-right": "mode",
"on-click-forward": "tz_up",
"on-click-backward": "tz_down",
"on-scroll-up": "shift_up",
"on-scroll-down": "shift_down"
}
},
"cpu": {
"format": "󰘚 {usage}%",
"tooltip": true,
"interval": 1,
"on-click": "alacritty -e htop"
},
"memory": {
"format": "󰍛 {}%",
"interval": 1,
"on-click": "alacritty -e htop"
},
"temperature": {
"critical-threshold": 80,
"format": "{icon} {temperatureC}°C",
"format-icons": [
"󱃃",
"󰔏",
"󱃂"
],
},
"battery": {
"states": {
"good": 95,
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-charging": "󰂄 {capacity}%",
"format-plugged": "󰚥 {capacity}%",
"format-alt": "{icon} {time}",
"format-icons": [
"󰂎",
"󰁺",
"󰁻",
"󰁼",
"󰁽",
"󰁾",
"󰁿",
"󰂀",
"󰂁",
"󰂂",
"󰁹"
]
},
"network": {
"format-wifi": "󰖩 {essid} ({signalStrength}%)",
"format-ethernet": "󰈀 {ifname}",
"format-linked": "󰈀 {ifname} (No IP)",
"format-disconnected": "󰖪 Disconnected",
"format-alt": "{ifname}: {ipaddr}/{cidr}",
"tooltip-format": "{ifname}: {ipaddr}",
"on-click-right": "alacritty -e nmtui"
},
"wireplumber#sink": {
"format": "{icon} {volume}%",
"format-muted": "",
"format-icons": [
"",
"",
""
],
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
"on-scroll-down": "wpctl set-volume @DEFAULT_SINK@ 1%-",
"on-scroll-up": "wpctl set-volume @DEFAULT_SINK@ 1%+"
},
"backlight": {
"format": "{icon} {percent}%",
"format-icons": [
"󰃞",
"󰃟",
"󰃠"
],
"on-scroll-up": "brightnessctl set +5%",
"on-scroll-down": "brightnessctl set 5%-"
},
"disk": {
"interval": 30,
"format": "󰋊 {percentage_used}%",
"path": "/",
},
"tray": {
"icon-size": 16,
"spacing": 5
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "",
"balanced": "",
"power-saver": ""
}
},
}
/* Pastel TTY Colors */
@define-color background #212121;
@define-color background-light #3a3a3a;
@define-color foreground #e0e0e0;
@define-color black #5a5a5a;
@define-color red #ff9a9e;
@define-color green #b5e8a9;
@define-color yellow #ffe6a7;
@define-color blue #63a4ff;
@define-color magenta #dda0dd;
@define-color cyan #a3e8e8;
@define-color white #ffffff;
@define-color orange #ff8952;
/* Module-specific colors */
@define-color workspaces-color @foreground;
@define-color workspaces-focused-bg @green;
@define-color workspaces-focused-fg @cyan;
@define-color workspaces-urgent-bg @red;
@define-color workspaces-urgent-fg @black;
/* Text and border colors for modules */
@define-color mode-color @orange;
@define-color group-hardware-color @blue;
@define-color group-session-color @red;
@define-color clock-color @blue;
@define-color cpu-color @green;
@define-color memory-color @magenta;
@define-color temperature-color @yellow;
@define-color temperature-critical-color @red;
@define-color battery-color @cyan;
@define-color battery-charging-color @green;
@define-color battery-warning-color @yellow;
@define-color battery-critical-color @red;
@define-color network-color @blue;
@define-color network-disconnected-color @red;
@define-color pulseaudio-color @orange;
@define-color pulseaudio-muted-color @red;
@define-color wireplumber-color @orange;
@define-color wireplumber-muted-color @red;
@define-color backlight-color @yellow;
@define-color disk-color @cyan;
@define-color updates-color @orange;
@define-color quote-color @green;
@define-color idle-inhibitor-color @foreground;
@define-color idle-inhibitor-active-color @red;
@define-color power-profiles-daemon-color @cyan;
@define-color power-profiles-daemon-performance-color @red;
@define-color power-profiles-daemon-balanced-color @yellow;
@define-color power-profiles-daemon-power-saver-color @green;
* {
/* Base styling for all modules */
border: none;
border-radius: 0;
font-family: "JetBrainsMono Nerd Font Propo";
font-size: 14px;
min-height: 0;
}
window#waybar {
background-color: @background;
color: @foreground;
}
/* Common module styling with border-bottom */
#mode,
#custom-hardware-wrap,
#custom-session-wrap,
#clock,
#cpu,
#memory,
#temperature,
#battery,
#network,
#pulseaudio,
#wireplumber,
#backlight,
#disk,
#power-profiles-daemon,
#idle_inhibitor,
#tray {
padding: 0 10px;
margin: 0 2px;
border-bottom: 2px solid transparent;
background-color: transparent;
}
/* Workspaces styling */
#workspaces button {
padding: 0 10px;
background-color: transparent;
color: @workspaces-color;
margin: 0;
}
#workspaces button:hover {
background: @background-light;
box-shadow: inherit;
}
#workspaces button.focused {
box-shadow: inset 0 -2px @workspaces-focused-fg;
color: @workspaces-focused-fg;
font-weight: 900;
}
#workspaces button.urgent {
background-color: @workspaces-urgent-bg;
color: @workspaces-urgent-fg;
}
/* Module-specific styling */
#mode {
color: @mode-color;
border-bottom-color: @mode-color;
}
#custom-hardware-wrap {
color: @group-hardware-color;
border-bottom-color: @group-hardware-color;
}
#custom-session-wrap {
color: @group-session-color;
border-bottom-color: @group-session-color;
}
#clock {
color: @clock-color;
border-bottom-color: @clock-color;
}
#cpu {
color: @cpu-color;
border-bottom-color: @cpu-color;
}
#memory {
color: @memory-color;
border-bottom-color: @memory-color;
}
#temperature {
color: @temperature-color;
border-bottom-color: @temperature-color;
}
#temperature.critical {
color: @temperature-critical-color;
border-bottom-color: @temperature-critical-color;
}
#power-profiles-daemon {
color: @power-profiles-daemon-color;
border-bottom-color: @power-profiles-daemon-color;
}
#power-profiles-daemon.performance {
color: @power-profiles-daemon-performance-color;
border-bottom-color: @power-profiles-daemon-performance-color;
}
#power-profiles-daemon.balanced {
color: @power-profiles-daemon-balanced-color;
border-bottom-color: @power-profiles-daemon-balanced-color;
}
#power-profiles-daemon.power-saver {
color: @power-profiles-daemon-power-saver-color;
border-bottom-color: @power-profiles-daemon-power-saver-color;
}
#battery {
color: @battery-color;
border-bottom-color: @battery-color;
}
#battery.charging,
#battery.plugged {
color: @battery-charging-color;
border-bottom-color: @battery-charging-color;
}
#battery.warning:not(.charging) {
color: @battery-warning-color;
border-bottom-color: @battery-warning-color;
}
#battery.critical:not(.charging) {
color: @battery-critical-color;
border-bottom-color: @battery-critical-color;
}
#network {
color: @network-color;
border-bottom-color: @network-color;
}
#network.disconnected {
color: @network-disconnected-color;
border-bottom-color: @network-disconnected-color;
}
#pulseaudio {
color: @pulseaudio-color;
border-bottom-color: @pulseaudio-color;
}
#pulseaudio.muted {
color: @pulseaudio-muted-color;
border-bottom-color: @pulseaudio-muted-color;
}
#wireplumber {
color: @wireplumber-color;
border-bottom-color: @wireplumber-color;
}
#wireplumber.muted {
color: @wireplumber-muted-color;
border-bottom-color: @wireplumber-muted-color;
}
#backlight {
color: @backlight-color;
border-bottom-color: @backlight-color;
}
#disk {
color: @disk-color;
border-bottom-color: @disk-color;
}
#idle_inhibitor {
color: @idle-inhibitor-color;
border-bottom-color: transparent;
}
#idle_inhibitor.activated {
color: @idle-inhibitor-active-color;
border-bottom-color: @idle-inhibitor-active-color;
}
#tray {
background-color: transparent;
padding: 0 10px;
margin: 0 2px;
}
#tray>.passive {
-gtk-icon-effect: dim;
}
#tray>.needs-attention {
-gtk-icon-effect: highlight;
color: @red;
border-bottom-color: @red;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment