2 changed files with 119 additions and 0 deletions
@ -0,0 +1,95 @@ |
|||||
|
{ |
||||
|
description = "A somewhat huge home-manager configuration using Nix Flakes."; |
||||
|
|
||||
|
inputs = { |
||||
|
# Flake inputs |
||||
|
agenix.url = "github:ryantm/agenix"; |
||||
|
home.url = "github:nix-community/home-manager"; |
||||
|
|
||||
|
# Nixpkgs branches |
||||
|
master.url = "github:nixos/nixpkgs/master"; |
||||
|
stable.url = "github:nixos/nixpkgs/nixos-23.05"; |
||||
|
unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable"; |
||||
|
|
||||
|
# Default Nixpkgs for packages and modules |
||||
|
nixpkgs.follows = "master"; |
||||
|
|
||||
|
# Minimize duplicate instances of inputs |
||||
|
agenix.inputs.nixpkgs.follows = "nixpkgs"; |
||||
|
home.inputs.nixpkgs.follows = "nixpkgs"; |
||||
|
nix.inputs.nixpkgs.follows = "nixpkgs"; |
||||
|
}; |
||||
|
|
||||
|
outputs = { self, home, nixpkgs, ... }@inputs: |
||||
|
let |
||||
|
config = { |
||||
|
allowBroken = false; |
||||
|
allowUnfree = true; |
||||
|
allowUnfreePredicate = _: true; |
||||
|
tarball-ttl = 0; |
||||
|
|
||||
|
# WTF: don't do this kids... |
||||
|
# replaceStdenv = { pkgs }: pkgs.optimizedV3Stdenv; |
||||
|
|
||||
|
/* |
||||
|
NOTE: experimental option, disable if you don't know what this does |
||||
|
See https://github.com/NixOS/rfcs/pull/62 for more information. |
||||
|
*/ |
||||
|
contentAddressedByDefault = false; |
||||
|
}; |
||||
|
|
||||
|
importNixFiles = path: with nixpkgs.lib; map import (__filter (hasSuffix "nix") (filesystem.listFilesRecursive path)); |
||||
|
|
||||
|
overlays = with inputs; [ |
||||
|
(final: prev: |
||||
|
let inherit (final) system; in |
||||
|
{ |
||||
|
/* |
||||
|
Nixpkgs branches, replace when https://github.com/NixOS/nixpkgs/pull/160061 is live. |
||||
|
One can access these branches like so: |
||||
|
`pkgs.stable.mpd' |
||||
|
`pkgs.master.linuxPackages_xanmod' |
||||
|
*/ |
||||
|
master = import master { inherit config system; }; |
||||
|
unstable = import unstable { inherit config system; }; |
||||
|
stable = import stable { inherit config system; }; |
||||
|
}) |
||||
|
|
||||
|
# Overlays provided by inputs |
||||
|
inputs.nixpkgs-f2k.overlays.stdenvs |
||||
|
] |
||||
|
# Overlays from ./overlays directory |
||||
|
++ (importNixFiles ./overlays); |
||||
|
in |
||||
|
flake-parts.lib.mkFlake { inherit inputs; } { |
||||
|
flake = { |
||||
|
homeConfigurations = { |
||||
|
devvie = import ./users/devvie { |
||||
|
inherit config nixpkgs home overlays inputs; |
||||
|
}; |
||||
|
|
||||
|
#omni = import ./users/omni { |
||||
|
# inherit config nixpkgs home overlays inputs; |
||||
|
#}; |
||||
|
}; |
||||
|
}; |
||||
|
|
||||
|
systems = [ "x86_64-linux" ]; |
||||
|
|
||||
|
perSystem = { system, ... }: { |
||||
|
formatter = inputs.nixpkgs-fmt.defaultPackage.${system}; |
||||
|
}; |
||||
|
}; |
||||
|
|
||||
|
nixConfig = { |
||||
|
commit-lockfile-summary = "flake: bump inputs"; |
||||
|
|
||||
|
substituters = [ |
||||
|
"https://cache.nixos.org?priority=10" |
||||
|
"https://cache.ngi0.nixos.org/" |
||||
|
"https://nix-community.cachix.org?priority=5" |
||||
|
"https://nixpkgs-wayland.cachix.org" |
||||
|
"https://fortuneteller2k.cachix.org" |
||||
|
]; |
||||
|
}; |
||||
|
} |
||||
@ -0,0 +1,24 @@ |
|||||
|
{ config, inputs, lib, pkgs, system, ... }: |
||||
|
|
||||
|
/* |
||||
|
home-manager configuration |
||||
|
Useful links: |
||||
|
- Home Manager Manual: https://rycee.gitlab.io/home-manager/ |
||||
|
- Appendix A. Configuration Options: https://rycee.gitlab.io/home-manager/options.html |
||||
|
*/ |
||||
|
{ |
||||
|
home = { |
||||
|
packages = |
||||
|
in |
||||
|
lib.attrValues { |
||||
|
inherit (pkgs) |
||||
|
fd |
||||
|
neovim |
||||
|
ripgrep |
||||
|
tmux |
||||
|
zsh |
||||
|
}; |
||||
|
|
||||
|
sessionVariables.EDITOR = "nvim"; |
||||
|
}; |
||||
|
} |
||||
Loading…
Reference in new issue