nixos-configuration/nix-os/displayManagers/cosmic-greeter.nix

40 lines
1.4 KiB
Nix

{config, lib, pkgs, ... }:
let
nixos-cosmic = builtins.fetchGit {
url = "https://github.com/lilyinstarlight/nixos-cosmic.git";
# rev = "b61e7a0da2fa1d5f05d41e3db6386b2ac5f5079b";
};
unstablePkgs = import (builtins.fetchTarball "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz");
cosmicPkgsMainDir = builtins.readDir "${nixos-cosmic}/pkgs";
cosmicPkgsDirs = builtins.filter (v: cosmicPkgsMainDir."${v}" == "directory") (builtins.attrNames cosmicPkgsMainDir);
cosmicPkgsOverlay = final: prev: builtins.listToAttrs (
builtins.map (v: {name = v; value = final.callPackage "${nixos-cosmic}/pkgs/${v}/package.nix" {};}) cosmicPkgsDirs
);
cosmicPkgs = unstablePkgs {
inherit (config.nixpkgs) config localSystem crossSystem;
overlays = [ cosmicPkgsOverlay ];
};
finalOverlay = finial: prev: lib.filterAttrs (n: v: builtins.elem n cosmicPkgsDirs) cosmicPkgs;
in
{
imports = [
"${nixos-cosmic}/nixos/cosmic-greeter/module.nix"
];
config = {
services.xserver.desktopManager.cosmic.enable = true;
services.xserver.displayManager.cosmic-greeter.enable = true;
nixpkgs.overlays = [ finalOverlay ];
nix.settings = {
substituters = [ "https://cosmic.cachix.org/" ];
trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ];
};
};
options = {
cosmic-greeter = lib.mkOption {default = pkgs.cosmic-greeter;};
};
}