Skip to content

About

A keyboard-first Quickshell desktop shell for Hyprland

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Desktop Shell

A keyboard-first Hyprland desktop shell built with Quickshell and packaged as a Nix flake.

Desktop Shell treats the bar, launcher, control center, lock screen, and window navigation as one coherent interface. It follows live compositor and system services instead of maintaining a second desktop state database.

Desktop Shell is actively developed and used daily on NixOS with Hyprland. The public configuration and CLI may evolve as the standalone packaging is exercised across more systems.

desktop-shell-demo-github.mp4

Features

  • Output-aware bar with workspaces, tray, calendar, battery, audio, metrics, recording status, and configurable network controls.
  • Launcher with separate application-launch and existing-window focus modes, usage-aware ordering, and optional Firefox-compatible tab search.
  • Spatial Alt-Tab overview with workspace previews, directional navigation, drag-to-workspace, and scrolling-layout geometry.
  • Control center with notification history, persistent NetworkManager Wi-Fi state, BlueZ device management, safe compositor-native display layouts, brightness and power controls, and a per-stream PipeWire mixer.
  • Clipboard history, wallpaper picker, lock screen, media-change notifications, focus mode, and a generated keybinding reference.
  • One desktop-shell command for systemd lifecycle, diagnostics, UI actions, and compositor keybindings.
  • Typed Home Manager configuration and a NixOS module for PAM lock and an optional greetd login greeter.

Requirements

Desktop Shell currently supports Hyprland on NixOS or another Nix-managed Linux system. Its runtime integration expects:

  • a UWSM-managed Wayland session;
  • systemd user services;
  • NetworkManager for the Wi-Fi page;
  • PipeWire for audio controls;
  • BlueZ for Bluetooth controls;
  • hyprpaper for wallpaper application.

Individual surfaces degrade when their service or hardware is absent. For example, brightness uses a kernel backlight when available and can fall back to DDC/CI when the monitor and system expose it.

Installation

Use the flake's Home Manager module for the user service and configuration. On NixOS, also import its NixOS module for the lock-screen PAM service and the optional greetd greeter.

See Installation for a complete flake example and Configuration for the option reference. Design principles and their code owners are documented in Design notes.

After activation:

$ desktop-shell status
$ desktop-shell doctor

Desktop Shell deliberately does not install a keybinding policy. Connect its commands to the bindings already owned by your Hyprland configuration; a working set is documented in Keybindings.

Documentation

Development

$ nix develop
$ nix flake check
$ nix build

See Contributing before changing backend contracts, runtime dependencies, or compositor integration.

License

GPL-3.0-or-later

About

A keyboard-first Quickshell desktop shell for Hyprland

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages