explaingit

caelestia-dots/shell

9,411QMLAudience · developerComplexity · 4/5Setup · hard

TLDR

caelestia-shell is a custom desktop shell for Linux users running the Hyprland tiling window manager, replacing the status bar and widgets with a styled implementation built on the Qt-based Quickshell framework.

Mindmap

mindmap
  root((caelestia-shell))
    What it does
      Desktop shell
      Status bar
      Notifications
      App launcher
    Tech Stack
      QML
      Qt Quickshell
      CMake Ninja
    Platforms
      Arch Linux AUR
      NixOS flake
      Manual build
    Features
      Wallpaper switching
      Media controls
      Screen lock
      Color picker
    Config
      JSON config file
      Hyprland keybinds
      CLI control tool
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Replace the Waybar status bar on a Hyprland desktop with a visually styled shell featuring a system tray, notifications, and media controls.

USE CASE 2

Install a complete desktop widget setup on Arch Linux via the AUR or on NixOS via a Nix flake.

USE CASE 3

Control the shell from terminal scripts using caelestia-cli to toggle panels, switch wallpapers, or lock the screen.

USE CASE 4

Customize a tiling window manager setup with a dashboard panel that reads a profile picture and wallpaper folder automatically.

Tech stack

QMLQtQuickshellCMakeNinjaNix

Getting it running

Difficulty · hard Time to first run · 1day+

Requires Hyprland and many system dependencies including audio libraries, network management tools, temperature sensors, a music visualizer, and specific fonts.

In plain English

caelestia-shell is a custom desktop shell for Linux users running Hyprland, a tiling window manager. A desktop shell is the visual layer that sits on top of your display and provides things like a status bar, notification popups, app launchers, a clock, a system tray, and other widgets you see around the edges of your screen. Most Linux setups use a tool called Waybar for this, but caelestia-shell replaces that entirely with its own implementation built on Quickshell, a Qt-based framework for building desktop widgets. The shell is written in QML, the language used by Qt applications for describing visual interfaces. It is part of a larger collection of configuration files (called "dotfiles" in Linux customization circles) for the caelestia aesthetic setup. If you only want the shell component rather than the full configuration set, this repository is the right starting point. Installation options include an AUR package for Arch Linux users, a Nix flake for NixOS and home-manager setups, and a manual build using CMake and Ninja. The manual route has a long list of dependencies covering things like a brightness controller, audio libraries, network management, temperature sensors, a music visualizer, a calculator library, and specific fonts. The shell is started by running a command from the terminal, and if the full caelestia dotfiles are installed, it launches automatically on login. Once running, keybinds are managed through Hyprland's global shortcuts system. A command-line tool called caelestia-cli lets you control the shell from scripts or key combinations, with commands for toggling drawers, controlling media playback, locking the screen, switching wallpapers, and opening a color picker. Wallpapers are read from a folder in your home directory, and a profile picture for the dashboard panel is read from a file called ~/.face. All configuration options live in a single JSON file.

Copy-paste prompts

Prompt 1
How do I install caelestia-shell on Arch Linux using the AUR and configure Hyprland to start it on login?
Prompt 2
Write a Hyprland keybind entry that uses caelestia-cli to toggle the main drawer panel open and closed.
Prompt 3
What system dependencies do I need to build caelestia-shell manually from source using CMake and Ninja?
Prompt 4
How do I edit the caelestia-shell JSON config file to point to my wallpaper folder and set my profile picture?
Prompt 5
How do I add caelestia-shell to a NixOS home-manager configuration using the provided Nix flake?
Open on GitHub → Explain another repo

← caelestia-dots on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.