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#
- Quickshell ≥ 0.2.0
- Niri
- PipeWire
niriin$PATH(for window tracking via IPC)- Fonts: Inter, Maple Mono (for the audio icon glyph)
- An icon theme with app icons (e.g. Papirus)
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
UseQApplicationmode for system tray menus to work. This is handled automatically by the//@ pragma UseQApplicationdirective at the top ofshell.qml.
Structure#
eww/
├── shell.qml # everything, for now
└── README.md
Theming#
All colours and fonts are hardcoded inline and easy to grep for:
| Thing | Value |
|---|---|
| Background | "black" |
| Font | Inter, 16px, weight 700 |
| Focused window pill | #555 fill, #888 border |
| Hover | #2a2a2a fill, #555 border |
| Popup background | "black" |
| Popup hover | #1a1a1a |
| Separator | #333 |
| Disabled text | #555 |
| Audio icon font | Maple Mono |