Something went wrong. Try again.
dope ass quickshell bar
Something went wrong. Try again.
QML 100%
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 #
- 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 #
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).