- QML 100%
| .claude | ||
| widgets | ||
| .gitignore | ||
| AGENTS.md | ||
| Bar.qml | ||
| CLAUDE.md | ||
| GlobalConfig.qml | ||
| 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 with full click support
- Drive monitoring with configurable mount points
- Network stats with upload/download speeds
- 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
- 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 left, middle, and 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.
| State | Screenshot |
|---|---|
| Normal | ![]() |
| Hover (up/down speeds) | ![]() |
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


















