{"id":50896896,"url":"https://github.com/noctalia-dev/noctalia","last_synced_at":"2026-06-22T10:00:58.779Z","repository":{"id":304173283,"uuid":"1017945204","full_name":"noctalia-dev/noctalia","owner":"noctalia-dev","description":"A sleek and minimal desktop shell thoughtfully crafted for Wayland.","archived":false,"fork":false,"pushed_at":"2026-06-19T12:44:54.000Z","size":90490,"stargazers_count":7897,"open_issues_count":54,"forks_count":558,"subscribers_count":26,"default_branch":"main","last_synced_at":"2026-06-19T14:27:29.740Z","etag":null,"topics":["dotfiles","hyprland","linux","niri","noctalia","quickshell","rice"],"latest_commit_sha":null,"homepage":"https://docs.noctalia.dev","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/noctalia-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"buy_me_a_coffee":"noctalia","ko_fi":"noctaliadev"}},"created_at":"2025-07-11T10:50:50.000Z","updated_at":"2026-06-19T13:36:14.000Z","dependencies_parsed_at":"2025-07-11T15:22:28.976Z","dependency_job_id":"e73a9327-9947-403a-a84f-c61723391d6f","html_url":"https://github.com/noctalia-dev/noctalia","commit_stats":null,"previous_names":["ly-sec/noctalia","noctalia-dev/noctalia","noctalia-dev/noctalia-shell"],"tags_count":129,"template":false,"template_full_name":null,"purl":"pkg:github/noctalia-dev/noctalia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noctalia-dev%2Fnoctalia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noctalia-dev%2Fnoctalia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noctalia-dev%2Fnoctalia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noctalia-dev%2Fnoctalia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/noctalia-dev","download_url":"https://codeload.github.com/noctalia-dev/noctalia/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noctalia-dev%2Fnoctalia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34643624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotfiles","hyprland","linux","niri","noctalia","quickshell","rice"],"created_at":"2026-06-16T01:00:37.934Z","updated_at":"2026-06-22T10:00:58.773Z","avatar_url":"https://github.com/noctalia-dev.png","language":"C++","funding_links":["https://buymeacoffee.com/noctalia","https://ko-fi.com/noctaliadev","https://www.buymeacoffee.com/noctalia"],"categories":["dotfiles","C++"],"sub_categories":[],"readme":"Noctalia\n===\n\nNoctalia is a native Wayland desktop shell for people who want a polished, configurable Linux desktop without stitching\ntogether a separate bar, launcher, notification daemon, lock screen, wallpaper tool, and settings UI.\n\nIt provides the shell layer around your compositor: bars, widgets, dock, launcher, control center, notifications,\nwallpaper, lock screen, session actions, clipboard history, OSDs, tray integration, and desktop widgets. The project is\nbuilt directly on Wayland and OpenGL ES with no Qt or GTK dependency, so the UI, rendering, configuration, and IPC model\nare designed as one cohesive shell instead of a collection of unrelated panels and scripts.\n\n\u003e [!IMPORTANT]\n\u003e Noctalia v5 is in early/alpha development. Expect breaking configuration and behavior changes while the project is still taking shape.\n\n\u003cp\u003e\u003cbr/\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://assets.noctalia.dev/noctalia-logo.svg?v=2\" alt=\"Noctalia Logo\" style=\"width: 192px\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://docs.noctalia.dev/v5/getting-started/installation\"\u003e\n    \u003cimg\n      src=\"https://img.shields.io/badge/Install_Noctalia-FFF59B?style=for-the-badge\u0026labelColor=FFF59B\"\n      alt=\"Install Noctalia\"\n      style=\"height: 50px\"\n    /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp\u003e\u003cbr/\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/noctalia-dev/noctalia-shell/commits\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/last-commit/noctalia-dev/noctalia-shell?style=for-the-badge\u0026labelColor=FFF59B\u0026color=FFF59B\u0026logo=git\u0026logoColor=070722\u0026label=commit\" alt=\"Last commit\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/noctalia-dev/noctalia-shell/stargazers\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/noctalia-dev/noctalia-shell?style=for-the-badge\u0026labelColor=FFF59B\u0026color=FFF59B\u0026logo=github\u0026logoColor=070722\" alt=\"GitHub stars\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://docs.noctalia.dev\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/docs-FFF59B?style=for-the-badge\u0026logo=gitbook\u0026logoColor=070722\u0026labelColor=FFF59B\" alt=\"Documentation\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://discord.noctalia.dev\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/discord-FFF59B?style=for-the-badge\u0026labelColor=FFF59B\u0026logo=discord\u0026logoColor=070722\" alt=\"Discord\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\n## Why Noctalia?\n\nMost Wayland setups leave the desktop shell to a stack of small tools: one bar, another launcher, another notification\ndaemon, a lock screen, a wallpaper daemon, scripts for session actions, and separate config formats for each piece. That\ncan be flexible, but it also makes a complete desktop feel fragile and hard to keep visually consistent.\n\nNoctalia solves that by providing one configurable shell layer that owns the common desktop surfaces and services while\nstill fitting into compositor-driven Wayland workflows. It is meant for users who want the control of a custom desktop\nenvironment with fewer moving parts and a consistent UI.\n\n## What It Includes\n\n- Multi-monitor bars with configurable widgets, taskbar, workspaces, system tray, media, network, battery, brightness,\n  weather, clipboard, and custom script-backed widgets.\n- Dock, launcher, control center, notification toasts/history, wallpaper picker, OSD overlays, lock screen, session\n  panel, and desktop widgets.\n- TOML configuration with hot reload, GUI-managed overrides, theme/palette support, template application, and IPC for\n  runtime control.\n- Direct Wayland integration for layer-shell, session lock, idle behavior, clipboard, foreign toplevels, workspaces,\n  fractional scaling, and compositor-specific workspace backends where needed.\n\n## Wayland Compositor Support\n\nNoctalia supports Wayland compositors that provide the layer-shell protocols it needs for shell surfaces. Workspace\nintegration works through compositor-native backends where needed, or through `ext-workspace-v1` on compositors that\nimplement it.\n\nCurrent compositor integrations include Niri, Hyprland, Sway, Scroll, Mango, Labwc, Triad, dwl, and other compatible\nWayland compositors. Other compositors may run Noctalia but can have reduced workspace, window, output, or\nsession-action integration depending on the protocols and IPC they expose.\n\n## Scope\n\nNoctalia is a desktop shell, not a full desktop environment. It provides the visual and service layer around your\nWayland compositor: bars, panels, launcher, notifications, dock, lock screen, idle behavior, OSDs, theming, wallpapers,\ndesktop widgets, and multi-monitor shell surfaces.\n\nWindow management, tiling, file management, removable-drive mounting, and screen mirroring/casting belong to the\ncompositor, dedicated desktop applications, or system services. Display/login greeter support lives in the separate\n[Noctalia Greeter](https://github.com/noctalia-dev/noctalia-greeter) project. Noctalia may integrate with those pieces\nwhen useful, but it does not replace them.\n\nA v5 plugin system is planned and under active development. Features that are useful to some users but not essential to\nthe core shell are intended to live there once that system is available: extra bar widgets, launcher providers, desktop\nwidgets, compositor-specific extras, hardware-specific controls, and third-party service integrations.\n\n## Dependencies\n\n### Arch\n\n```sh\nsudo pacman -S meson gcc just \\\n  wayland wayland-protocols \\\n  libglvnd freetype2 fontconfig \\\n  cairo pango harfbuzz \\\n  libxkbcommon glib2 \\\n  sdbus-cpp libpipewire polkit \\\n  pam curl libwebp librsvg \\\n  libqalculate libxml2 \\\n  jemalloc\n```\n\n### Fedora\n```sh\nsudo dnf install meson gcc-c++ just \\\n  wayland-devel wayland-protocols-devel \\\n  libEGL-devel mesa-libGLES-devel \\\n  freetype-devel fontconfig-devel \\\n  cairo-devel pango-devel harfbuzz-devel \\\n  libxkbcommon-devel glib2-devel \\\n  sdbus-cpp-devel pipewire-devel \\\n  pam-devel polkit-devel libcurl-devel libwebp-devel librsvg2-devel \\\n  libqalculate-devel libxml2-devel \\\n  jemalloc-devel\n```\n\n### Debian / Ubuntu\n```sh\nsudo apt install meson g++ just \\\n  libwayland-dev wayland-protocols \\\n  libegl-dev libgles-dev \\\n  libfreetype-dev libfontconfig-dev \\\n  libcairo2-dev libpango1.0-dev libharfbuzz-dev \\\n  libxkbcommon-dev libglib2.0-dev \\\n  libsdbus-c++-dev libpipewire-0.3-dev \\\n  libpam0g-dev libpolkit-agent-1-dev libpolkit-gobject-1-dev \\\n  libcurl4-openssl-dev libwebp-dev librsvg2-dev \\\n  libqalculate-dev libxml2-dev \\\n  libjemalloc-dev\n```\n\n### AerynOS\n```sh\nsudo moss it meson build-essential \\\n  wayland-devel wayland-protocols-devel \\\n  mesa-libegl-devel mesa-libgl-devel \\\n  freetype-devel fontconfig-devel \\\n  cairo-devel pango-devel harfbuzz-devel \\\n  libxkbcommon-devel glib2-devel \\\n  sdbus-cpp-devel pipewire-devel \\\n  linux-pam-devel polkit-devel \\\n  curl-devel libwebp-devel librsvg-devel \\\n  libqalculate-devel libxml2-devel \\\n  extra-cmake-modules jemalloc-devel\n```\n\n### VoidLinux\n```sh\nsudo xbps-install meson ninja pkg-config git \\\n  wayland-devel wayland-protocols libepoxy-devel \\\n  MesaLib-devel libglvnd-devel cairo-devel \\\n  pango-devel fontconfig-devel freetype-devel \\\n  harfbuzz-devel libxkbcommon-devel pipewire-devel \\\n  libcurl-devel pam-devel libwebp-devel \\\n  basu-devel sdbus-c++-devel \\\n  polkit-devel librsvg-devel libqalculate-devel libxml2-devel jemalloc-devel\n```\n\nVendored dependencies, with no system package needed: `Wuffs`, `tomlplusplus`,\n`nlohmann/json`, `Luau`, `dr_wav`, `fzy`, `stb_image_resize2`, and Material Color Utilities.\n\nSystem packages required beyond the Wayland/GL stack: `libwebp` handles WebP decoding and thumbnail encoding. Wuffs\nhandles the other supported raster image formats. `libqalculate` powers the launcher calculator (arithmetic, unit and\ncurrency conversion).\n\nPolkit agent support requires development files that provide the `polkit-agent-1` and `polkit-gobject-1` pkg-config\nmodules. Some distros ship these in the runtime `polkit` package, while split-package distros use names such as\n`polkit-devel`, `polkit-dev`, or `libpolkit-agent-1-dev` / `libpolkit-gobject-1-dev`.\n\n`jemalloc` is recommended but optional. It reduces memory fragmentation in long-running sessions, and on glibc systems\nit is used automatically when detected. Use Meson's `-Djemalloc=enabled` or `-Djemalloc=disabled` option to require or\ndisable it explicitly.\n\nSanitizer runtime packages are only needed for ASan/UBSan builds configured with `just configure asan`.\n\nThe sources are built as C++23, which requires GCC 13+ or Clang 16+. Current rolling and recent stable distros (Arch,\nFedora 38+, Debian 13, Ubuntu 24.04+) ship a new enough compiler by default. On Debian 12 \"bookworm\" install `g++-13`\nand point Meson at it (e.g. `CXX=g++-13 just configure`).\n\n## Building and installing\n\nRequires [just](https://github.com/casey/just) and [meson](https://mesonbuild.com/).\n\n#### Release build\n```sh\n# Optimized release build in build-release/\njust configure release\njust build release\n\n# Install the selected build mode. This does not build or reconfigure.\nsudo just install release\n```\n\nPass a prefix to `configure` to install somewhere other than `/usr/local`:\n\n```sh\njust configure release \"$HOME/.local\"\njust build release\njust install release\n```\n\nTo remove files installed from a build directory, run `just uninstall release`. The `install` and `uninstall` recipes\nrequire an explicit build mode so debug builds are not installed by accident.\n\n#### Debug build\n```sh\n# Debug build in build-debug/ for local development and troubleshooting.\njust configure\njust build\n\n# Test your local debug build with\njust run\n```\n\nUnit tests are built automatically for debug builds and skipped for release builds. Build and run them with\n`just test` (use `just test release` to force them on for a release build). Override the default with the meson\n`-Dtests=enabled|disabled|auto` option.\n\nMeson installs the binary and shipped assets using the normal prefix layout:\n\n```text\n/usr/local/bin/noctalia\n/usr/local/share/noctalia/assets/...\n```\n\nNoctalia needs the shipped `assets/` tree at runtime. Copying only the `noctalia` binary is not enough.\n\nPortable bundle layouts are also supported:\n\n```text\nbundle/\n  noctalia\n  assets/\n```\n\n```text\nbundle/\n  bin/noctalia\n  share/noctalia/assets/\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md#runtime-assets) for the full runtime asset lookup order.\n\n## Configuration\n\nA ready-to-use starting config with all defaults is at [example.toml](example.toml). The full configuration reference\nlives in the [documentation site](https://docs.noctalia.dev/v5/).\n\n## Contributing\n\nDeveloper notes, architecture overview, code style, project layout, and debugging commands live in\n[CONTRIBUTING.md](CONTRIBUTING.md).\n\nBug reports, fixes, documentation updates, themes, and configuration examples are welcome. For general help and design\ndiscussion, join the community on [Discord](https://discord.noctalia.dev).\n\n## Credits\n\nThank you to the [contributors](https://github.com/noctalia-dev/noctalia-shell/graphs/contributors) and community\nmembers who test Noctalia, report issues, share configurations, and help shape the project.\n\n## Donations\n\nDonations are appreciated but completely optional.\n\n\u003cp\u003e\n  \u003ca href=\"https://www.buymeacoffee.com/noctalia\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Buy_Me_a_Coffee-FFF59B?style=for-the-badge\u0026logo=buymeacoffee\u0026logoColor=070722\u0026labelColor=FFF59B\" alt=\"Buy Me a Coffee\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://ko-fi.com/noctaliadev\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Ko--fi-FFF59B?style=for-the-badge\u0026logo=kofi\u0026logoColor=070722\u0026labelColor=FFF59B\" alt=\"Ko-fi\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## License\n\nMIT License. See [LICENSE](LICENSE) for details.\n\n## Star History\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/noctalia-dev/noctalia-shell/stargazers\"\u003e\n    \u003cimg src=\"https://api.noctalia.dev/stars\" alt=\"Star History\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoctalia-dev%2Fnoctalia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoctalia-dev%2Fnoctalia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoctalia-dev%2Fnoctalia/lists"}