Skip to content
📖 20 min🎯Difficulty:
Prerequisites:QML basics

Overview

This appendix lists every QML type exposed by the Quickshell import and its sub-modules. Use this as a quick reference when building your shell.

Core Types (import Quickshell)

Quickshell

qml
import Quickshell
Property/MethodTypeDescription
configPath(path)methodResolve a path relative to the config directory
statePath(path)methodResolve a path relative to the state directory
screensarrayList of available screens
process(opts)methodExecute a process (returns QProcess handle)
execDetached(opts)methodExecute a process without waiting
applicationobjectApplication metadata
platformstringCurrent platform name
versionstringQuickshell version string
qml
import Quickshell
PropertyTypeDescription
visibleboolShow/hide the popup
widthintWindow width
heightintWindow height
x, yintWindow position
anchorobjectAnchor configuration (window, margins, edges)
typeenumWindow type (Normal, Dock, Tooltip, PopupMenu)
marginsrectMargins from anchor

Rectangle (Extended)

Quickshell extends Qt's Rectangle with:

PropertyTypeDescription
radiusrealCorner radius
border.widthintBorder width
border.colorcolorBorder color
clipboolEnable clipping

Service Types

Hardware Services (import Quickshell.Services.Hardware)

TypeDescription
CpuServiceCPU usage, frequency, temperature
MemoryServiceRAM usage, total, available
BatteryServiceBattery percentage, charging status
DiskServiceDisk usage by mount point
GpuServiceGPU utilization, temperature

Audio Service (import Quickshell.Services.Audio)

TypeDescription
AudioServiceVolume control, mute, sinks, sources, applications

Network Service (import Quickshell.Services.Network)

TypeDescription
NetworkServiceWi-Fi scanning, connection management, ethernet status

Bluetooth Service (import Quickshell.Services.Bluetooth)

TypeDescription
BluetoothServiceAdapter power, device scanning, pairing, connections

Power Service (import Quickshell.Services.Power)

TypeDescription
PowerServicePower profiles, sleep, hibernate

Notifications Service (import Quickshell.Services.Notifications)

TypeDescription
NotificationServiceReceive and send notifications
NotificationIndividual notification object (app, title, body, urgency, actions)

MPRIS Service (import Quickshell.Services.MPRIS)

TypeDescription
MprisServiceMedia player information, playback control
MprisPlayerIndividual player (name, status, title, artist, album, art)

Input Service (import Quickshell.Services.Input)

TypeDescription
InputServiceKeyboard layout, input methods

Hyprland Service (import Quickshell.Services.Hyprland)

TypeDescription
HyprlandEventStreamListen for Hyprland IPC events
HyprlandWorkspaceServiceWorkspace management
HyprlandWindowServiceWindow management
HyprlandMonitorServiceMonitor configuration
⚠️Common Mistake

Importing services incorrectly. Always use import Quickshell.Services.Hardware (plural), not import Quickshell.Service.Hardware. Service names are PascalCase and capitalized.

Not checking service availability. Some services require specific backends (e.g., PipeWire for Audio, Hyprland for workspace management). Always check service.available before using.

Utility Types

TypeModuleDescription
ProcessQuickshellProcess execution and output handling
SettingsQuickshellPersistent key-value settings store
TimerQtQuickTimer with configurable interval and repeat
AnimationQtQuickProperty animation framework

Exercises

Exercise
Write a QML file that lists all available service types and their properties. Use a combination of `Object.keys()` and `typeof` to enumerate them dynamically at runtime.
⭐⭐Exercise
Create a "Service Inspector" panel. For each available service, display its name, whether it's available, and all its property names and current values. Update in real-time.
⭐⭐⭐Exercise
Document any types you discover that are not listed here. Submit a correction to the Quickshell documentation or this book via a pull request.
What You've Learned
  • Quickshell provides ~20 QML types across core and service modules
  • Service types require specific backends (PipeWire, Hyprland, BlueZ)
  • Use import Quickshell.Services.{Category} to access service types
  • Reference this appendix when you need to know available properties

Built with VitePress. Licensed under MIT.