- QML 100%
| .claude | ||
| .src/assets | ||
| widgets | ||
| .gitignore | ||
| AGENTS.md | ||
| Bar.qml | ||
| CLAUDE.md | ||
| GlobalConfig.qml | ||
| LICENSE | ||
| PopupConfig.qml | ||
| PopupManager.qml | ||
| qmldir | ||
| README.md | ||
| shell.qml | ||
Quickshell Bar Configuration
A minimal, i3status-inspired Wayland bar built with Quickshell. Features a clean aesthetic with status-based color coding and smooth animations.
Features
- Workspace indicator with compositor auto-detection (Hyprland, Niri)
- Window title display
- System tray built in
- Drive monitoring with configurable mount points
- Network stats with online/offline indicator (colors)
- System monitors for RAM and CPU usage
- Volume control with PipeWire integration and media controls
- Clock with calendar popup
- Power menu with lock, logout, suspend, reboot, and shutdown (configurable commands)
- Notifications with smooth animations, swipe-to-dismiss, and urgency levels
- Volume OSD overlay
Screenshots
Workspaces & Window Title
The workspace indicator auto-detects your compositor (Hyprland or Niri) and displays active workspaces. The window title shows the currently focused window.
System Tray
Full system tray support with right click actions!
Drives Widget
Monitor multiple mount points with color-coded usage indicators.
| State | Screenshot |
|---|---|
| Normal | ![]() |
| Hover (shows used/total) | ![]() |
| Popup (detailed view) | ![]() |
Network Widget
Shows network interface status with upload/download speeds on hover.
Network (online)
RAM & CPU Widgets
Real-time system resource monitoring with color-coded thresholds.
- Green: Normal usage
- Yellow: Moderate usage (>33%)
- Red: High usage (>85%)
Volume Widget
PipeWire-integrated volume control with media player controls.
| State | Screenshot |
|---|---|
| Muted | ![]() |
| Low | ![]() |
| Medium | ![]() |
| High | ![]() |
| Hover | ![]() |
| Popup | ![]() |
Clock Widget
Time display with date on hover and full calendar popup.
| State | Screenshot |
|---|---|
| Normal | ![]() |
| Hover (shows date) | ![]() |
| Popup (calendar) | ![]() |
Power Menu
Quick access to system power options.
Notifications
Smooth animated notifications with urgency levels and swipe-to-dismiss.
Configuration
All configuration is centralized in GlobalConfig.qml. Edit this file to customize the bar.
Colors
// i3status-inspired color scheme
backgroundColor: "#000000" // Bar background
foregroundColor: "#ffffff" // Primary text
dimmedColor: "#888888" // Secondary/muted text
activeColor: "#4c7899" // Active/accent color
urgentColor: "#ff0000" // Urgent indicators
borderColor: "#444444" // Borders and separators
goodColor: "#00ff00" // Good status (green)
degradedColor: "#ffff00" // Warning status (yellow)
badColor: "#ff0000" // Critical status (red)
Bar Settings
barHeight: 24 // Bar height in pixels
barPlacement: "bottom" // "top" or "bottom"
widgetPadding: 4 // Padding around widgets
separator: "|" // Separator character
Typography
fontFamily: "Ioskeley Mono" // Main font
iconFont: "CaskaydiaCove Nerd Font" // Icon font (Nerd Font)
fontSize: 14 // Base font size
fontSizeLarge: 14 // Large text size
fontWeight: Font.Normal // Font weight
System Tray
trayIconSize: 20 // Tray icon size
trayIconSpacing: 4 // Spacing between icons
Update Intervals
clockInterval: 1000 // Clock update (ms)
systemStatsInterval: 2000 // CPU/RAM update (ms)
networkInterval: 1000 // Network stats update (ms)
internetCheckInterval: 30000 // Internet connectivity check (ms)
Animation
animationDuration: 120 // General animations (ms)
popupAnimationDuration: 130 // Popup animations (ms)
Power Menu Commands
poweroffCommand: "systemctl poweroff"
rebootCommand: "systemctl reboot"
lockCommand: "loginctl lock-session"
logoutCommand: "loginctl terminate-session $XDG_SESSION_ID"
suspendCommand: "systemctl suspend"
Network
networkInterface: "" // Auto-detect if empty, or specify e.g. "enp5s0"
Notifications
notificationsEnabled: true
notificationPosition: "top_right" // top_left, top_right, bottom_left, bottom_right
notificationWidth: 350
notificationMaxVisible: 5
notificationTimeout: 5000 // Auto-dismiss delay (ms), 0 = never
notificationSpacing: 8
notificationMargin: 10
// Urgency colors
notificationLowColor: dimmedColor
notificationNormalColor: goodColor
notificationCriticalColor: badColor
Volume OSD
osdEnabled: true
osdPosition: "center" // top, bottom, center
osdWidth: 300
osdHeight: 40
osdTimeout: 1500 // Display duration (ms)
osdMargin: 50
Drive Widget
// Mount points to monitor (max 5)
driveMountPoints: [
{ name: "root", mountpoint: "/" },
{ name: "storage", mountpoint: "/mnt/storage" },
{ name: "VMs", mountpoint: "/mnt/VMs" }
]
// Color thresholds (percentage used)
driveGoodThreshold: 50 // 0-50% = green
driveDegradedThreshold: 80 // 51-80% = yellow, >80% = red
driveUpdateInterval: 30000 // Update interval (ms)
Dependencies
- Quickshell
- A Nerd Font (for icons)
- PipeWire (for volume control)
- Compositor: Hyprland or Niri
Installation
- Clone/copy to
~/.config/quickshell/ - Edit
GlobalConfig.qmlto customize - Run
quickshellor add to compositor autostart
License
MIT

















