---
layout: "@layouts/ConfigLayout.astro"
title: "About Quickshell"
---
import { Icon } from "astro-icon/components";

# About Quickshell
Quickshell is a framework for building various desktop components, such as *status bars,
docks, panels, and overlays*, collectively known as the desktop shell.

With Quickshell, you can create a desktop shell that is entirely your own.
It can look and feel however you want, to the extent of your ability to
use the [QML](https://doc.qt.io/qt-6/qmlreference.html) language.

We provide a set of [easy to use libraries](/docs/types) for interacting with your
operating system, and *instant config reloading* so you can see your changes in real time,
as shown below.

<video width="100%" preload="metadata" controls>
  <source src="/assets/simple-shell-livereload.mp4" type="video/mp4"/>
</video>

> [!NOTE]
> Quickshell is still in a somewhat early stage of development.
> There will be breaking changes before 1.0, however a migration guide will be provided.

# Feature Overview
Quickshell, QtQuick and the QML language provide the following notable features:
- Full customization. You are not limited to a predetermined set of modules.
- Full hot reloading. Your changes will be visible instantly on save.
- A fully reactive language, which means as properties change, all usages
  will be re-evaluated. Manual signal usage can be largely avoided.
- Full support for animations, which can be entirely custom.
- Support for GLSL shaders. (further ease of use integrations are in progress)
- Support for third party QML modules.

Quickshell provides operating system integrations for the following features:
- Panel windows (docks, status bars, desktop backgrounds, overlays)
  - Wayland compositors require the `zwlr_layer_shell_v1` protocol.
  - Many X11 window managers implement struts incorrectly,
    causing anchors and exclusive zone not to work as intended.
- Lock screens
  - Wayland compositors require the `ext_session_lock_v1` protocol.
  - Currently unsupported on X11.
- Popup windows
  - Unsupported on lockscreens.
  - Clicking outside a popup to dismiss only works under [Hyprland](https://hyprland.org).
- Floating / Normal windows
- Display manager / Login screen (via Greetd)
- Management of other application windows (taskbar)
  - Wayland compositors require the `zwlr_foreign_toplevel_management` protocol.
  - Currently unsupported on X11.
- System Tray (StatusNotifierItem only, no XEmbed)
- Notification Daemon / Server
- Audio Controls (via PipeWire)
- Media Controls (MPRIS compatible players)
- Battery / power status (via upower)

The following features are planned, but are not yet implemented:
- Bluetooth controls
- Ability to take a screenshot without using an external tool
- Embedded previews of other windows
- Hot reloading of GLSL shaders
- Bundling an optimized version of a configuration as an executable
- Larger set of builtin controls
