i3-quickshell
Find a file
2026-01-24 01:33:15 +01:00
.claude working bar 2025-12-26 23:36:24 +01:00
widgets added proper icons to the volume popup widget 2026-01-18 23:05:39 +01:00
.gitignore wip 2026-01-16 14:11:15 +01:00
AGENTS.md finally spaced out the drives.. 2026-01-06 05:14:09 +01:00
Bar.qml Fixed niri per monitor workspaces 2026-01-18 13:26:30 +01:00
CLAUDE.md pretty fking nice working bar (except tray, netstats and volume.. Also no calendar.. 2025-12-27 01:00:34 +01:00
GlobalConfig.qml made the notfications more fitting.. 2026-01-24 01:33:15 +01:00
PopupConfig.qml wip 2026-01-16 14:20:50 +01:00
PopupManager.qml fixed the invisible area bug? 2026-01-18 12:50:44 +01:00
qmldir wip 2026-01-16 14:20:50 +01:00
README.md fix 2025-12-28 03:16:59 +01:00
shell.qml wip 2025-12-27 12:17:40 +01:00

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.

Workspaces and Window Title


System Tray

Full system tray support with left, middle, and right-click actions.

System Tray


Drives Widget

Monitor multiple mount points with color-coded usage indicators.

State Screenshot
Normal Drives Normal
Hover (shows used/total) Drives Hover
Popup (detailed view) Drives Popup

Network Widget

Shows network interface status with upload/download speeds on hover.

State Screenshot
Normal Network Normal
Hover (up/down speeds) Network Hover

RAM & CPU Widgets

Real-time system resource monitoring with color-coded thresholds.

RAM and CPU

  • Green: Normal usage
  • Yellow: Moderate usage (>33%)
  • Red: High usage (>85%)

Volume Widget

PipeWire-integrated volume control with media player controls.

State Screenshot
Muted Volume Muted
Low Volume Low
Medium Volume Medium
High Volume High
Hover Volume Hover
Popup Volume Popup

Clock Widget

Time display with date on hover and full calendar popup.

State Screenshot
Normal Clock Normal
Hover (shows date) Clock Hover
Popup (calendar) Clock Popup

Power Menu

Quick access to system power options.

Power Menu Popup


Notifications

Smooth animated notifications with urgency levels and swipe-to-dismiss.

Notifications


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

  1. Clone/copy to ~/.config/quickshell/
  2. Edit GlobalConfig.qml to customize
  3. Run quickshell or add to compositor autostart

License

MIT