From 83d1706d1cb152af19eec9ff435f5b08bf54eb11 Mon Sep 17 00:00:00 2001 From: Samiser Date: Sat, 22 Aug 2026 15:51:59 +0100 Subject: [PATCH] nixos/umbriel: init module --- .../manual/release-notes/rl-2611.section.md | 2 + nixos/modules/module-list.nix | 1 + nixos/modules/programs/wayland/umbriel.nix | 48 +++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 nixos/modules/programs/wayland/umbriel.nix diff --git a/nixos/doc/manual/release-notes/rl-2611.section.md b/nixos/doc/manual/release-notes/rl-2611.section.md index 5ea5ba0f18d3..f795e53a194e 100644 --- a/nixos/doc/manual/release-notes/rl-2611.section.md +++ b/nixos/doc/manual/release-notes/rl-2611.section.md @@ -100,6 +100,8 @@ - [kvrocks_exporter](https://github.com/RocksLabs/kvrocks_exporter), a Prometheus exporter for Kvrocks metrics. Available as [services.prometheus.exporters.kvrocks](#opt-services.prometheus.exporters.kvrocks.enable). +- [Umbriel](https://docs.noctalia.dev/umbriel/), a Wayland compositor built on wlroots and SceneFX. Available as [programs.umbriel](#opt-programs.umbriel.enable). + ## Backward Incompatibilities {#sec-release-26.11-incompatibilities} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 2f989934e0e9..1beb072a3019 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -371,6 +371,7 @@ ./programs/wayland/pinnacle.nix ./programs/wayland/river.nix ./programs/wayland/sway.nix + ./programs/wayland/umbriel.nix ./programs/wayland/uwsm.nix ./programs/wayland/waybar.nix ./programs/wayland/wayfire.nix diff --git a/nixos/modules/programs/wayland/umbriel.nix b/nixos/modules/programs/wayland/umbriel.nix new file mode 100644 index 000000000000..3d1662f64894 --- /dev/null +++ b/nixos/modules/programs/wayland/umbriel.nix @@ -0,0 +1,48 @@ +{ + config, + lib, + pkgs, + ... +}: +let + cfg = config.programs.umbriel; +in +{ + options.programs.umbriel = { + enable = lib.mkEnableOption "Umbriel, a Wayland compositor built on wlroots and SceneFX"; + package = lib.mkPackageOption pkgs "umbriel" { }; + portalPackage = lib.mkPackageOption pkgs "xdg-desktop-portal-umbriel" { }; + }; + + config = lib.mkIf cfg.enable ( + lib.mkMerge [ + { + environment.systemPackages = [ cfg.package ]; + services.displayManager.sessionPackages = [ cfg.package ]; + systemd.packages = [ cfg.package ]; + + systemd.user.services.umbriel = { + restartIfChanged = false; + enableDefaultPath = false; + }; + + xdg.portal = { + enable = lib.mkDefault true; + extraPortals = [ cfg.portalPackage ]; + configPackages = [ cfg.portalPackage ]; + }; + } + + (import ./wayland-session.nix { + inherit lib pkgs; + enableXWayland = false; + enableWlrPortal = false; + }) + ] + ); + + meta.maintainers = with lib.maintainers; [ + samiser + pyrox0 + ]; +}