dope ass quickshell bar
README.md

eww #

A minimal top bar for Quickshell on Niri.

Features #

  • Window strip — shows all windows on the current workspace, ordered by niri column position. Focused window is highlighted, unfocused are greyscaled. Click to focus.
  • System tray — full StatusNotifier support with native DBusMenu popups (including submenus on hover).
  • Audio widget — shows current default sink volume, scroll to adjust by 1%, click to open a sink picker powered by PipeWire directly.
  • Battery — charge percentage with a level/charging icon (via UPower); turns red when low, green while charging. Hidden on machines with no battery.
  • Wattage — live power draw/charge rate in watts (via UPower); shows - while discharging, + while charging. Hidden when idle or on desktops.
  • Clock — current time, updates every second.

Multi-monitor aware — one bar instance per screen, each showing only that screen's windows.

Dependencies #

Usage #

qs -c ~/.config/quickshell/eww

Or add to your niri config for autostart:

spawn-at-startup "qs" "-c" "/home/callie/.config/quickshell/eww"

Note: Quickshell must be launched with UseQApplication mode for system tray menus to work. This is handled automatically by the //@ pragma UseQApplication directive at the top of shell.qml.

Structure #

eww/
├── shell.qml   # everything, for now
└── README.md

Theming #

Add a theme object to ~/.config/ebar/config.json. Values are color strings; hex codes are recommended. The object may be partial: omitted keys keep the defaults below.

{
  "theme": {
    "background": "#1e1e2e",
    "foreground": "#cdd6f4",
    "muted": "#7f849c",
    "disabled": "#585b70",
    "surface": "#313244",
    "hover": "#45475a",
    "focus": "#585b70",
    "focusBorder": "#7f849c",
    "separator": "#45475a",
    "secondaryText": "#bac2de",
    "accent": "#fab387",
    "accentBackground": "#3b2f1f",
    "positive": "#a6e3a1",
    "negative": "#f38ba8",
    "transparent": "#00000000"
  }
}
Key Used for Default
background Bar and popup backgrounds #000000
foreground Normal text and icons #ffffff
muted Muted audio, inactive controls, and adjacent windows #888888
disabled Disabled tray-menu text #555555
surface Window strip and popup hover surfaces #1a1a1a
hover Window and workspace-control hover #2a2a2a
focus, focusBorder Focused window pill fill and border #555555, #888888
separator Tray separators #333333
secondaryText Windows on the current but unfocused workspace #b0b0b0
accent, accentBackground Idle-inhibit active state #c08030, #3a2a10
positive Charging state #70c070
negative Low-battery state #e06060
transparent Transparent widget backgrounds and borders #00000000

Fonts remain fixed (Inter and Maple Mono).