mirror of
https://github.com/noctalia-dev/noctalia-shell.git
synced 2026-05-11 17:08:27 +08:00
23a2a074cf
This avoids a second instantiation of Nixpkgs, when consuming the
overlay, instead of using the package output directly.
Smoke test:
```console
nix repl
nix-repl> :lf .
nix-repl> pkgs = imports inputs.nixpkgs { overlays = [outputs.overlays.default]; }
nix-repl> pkgs.noctalia-shell
«derivation /nix/store/30ilvacnyyqyrnqh26vz6x1s095iwysb-noctalia-shell-2026-03-22_df0a16d.drv»
nix-repl> pkgs.quickshell
«derivation /nix/store/zyrm8fb4r4bq6mqrv4ssjc08haf5j2b4-quickshell-2026-03-21_c9beee5.drv»
```
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
89 lines
2.1 KiB
Nix
89 lines
2.1 KiB
Nix
{
|
|
description = "Noctalia shell - a Wayland desktop shell built with Quickshell";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
noctalia-qs = {
|
|
url = "github:noctalia-dev/noctalia-qs";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
self,
|
|
nixpkgs,
|
|
noctalia-qs,
|
|
...
|
|
}:
|
|
let
|
|
eachSystem = nixpkgs.lib.genAttrs nixpkgs.lib.platforms.linux;
|
|
pkgsFor = eachSystem (
|
|
system:
|
|
nixpkgs.legacyPackages.${system}.appendOverlays [
|
|
self.overlays.default
|
|
]
|
|
);
|
|
|
|
mkDate =
|
|
longDate:
|
|
nixpkgs.lib.concatStringsSep "-" [
|
|
(builtins.substring 0 4 longDate)
|
|
(builtins.substring 4 2 longDate)
|
|
(builtins.substring 6 2 longDate)
|
|
];
|
|
|
|
version = mkDate (self.lastModifiedDate or "19700101") + "_" + (self.shortRev or "dirty");
|
|
in
|
|
{
|
|
formatter = eachSystem (system: pkgsFor.${system}.nixfmt);
|
|
|
|
packages = eachSystem (system: {
|
|
default = pkgsFor.${system}.noctalia-shell;
|
|
});
|
|
|
|
overlays = {
|
|
default = nixpkgs.lib.composeManyExtensions [
|
|
noctalia-qs.overlays.default
|
|
(final: prev: {
|
|
noctalia-shell = final.callPackage ./nix/package.nix {
|
|
inherit version;
|
|
};
|
|
})
|
|
];
|
|
};
|
|
|
|
devShells = eachSystem (system: {
|
|
default = pkgsFor.${system}.callPackage ./nix/shell.nix {
|
|
quickshell = noctalia-qs.packages.${system}.default;
|
|
};
|
|
});
|
|
|
|
homeModules.default =
|
|
{
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
{
|
|
imports = [ ./nix/home-module.nix ];
|
|
programs.noctalia-shell.package =
|
|
lib.mkDefault
|
|
self.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
|
};
|
|
|
|
nixosModules.default =
|
|
{
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
{
|
|
imports = [ ./nix/nixos-module.nix ];
|
|
services.noctalia-shell.package =
|
|
lib.mkDefault
|
|
self.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
|
};
|
|
};
|
|
}
|