Files
moonix/flake.nix
T
nevaforget 06a0e68bea Emit a complete XML document in fonts.fontconfig.localConf
localConf is written to /etc/fonts/local.conf verbatim. Without the XML
declaration and the fontconfig root element, fontconfig rejects the file
with 'junk after document element' and the generic-family defaults never
take effect.
2026-08-07 14:47:36 +02:00

93 lines
2.5 KiB
Nix

# ABOUTME: Flake for running the Moonarch desktop on NixOS.
# ABOUTME: Pulls the Moonarch project repos as sources and builds them with Nix.
{
description = "Moonarch on NixOS — packages and modules";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
# Project sources. These repos are not flakes themselves, they are
# consumed as plain source trees pinned to a release tag.
moonarch = {
url = "git+https://gitea.moonarch.de/nevaforget/moonarch.git";
flake = false;
};
moonlock = {
url = "path:/home/kresdo/moonlock-local";
flake = false;
};
# Note the repo name: the project is moongreet, the repo is greetd-moongreet.
moongreet = {
url = "path:/home/kresdo/moongreet-local";
flake = false;
};
moonset = {
url = "path:/home/kresdo/moonset-local";
flake = false;
};
sweet-cursors = {
url = "git+https://gitea.moonarch.de/nevaforget/Sweet-cursors.git";
flake = false;
};
};
outputs = { self, nixpkgs, ... }@inputs:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
moonarchPackages = {
moonlock = pkgs.callPackage ./pkgs/moonlock.nix {
src = inputs.moonlock;
version = "0.6.21";
};
moongreet = pkgs.callPackage ./pkgs/moongreet.nix {
src = inputs.moongreet;
version = "0.10.2";
};
moonset = pkgs.callPackage ./pkgs/moonset.nix {
src = inputs.moonset;
version = "0.9.2";
};
sweet-cursors = pkgs.callPackage ./pkgs/sweet-cursors.nix {
src = inputs.sweet-cursors;
version = "0-unstable";
};
};
in
{
packages.${system} = moonarchPackages;
# Makes the packages and the moonarch source tree available to every
# module without threading arguments through by hand.
nixosModules.moonarch = { ... }: {
imports = [
./modules/desktop.nix
./modules/greetd.nix
./modules/services.nix
];
_module.args = {
moonarchSrc = inputs.moonarch;
moonarchPkgs = moonarchPackages;
};
};
nixosConfigurations.moonarch-vm = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
./hosts/moonarch-vm
self.nixosModules.moonarch
];
};
devShells.${system}.default = pkgs.mkShell {
packages = with pkgs; [ nixpkgs-fmt ];
};
};
}