diff --git a/hosts/gerg-desktop/git.nix b/hosts/gerg-desktop/git.nix index 4a69ad1..5b24e0a 100644 --- a/hosts/gerg-desktop/git.nix +++ b/hosts/gerg-desktop/git.nix @@ -1,4 +1,3 @@ -{ _file }: { pkgs, config, ... }: { programs.git = { @@ -30,5 +29,4 @@ commit.gpgsign = true; }; }; - inherit _file; } diff --git a/hosts/gerg-desktop/main.nix b/hosts/gerg-desktop/main.nix index f9714b5..10d1885 100644 --- a/hosts/gerg-desktop/main.nix +++ b/hosts/gerg-desktop/main.nix @@ -1,10 +1,12 @@ { + nix-index-database, nvim-flake, - self, - _file, + self', + pkgs, + config, + ... }: -{ pkgs, config, ... }: { local = { remoteBuild.isBuilder = true; @@ -97,7 +99,7 @@ #qmk ; inherit (nvim-flake.packages) neovim; - inherit (self.packages) lint; + inherit (self'.packages) lint; librewolf = pkgs.librewolf.override { cfg.speechSynthesisSupport = false; }; nixpkgs-review = pkgs.nixpkgs-review.override { nix = config.nix.package; }; @@ -194,5 +196,4 @@ }; system.stateVersion = "23.05"; - inherit _file; } diff --git a/hosts/gerg-desktop/services/ddns.nix b/hosts/gerg-desktop/services/ddns.nix index faf5143..dae4639 100644 --- a/hosts/gerg-desktop/services/ddns.nix +++ b/hosts/gerg-desktop/services/ddns.nix @@ -1,4 +1,3 @@ -{ _file }: { config, pkgs, ... }: { sops.secrets.cloudflare = { }; @@ -84,5 +83,4 @@ func "nix-fu.com" "cc2df9163c3730f58b866409ac5a108c" ''; }; - inherit _file; } diff --git a/hosts/gerg-desktop/services/gitea.nix b/hosts/gerg-desktop/services/gitea.nix index ba4878e..85d978a 100644 --- a/hosts/gerg-desktop/services/gitea.nix +++ b/hosts/gerg-desktop/services/gitea.nix @@ -1,4 +1,3 @@ -{ _file }: #{ config, ... }: { # users.users = { @@ -30,5 +29,4 @@ createDatabase = true; }; }; - inherit _file; } diff --git a/hosts/gerg-desktop/services/minecraft.nix b/hosts/gerg-desktop/services/minecraft.nix index 2940696..9846479 100644 --- a/hosts/gerg-desktop/services/minecraft.nix +++ b/hosts/gerg-desktop/services/minecraft.nix @@ -1,5 +1,4 @@ -{ _file, self }: -{ lib, ... }: +{ self', lib, ... }: { # I manually switch this sometimes config = lib.mkIf false { @@ -35,7 +34,7 @@ "network.target" "minecraft-server.socket" ]; - path = [ self.packages.papermc ]; + path = [ self'.packages.papermc ]; script = '' minecraft-server \ -Xms8G \ @@ -100,5 +99,4 @@ ''; }; }; - inherit _file; } diff --git a/hosts/gerg-desktop/services/miniflux.nix b/hosts/gerg-desktop/services/miniflux.nix index 945df4b..1c593b8 100644 --- a/hosts/gerg-desktop/services/miniflux.nix +++ b/hosts/gerg-desktop/services/miniflux.nix @@ -1,4 +1,3 @@ -{ _file }: { config, lib, @@ -97,5 +96,4 @@ ${config.services.nginx.user}.extraGroups = [ "miniflux" ]; }; }; - inherit _file; } diff --git a/hosts/gerg-desktop/services/nextcloud.nix b/hosts/gerg-desktop/services/nextcloud.nix index 3530c34..1b2e841 100644 --- a/hosts/gerg-desktop/services/nextcloud.nix +++ b/hosts/gerg-desktop/services/nextcloud.nix @@ -1,4 +1,3 @@ -{ _file }: { pkgs, config, ... }: { sops.secrets.nextcloud.owner = "nextcloud"; @@ -24,5 +23,4 @@ default_phone_region = "US"; }; }; - inherit _file; } diff --git a/hosts/gerg-desktop/services/nginx.nix b/hosts/gerg-desktop/services/nginx.nix index c41ef41..6e0fe56 100644 --- a/hosts/gerg-desktop/services/nginx.nix +++ b/hosts/gerg-desktop/services/nginx.nix @@ -1,4 +1,3 @@ -{ _file }: { config, lib, ... }: { sops.secrets = @@ -65,5 +64,4 @@ 80 443 ]; - inherit _file; } diff --git a/hosts/gerg-desktop/services/parrot.nix b/hosts/gerg-desktop/services/parrot.nix index b1af796..3a3e7b1 100644 --- a/hosts/gerg-desktop/services/parrot.nix +++ b/hosts/gerg-desktop/services/parrot.nix @@ -1,4 +1,3 @@ -{ _file }: { pkgs, config, @@ -22,5 +21,4 @@ RestartSec = "30s"; }; }; - inherit _file; } diff --git a/hosts/gerg-desktop/services/postgresql.nix b/hosts/gerg-desktop/services/postgresql.nix index c791bc0..7cc7e5f 100644 --- a/hosts/gerg-desktop/services/postgresql.nix +++ b/hosts/gerg-desktop/services/postgresql.nix @@ -1,4 +1,3 @@ -{ _file }: { config, pkgs, ... }: { services.postgresql = { @@ -19,5 +18,4 @@ settings.unix_socket_permissions = "0770"; }; - inherit _file; } diff --git a/hosts/gerg-desktop/services/searxng.nix b/hosts/gerg-desktop/services/searxng.nix index 45e7aeb..3616127 100644 --- a/hosts/gerg-desktop/services/searxng.nix +++ b/hosts/gerg-desktop/services/searxng.nix @@ -1,4 +1,3 @@ -{ _file }: { config, pkgs, ... }: { sops.secrets.searxngenv = { }; @@ -36,5 +35,4 @@ ui.theme_args.simple_style = "dark"; }; }; - inherit _file; } diff --git a/hosts/gerg-desktop/spicetify.nix b/hosts/gerg-desktop/spicetify.nix index dddd264..23400d3 100644 --- a/hosts/gerg-desktop/spicetify.nix +++ b/hosts/gerg-desktop/spicetify.nix @@ -1,4 +1,4 @@ -{ spicetify-nix, _file }: +{ spicetify-nix, ... }: let spicePkgs = spicetify-nix.legacyPackages; in @@ -37,5 +37,4 @@ in misc = "282a36"; }; }; - inherit _file; } diff --git a/hosts/gerg-desktop/vfio.nix b/hosts/gerg-desktop/vfio.nix index c333719..35cbaec 100644 --- a/hosts/gerg-desktop/vfio.nix +++ b/hosts/gerg-desktop/vfio.nix @@ -1,8 +1,7 @@ -{ _dir, _file }: { + _dir, pkgs, lib, - config, ... }: /* @@ -187,5 +186,4 @@ in ); }; }; - inherit _file; } diff --git a/hosts/gerg-desktop/zfs.nix b/hosts/gerg-desktop/zfs.nix index 1b8ef5b..3319978 100644 --- a/hosts/gerg-desktop/zfs.nix +++ b/hosts/gerg-desktop/zfs.nix @@ -1,5 +1,5 @@ -{ lanzaboote, _file }: { + lanzaboote, config, lib, pkgs, @@ -86,5 +86,4 @@ efi.efiSysMountPoint = "/efi"; }; }; - inherit _file; } diff --git a/hosts/iso/main.nix b/hosts/iso/main.nix index e3db36e..a102582 100644 --- a/hosts/iso/main.nix +++ b/hosts/iso/main.nix @@ -1,9 +1,6 @@ { disko, nixos-generators, - _file, -}: -{ lib, modulesPath, pkgs, @@ -43,5 +40,4 @@ edition = lib.mkForce "gerg-minimal"; isoName = lib.mkForce "NixOS"; }; - inherit _file; } diff --git a/hosts/media-laptop/main.nix b/hosts/media-laptop/main.nix index 6f8bfa3..342e49a 100644 --- a/hosts/media-laptop/main.nix +++ b/hosts/media-laptop/main.nix @@ -1,4 +1,3 @@ -{ _file }: { lib, pkgs, @@ -84,5 +83,4 @@ size = 8 * 1024; } ]; - inherit _file; } diff --git a/lib/default.nix b/lib/default.nix index 1dc628b..d422f39 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -78,34 +78,53 @@ rec { importWithArgs = map ( x: let - allArgs = (constructInputs' system inputs) // { - inherit inputs; + imported = import x; + + inputs' = constructInputs' system inputs; + self' = inputs'.self; + allArgs = inputs' // { + inherit + inputs + inputs' + self + self' + ; + _dir = let dir = builtins.dirOf x; in if (dir != builtins.storeDir) then dir else null; - _file = x; }; - imported = import x; + + funcArgs = lib.functionArgs imported; in - lib.pipe imported [ - lib.functionArgs - builtins.attrNames - (map ( - x: - if allArgs ? ${x} then - { - name = x; - value = allArgs.${x}; - } - else - null - )) - (builtins.filter builtins.isAttrs) - builtins.listToAttrs - imported - ] + if !lib.isFunction imported then + x + else + lib.pipe funcArgs [ + builtins.attrNames + (map ( + a: + if allArgs ? ${a} then + { + name = a; + value = allArgs.${a}; + } + else + null + )) + (builtins.filter builtins.isAttrs) + builtins.listToAttrs + (vals: { + __functor = _: args: imported (args // vals); + __functionArgs = removeAttrs funcArgs (builtins.attrNames vals); + }) + (m: { + imports = [ m ]; + _file = x; + }) + ] ); in builtins.concatLists [ diff --git a/modules/DE/dwm.nix b/modules/DE/dwm.nix index ce68d04..efa8d5e 100644 --- a/modules/DE/dwm.nix +++ b/modules/DE/dwm.nix @@ -1,12 +1,9 @@ -{ - suckless, - self, - _file, -}: { pkgs, config, lib, + suckless, + self', ... }: { @@ -43,7 +40,7 @@ enable = true; displayManager = { sessionCommands = '' - feh --bg-center "${self.packages.images}/recursion.png" + feh --bg-center "${self'.packages.images}/recursion.png" numlockx systemctl --user start sxhkd systemctl --user start picom @@ -125,5 +122,4 @@ }; }; }; - inherit _file; } diff --git a/modules/DE/gnome.nix b/modules/DE/gnome.nix index 83f6c3d..a6fef4d 100644 --- a/modules/DE/gnome.nix +++ b/modules/DE/gnome.nix @@ -1,4 +1,3 @@ -{ _file }: { config, lib, @@ -50,5 +49,4 @@ }; }; }; - inherit _file; } diff --git a/modules/DE/xfce.nix b/modules/DE/xfce.nix index a5872e9..1c4e55a 100644 --- a/modules/DE/xfce.nix +++ b/modules/DE/xfce.nix @@ -1,4 +1,3 @@ -{ _file }: { config, lib, @@ -21,5 +20,4 @@ displayManager.defaultSession = "xfce"; }; }; - inherit _file; } diff --git a/modules/DM/autoLogin.nix b/modules/DM/autoLogin.nix index 230b6a0..464c928 100644 --- a/modules/DM/autoLogin.nix +++ b/modules/DM/autoLogin.nix @@ -1,4 +1,3 @@ -{ _file }: { config, lib, ... }: { options.local.DM = { @@ -17,5 +16,4 @@ }; }; }; - inherit _file; } diff --git a/modules/DM/lightDM.nix b/modules/DM/lightDM.nix index 584aad6..ae71b55 100644 --- a/modules/DM/lightDM.nix +++ b/modules/DM/lightDM.nix @@ -1,5 +1,9 @@ -{ self, _file }: -{ config, lib, ... }: +{ + self', + config, + lib, + ... +}: { options.local.DM.lightdm.enable = lib.mkEnableOption ""; @@ -7,7 +11,7 @@ services.xserver.displayManager = { lightdm = { enable = true; - background = "${self.packages.images}/recursion.png"; + background = "${self'.packages.images}/recursion.png"; extraConfig = "minimum-vt=1"; greeters.mini = { enable = true; @@ -41,5 +45,4 @@ }; }; }; - inherit _file; } diff --git a/modules/X11.nix b/modules/X11.nix index aef7533..cf92826 100644 --- a/modules/X11.nix +++ b/modules/X11.nix @@ -1,4 +1,3 @@ -{ _file }: { pkgs, lib, ... }: { services.xserver = { @@ -9,5 +8,4 @@ excludePackages = [ pkgs.xterm ]; desktopManager.xterm.enable = false; }; - inherit _file; } diff --git a/modules/boot.nix b/modules/boot.nix index 8a254c4..9d7175b 100644 --- a/modules/boot.nix +++ b/modules/boot.nix @@ -1,5 +1,5 @@ -{ self, _file }: { + self', lib, pkgs, config, @@ -34,7 +34,7 @@ plymouth = { enable = lib.mkDefault true; theme = "breeze"; - logo = "${self.packages.images}/logo.png"; + logo = "${self'.packages.images}/logo.png"; }; loader = { grub = { @@ -68,5 +68,4 @@ ''; }; }; - inherit _file; } diff --git a/modules/builders.nix b/modules/builders.nix index 9bdabc7..984e88d 100644 --- a/modules/builders.nix +++ b/modules/builders.nix @@ -1,4 +1,3 @@ -{ _file }: { config, lib, ... }: { options.local.remoteBuild = { @@ -97,5 +96,4 @@ } ) ]; - inherit _file; } diff --git a/modules/hardware.nix b/modules/hardware.nix index 37e8d0a..684a94a 100644 --- a/modules/hardware.nix +++ b/modules/hardware.nix @@ -1,4 +1,3 @@ -{ _file }: { config, lib, ... }: let cfg = config.local.hardware; @@ -41,5 +40,4 @@ in }; } ]; - inherit _file; } diff --git a/modules/keys.nix b/modules/keys.nix index 287d7c7..a125f06 100644 --- a/modules/keys.nix +++ b/modules/keys.nix @@ -1,4 +1,3 @@ -{ _file }: { lib, ... }: { options.local.keys = lib.mkOption { }; @@ -12,5 +11,4 @@ gerg-desktop_fingerprint = "BQxvBOWsTw1gdNDR0KzrSRmbVhDrJdG05vYXkVmw8yA"; gerg_gerg-desktop = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJWbwkFJmRBgyWyWU+w3ksZ+KuFw9uXJN3PwqqE7Z/i8"; }; - inherit _file; } diff --git a/modules/misc.nix b/modules/misc.nix index 09a27b4..5be2a3e 100644 --- a/modules/misc.nix +++ b/modules/misc.nix @@ -1,5 +1,5 @@ -{ _file, self }: { + self', lib, config, pkgs, @@ -33,7 +33,7 @@ nix-tree # view packages pciutils # lspci ; - inherit (self.packages) nix-janitor; + inherit (self'.packages) nix-janitor; } ); @@ -69,5 +69,4 @@ # Useless with flakes (without configuring) programs.command-not-found.enable = false; }; - inherit _file; } diff --git a/modules/nix.nix b/modules/nix.nix index 82745e7..322f828 100644 --- a/modules/nix.nix +++ b/modules/nix.nix @@ -1,9 +1,7 @@ { + nix, inputs, - _file, -}: -{ lib, config, pkgs, @@ -73,5 +71,4 @@ # reject-flake-config = true; }; - inherit _file; } diff --git a/modules/shell.nix b/modules/shell.nix index 68ad0bd..7eef42c 100644 --- a/modules/shell.nix +++ b/modules/shell.nix @@ -1,5 +1,5 @@ -{ fetch-rs, _file }: { + fetch-rs, pkgs, config, lib, @@ -160,5 +160,4 @@ }; }; }; - inherit _file; } diff --git a/modules/sops.nix b/modules/sops.nix index 359d63c..3e3b8fa 100644 --- a/modules/sops.nix +++ b/modules/sops.nix @@ -1,12 +1,9 @@ -{ - sops-nix, - self, - _file, -}: { pkgs, config, lib, + sops-nix, + self', ... }: { @@ -15,9 +12,8 @@ config = lib.mkIf (!config.local.sops.disable) { environment.systemPackages = [ pkgs.sops ]; sops = { - defaultSopsFile = "${self}/hosts/${config.networking.hostName}/secrets.yaml"; + defaultSopsFile = "${self'}/hosts/${config.networking.hostName}/secrets.yaml"; age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; }; }; - inherit _file; } diff --git a/modules/theming.nix b/modules/theming.nix index cf23a51..74492bb 100644 --- a/modules/theming.nix +++ b/modules/theming.nix @@ -1,4 +1,3 @@ -{ _file }: { pkgs, config, @@ -98,5 +97,4 @@ in }; }) ]; - inherit _file; }