whatisgithub

What is nebula-shell?

n0ctaneteam/nebula-shell — explained in plain English

Analysis updated 2026-05-18

6ValaAudience · developerComplexity · 3/5Setup · moderate

In one sentence

A lightweight Vala and GTK4 toolkit for building custom desktop bars, panels, and widgets on Wayland desktops like Hyprland.

Mindmap

mindmap
  root((NebulaShell))
    What it does
      Renders desktop widgets
      Wayland layer shell integration
      YAML driven config
    Tech stack
      Vala
      GTK4
      Lua
      YAML
    Use cases
      Custom Hyprland status bar
      Toggleable control panel
      Themed popovers and dialogs
    Audience
      Linux desktop tinkerers
      Hyprland users
    Tooling
      CLI inspect and schema tools
      Editor YAML autocomplete

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

Build a custom top bar with a clock and app launcher for a Hyprland desktop.

USE CASE 2

Create a toggleable control panel with buttons wired up through Lua scripts.

USE CASE 3

Style widgets with standard GTK4 CSS, including hover states and runtime class toggling.

USE CASE 4

Generate a JSON Schema so your editor autocompletes the YAML configuration file.

What is it built with?

ValaGTK4LuaYAMLMeson

How does it compare?

n0ctaneteam/nebula-shelloleavr/valabyoval/purclean
Stars6116
LanguageValaValaVala
Last pushed2017-11-09
MaintenanceDormant
Setup difficultymoderatemoderatemoderate
Complexity3/53/52/5
Audiencedeveloperdeveloperops devops

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

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires building from source with Meson and Vala, plus GTK4, GTK4 layer shell, and a Lua runtime.

So what is it?

NebulaShell is a lightweight toolkit for building the desktop widgets you see on a Linux desktop, things like a top bar with a clock, a control panel, or popover menus, but for Wayland based desktop setups such as Hyprland and other similar window managers. The core of the program is written in the Vala language and rendered with GTK4, and it is designed to use the Wayland layer shell protocol so widgets can sit on top of or alongside your other windows properly. What you actually customize as a user is a YAML configuration file, where you describe bars, panels, buttons, labels, and other widgets as a tree of nested elements, each with properties like which screen edge they anchor to, their size, margins, and padding. Interactive behavior, like what happens when you click a button or toggle a panel, is written in Lua scripts that can look up a widget by its ID and change its visibility or label. Appearance is controlled through standard GTK4 CSS, so you can style bars, buttons, and dialogs with familiar CSS properties such as background color, padding, and hover states, and even toggle CSS classes at runtime from Lua. NebulaShell also ships a command line tool for everyday use: running it with a config file, quitting a running instance, toggling a specific widget, inspecting the current widget tree for debugging, and generating a JSON Schema file so text editors like VS Code or Neovim can offer autocomplete while you edit your YAML configuration. To build it from source you need GTK4, the GTK4 layer shell library, GLib and its related libraries, and a Lua interpreter, along with the Meson build system and the Vala compiler. Installation instructions are given for both Arch Linux and Ubuntu or Debian based systems. The project describes itself as fast, lightweight, fully customizable, and memory safe thanks to modern Vala and GLib practices. No license is stated in the README.

Copy-paste prompts

Prompt 1
Help me write a NebulaShell YAML config for a top bar with a clock and an app launcher button.
Prompt 2
Show me how to write a Lua event handler that toggles a panel's visibility in NebulaShell.
Prompt 3
Explain how NebulaShell's anchor and margin properties control widget placement on screen.
Prompt 4
Walk me through building NebulaShell from source on Arch Linux with Meson and Vala.

Frequently asked questions

What is nebula-shell?

A lightweight Vala and GTK4 toolkit for building custom desktop bars, panels, and widgets on Wayland desktops like Hyprland.

What language is nebula-shell written in?

Mainly Vala. The stack also includes Vala, GTK4, Lua.

How hard is nebula-shell to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is nebula-shell for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.