whatisgithub

What is shell?

caelestia-dots/shell — explained in plain English

Analysis updated 2026-06-24

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

In one sentence

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

What do people build with it?

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.

What is it built with?

QMLQtQuickshellCMakeNinjaNix

How does it compare?

caelestia-dots/shellalicevision/meshroommylinuxforwork/dotfiles
Stars9,41112,7284,711
LanguageQMLQMLQML
Setup difficultyhardhardmoderate
Complexity4/54/53/5
Audiencedeveloperdesignerdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get 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.

So what is it?

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?

Frequently asked questions

What is shell?

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.

What language is shell written in?

Mainly QML. The stack also includes QML, Qt, Quickshell.

How hard is shell to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is shell for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.