Customisable, minimalist screen locker for Wayland
1{
2 description = "Customisable, minimalist screen locker for Wayland";
3
4 inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
5
6 outputs =
7 {
8 self,
9 nixpkgs,
10 }:
11 let
12 inherit (nixpkgs) lib;
13 systems = [
14 "aarch64-linux"
15 "x86_64-linux"
16 ];
17 eachSystem = lib.genAttrs systems;
18
19 shortRev = self.shortRev or self.dirtyShortRev or "unknown";
20 overlays = import ./nix/overlays.nix { inherit shortRev; };
21
22 pkgsFor = eachSystem (
23 system:
24 import nixpkgs {
25 inherit system;
26 overlays = [ overlays.nlock ];
27 }
28 );
29
30 nixosModule = import ./nix/nixos-module.nix self;
31 hmModule = import ./nix/hm-module.nix self;
32 in
33 {
34 inherit overlays;
35
36 packages = eachSystem (system: {
37 default = self.packages.${system}.nlock;
38 inherit (pkgsFor.${system}) nlock;
39 });
40
41 nixosModules = {
42 default = self.nixosModules.nlock;
43 nlock = nixosModule;
44 };
45
46 homeManagerModules = {
47 default = self.homeManagerModules.nlock;
48 nlock = hmModule;
49 };
50
51 devShells = eachSystem (system: {
52 default =
53 with pkgsFor.${system};
54 mkShell {
55 buildInputs = [
56 cargo
57 rustc
58 rustfmt
59 rust-analyzer
60 pre-commit
61 rustPackages.clippy
62
63 cairo
64 clang
65 gdk-pixbuf
66 glib
67 libxkbcommon
68 pam
69 pango
70 pkg-config
71 ];
72
73 RUST_SRC_PATH = rustPlatform.rustLibSrc;
74 LIBCLANG_PATH = "${clang.cc.lib}/lib";
75 };
76 });
77 };
78}