From c9929803b38e84092f8bebf215a374e808ebea58 Mon Sep 17 00:00:00 2001 From: rewine Date: Sun, 14 Sep 2025 19:04:10 +0800 Subject: [PATCH] nixos/linyaps: init --- nixos/modules/module-list.nix | 1 + nixos/modules/services/desktops/linyaps.nix | 60 +++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 nixos/modules/services/desktops/linyaps.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 3ca08fd4cb47..a5f04fd3b64d 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -569,6 +569,7 @@ ./services/desktops/gnome/sushi.nix ./services/desktops/gnome/tinysparql.nix ./services/desktops/gvfs.nix + ./services/desktops/linyaps.nix ./services/desktops/malcontent.nix ./services/desktops/neard.nix ./services/desktops/pipewire/pipewire.nix diff --git a/nixos/modules/services/desktops/linyaps.nix b/nixos/modules/services/desktops/linyaps.nix new file mode 100644 index 000000000000..993a29167e89 --- /dev/null +++ b/nixos/modules/services/desktops/linyaps.nix @@ -0,0 +1,60 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + cfg = config.services.linyaps; +in + +{ + meta = { + maintainers = pkgs.linyaps.meta.maintainers; + }; + + ###### interface + options = { + services.linyaps = { + enable = lib.mkEnableOption "linyaps, a cross-distribution package manager with sandboxed apps and shared runtime"; + + package = lib.mkPackageOption pkgs "linyaps" { }; + + boxPackage = lib.mkPackageOption pkgs "linyaps-box" { }; + }; + }; + + ###### implementation + config = lib.mkIf cfg.enable { + + environment = { + profiles = [ "/var/lib/linglong/entries" ]; + systemPackages = [ + cfg.package + cfg.boxPackage + ]; + }; + + security.polkit.enable = true; + + fonts.fontDir.enable = true; + + services.dbus.packages = [ cfg.package ]; + + systemd = { + packages = [ cfg.package ]; + tmpfiles.packages = [ cfg.package ]; + }; + + # Create system user and group for linyaps/linglong + users = { + groups.deepin-linglong = { }; + users.deepin-linglong = { + group = "deepin-linglong"; + isSystemUser = true; + description = "Linyaps/Linglong system helper"; + }; + }; + }; +}