2021-05-11 14:32:58 +07:00
{
inputs = {
2021-07-14 07:42:25 +07:00
nixpkgs . url = " g i t h u b : N i x O S / n i x p k g s " ;
2021-07-04 21:25:20 +07:00
home-manager . url = " g i t h u b : n i x - c o m m u n i t y / h o m e - m a n a g e r " ;
2021-07-05 10:40:52 +07:00
neovim-nightly . url = " g i t h u b : n i x - c o m m u n i t y / n e o v i m - n i g h t l y - o v e r l a y " ;
2021-07-04 21:25:20 +07:00
secrets . url = " g i t h u b : L a v a D e s u / f l a k e s - s e c r e t s " ;
2021-05-20 14:02:49 +07:00
home-manager . inputs . nixpkgs . follows = " n i x p k g s " ;
2021-07-05 10:40:52 +07:00
neovim-nightly . inputs . nixpkgs . follows = " n i x p k g s " ;
2021-07-14 11:02:42 +07:00
# zsh plugins
zsh-abbr = { url = " g i t h u b : o l e t s / z s h - a b b r " ; flake = false ; } ;
zsh-history-substring-search = { url = " g i t h u b : z s h - u s e r s / z s h - h i s t o r y - s u b s t r i n g - s e a r c h " ; flake = false ; } ;
zsh-fast-syntax-highlighting = { url = " g i t h u b : z d h a r m a / f a s t - s y n t a x - h i g h l i g h t i n g " ; flake = false ; } ;
zsh-pure = { url = " g i t h u b : s i n d r e s o r h u s / p u r e " ; flake = false ; } ;
2021-05-11 14:32:58 +07:00
} ;
2021-05-20 14:02:49 +07:00
outputs = inputs : with inputs ;
2021-05-13 17:59:46 +07:00
let
2021-06-26 23:48:15 +07:00
getPaths = root : builtins . map
( path : root + ( " / " + path ) ) # Prepends root path
( builtins . attrNames ( builtins . readDir root ) ) ; # Reads root path
customPackages = pkgs :
let
callPackage = pkgs . callPackage ;
in {
linux-lava = callPackage ./packages/linux-lava { } ;
wine-osu = callPackage ./packages/wine-osu { inherit getPaths ; } ;
} ;
overlays = ( builtins . map
( path : import path ) # Imports path
( builtins . filter
( path : nixpkgs . lib . hasSuffix " . n i x " path ) # Checks file extension
( getPaths ./overlays )
)
2021-07-05 10:40:52 +07:00
) ++ [ ( self : super : customPackages super ) ]
++ [ inputs . neovim-nightly . overlay ] ;
2021-06-26 23:48:15 +07:00
2021-07-14 13:41:54 +07:00
base = if ! ( self ? rev ) then throw " D i r t y g i t t r e e d e t e c t e d . " else
{ config , . . . }: {
2021-07-14 07:40:27 +07:00
system = rec {
2021-07-14 13:41:54 +07:00
configurationRevision = self . rev ;
2021-06-16 16:08:10 +07:00
nixos = rec {
version = config . system . nixos . release + versionSuffix ;
2021-07-14 07:40:27 +07:00
versionSuffix = " - ${ config . system . name } . r ${ builtins . toString self . revCount } . ${ self . shortRev } " ;
#versionSuffix = ".${nixpkgs.lib.substring 0 8 (nixpkgs.lastModifiedDate or nixpkgs.lastModified or "19700101")}.r${revCount}-${nixpkgs.lib.substring 0 11 (nixpkgs.rev or "dirty")}";
2021-06-16 16:08:10 +07:00
} ;
} ;
2021-05-13 17:59:46 +07:00
nix . registry . nixpkgs . flake = nixpkgs ;
2021-06-26 23:48:15 +07:00
nixpkgs . overlays = overlays ;
2021-05-13 17:59:46 +07:00
} ;
2021-06-26 23:48:15 +07:00
2021-05-26 21:05:59 +07:00
hm-base = {
2021-06-26 23:48:15 +07:00
home-manager = {
useGlobalPkgs = true ;
useUserPackages = true ;
2021-07-14 11:02:42 +07:00
extraSpecialArgs = { inherit inputs ; } ;
2021-06-26 23:48:15 +07:00
} ;
2021-05-13 17:59:46 +07:00
} ;
in
{
2021-05-20 14:02:49 +07:00
nixosConfigurations . " w i n t e r " = nixpkgs . lib . nixosSystem {
2021-05-13 17:59:46 +07:00
system = " x 8 6 _ 6 4 - l i n u x " ;
modules = [
base
2021-05-26 21:05:59 +07:00
home-manager . nixosModules . home-manager
hm-base
./hosts/winter
2021-05-20 14:02:49 +07:00
secrets . nixosModules . winter
2021-05-13 17:59:46 +07:00
] ;
2021-07-14 11:02:42 +07:00
specialArgs = { inherit inputs ; } ;
2021-05-13 17:59:46 +07:00
} ;
2021-06-26 23:48:15 +07:00
packages . x86_64-linux = customPackages nixpkgs . legacyPackages . x86_64-linux ;
2021-05-11 14:32:58 +07:00
} ;
}