What is Quickshell?

Updated

Quickshell is a toolkit for building desktop components — status bars, widgets, lockscreens, and similar elements — using QtQuick. It is configured in QML and runs alongside a Wayland compositor or window manager, so it fits into an existing setup rather than replacing it. If you want a desktop shell you can shape yourself, down to individual components, Quickshell is aimed at that use case.

What it does

The project describes itself as "building blocks for your desktop." Instead of shipping one fixed shell, it gives you the pieces to assemble your own:

  • Status bars — top or bottom panels with the modules you choose
  • Widgets — small desktop components such as clocks, indicators, or custom displays
  • Lockscreens — session lock surfaces built with the same toolkit
  • Other desktop components — anything expressible as a QtQuick surface

Because it works alongside a Wayland compositor or window manager, you can adopt it incrementally. A single widget is a valid starting point; a full desktop environment is the other end of the range.

How configuration works

Quickshell is configured in QML, a declarative language designed for flexible user interfaces. The project highlights two practical consequences:

Live reload. Changes are loaded as soon as they are saved, so you can iterate without restarting anything. This matters most when tuning layout or colors, where the feedback loop is otherwise the slow part.

LSP support. Language server tooling works with QML here, which means completion and diagnostics while you write.

A minimal example from the project's own documentation shows the shape of it — a floating window whose color flips on a timer:

FloatingWindow {
  Timer {
    id: timer
    property bool invert: false
    running: true; repeat: true
    interval: 500 // ms
    onTriggered: timer.invert = !timer.invert
  }
  color: timer.invert ? "purple" : "green"
}

The pattern generalizes: declare an object, give it properties, and bind other values to those properties. The window color is not set imperatively — it is bound to timer.invert, so it updates whenever that value changes.

Integrations

Quickshell ships with a large set of integrations and adds more over time. The project does not enumerate them on its landing page, so check the documentation for the current list before assuming a specific service or protocol is covered.

Who it is for

Quickshell suits you if:

  • You already run a Wayland compositor or window manager and want to add or replace desktop components
  • You are comfortable writing QML, or willing to learn it
  • You want real-time feedback while editing your shell

It is a poorer fit if you want a prebuilt, ready-to-run desktop environment with no configuration, or if you are not on Wayland.

Getting started

The project points to three entry points:

Resource Use it for
Install Getting Quickshell onto your system
Documentation Configuration reference and integration details
Source code Reading implementations and example configurations

The landing page also links several community configurations by name — soramane, end_4, outfoxxed, pfaj and bdebiase, flicko, and vaxry — with install or source links where available. Reading an existing configuration is often faster than starting from an empty file, since it shows how real layouts are structured.

The current release noted on the site is Quickshell 0.3.1 (dated 2026-08-20).