/ flake.nix
flake.nix
 1  {
 2    description = "Dim (or brighten) your screen";
 3  
 4    inputs = {
 5      nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
 6      rust-overlay.url = "github:oxalica/rust-overlay";
 7      flake-utils.url = "github:numtide/flake-utils";
 8    };
 9  
10    outputs = { self, nixpkgs, rust-overlay, flake-utils, ... }:
11      flake-utils.lib.eachDefaultSystem (system:
12        let
13          overlays = [ (import rust-overlay) ];
14          pkgs = import nixpkgs {
15            inherit system overlays;
16          };
17  
18          rustPlatform = pkgs.makeRustPlatform {
19            cargo = pkgs.rust-bin.stable.latest.default;
20            rustc = pkgs.rust-bin.stable.latest.default;
21          };
22  
23          dim = rustPlatform.buildRustPackage {
24            name = "dim";
25            src = ./.;
26            cargoLock.lockFile = ./Cargo.lock;
27          };
28        in
29        with pkgs;
30        {
31          devShells.default = mkShell {
32            buildInputs = [
33              rust-bin.stable.latest.default
34            ];
35            shellHook = ''
36              user_shell=$(getent passwd "$(whoami)" |cut -d: -f 7)
37              exec "$user_shell"
38            '';
39          };
40  
41          packages = {
42            default = dim;
43          };
44        }
45      );
46  }