From 0bcc8b3c528ae7afb6c3aff4aab3b09dd7745d77 Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Sun, 15 May 2022 15:39:25 +0200 Subject: [PATCH] flakes fixes --- config.nix | 6 ---- flake.nix | 72 ++++++++++++++++++++++---------------- home-manager/home.nix | 9 ++--- nixos/logical/smithers.nix | 1 + nixos/physical/3950x.nix | 3 +- nixos/physical/xps9360.nix | 2 +- nixos/roles/default.nix | 5 +-- nr.fish | 23 +----------- pkgs/default.nix | 2 +- repl.nix | 4 +++ 10 files changed, 59 insertions(+), 68 deletions(-) delete mode 100644 config.nix create mode 100644 repl.nix diff --git a/config.nix b/config.nix deleted file mode 100644 index a3b6c14..0000000 --- a/config.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - allowUnfree = true; - # chromium.vaapiSupport = true; - android_sdk.accept_license = true; - overlays = import ./overlays.nix; -} diff --git a/flake.nix b/flake.nix index 51c0ee8..a42201f 100644 --- a/flake.nix +++ b/flake.nix @@ -10,36 +10,48 @@ nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-21.05"; nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver"; nixos-mailserver.inputs.nixpkgs.follows = "nixpkgs"; - }; - outputs = inputs@{ nixpkgs, home-manager, nixpkgs-mozilla, emacs-overlay, nixpkgs-wayland, nixpkgs-stable, nixos-hardware, self, ... }: { - overlays.default = [ - nixpkgs-wayland.overlay - nixpkgs-mozilla.overlay - emacs-overlay.overlay - (import ./fixups.nix) - (import ./pkgs) - (import ./pkgs/mdr.nix) - (import ./nixos/overlay.nix) - (final: prev: { - stable = nixpkgs-stable.legacyPackages.x86_64-linux; - flake-inputs = inputs; - }) - ]; - legacyPackages.x86_64-linux = import nixpkgs { - config = import ./config.nix; - system = "x86_64-linux"; - overlays = self.overlays.default; - }; - nixosConfigurations = self.legacyPackages.x86_64-linux.yorick.machine; - homeConfigurations.yorick = home-manager.lib.homeManagerConfiguration { - pkgs = self.legacyPackages.x86_64-linux; - configuration = import ./home-manager/home.nix; - system = "x86_64-linux"; - username = "yorick"; - stateVersion = "20.09"; - homeDirectory = "/home/yorick"; - }; - packages.x86_64-linux.yorick-home = self.homeConfigurations.yorick.activationPackage; }; + outputs = inputs@{ nixpkgs, home-manager, nixpkgs-mozilla, emacs-overlay + , nixpkgs-wayland, nixpkgs-stable, nixos-hardware, self, ... }: { + overlay = nixpkgs.lib.composeManyExtensions [ + nixpkgs-wayland.overlay + #nixpkgs-mozilla.overlay + emacs-overlay.overlay + (import ./fixups.nix) + (import ./pkgs) + (import ./pkgs/mdr.nix) + (final: prev: { + nixpkgs-stable = import nixpkgs-stable { + system = prev.stdenv.system; + config = { }; + overlays = [ ]; + }; + flake-inputs = inputs; + }) + (import ./nixos/overlay.nix) + ]; + legacyPackages.x86_64-linux = import nixpkgs { + config = { + allowUnfree = true; + # chromium.vaapiSupport = true; + android_sdk.accept_license = true; + }; + system = "x86_64-linux"; + overlays = [ self.overlay ]; + }; + nixosConfigurations = self.legacyPackages.x86_64-linux.yorick.machine; + homeConfigurations.x86_64-linux = + home-manager.lib.homeManagerConfiguration { + pkgs = self.legacyPackages.x86_64-linux; + configuration = import ./home-manager/home.nix; + system = "x86_64-linux"; + username = "yorick"; + stateVersion = "20.09"; + homeDirectory = "/home/yorick"; + }; + packages.x86_64-linux.yorick-home = + self.homeConfigurations.x86_64-linux.activationPackage; + + }; } diff --git a/home-manager/home.nix b/home-manager/home.nix index a4b7d58..84ce9ee 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -8,6 +8,7 @@ let in { imports = [ ./desktop.nix ./emacs.nix ./lumi.nix ]; programs = { + nix-index.enable = true; starship = { enable = true; settings.nix_shell.disabled = false; @@ -111,7 +112,7 @@ in { enable = true; historyControl = [ "erasedups" "ignoredups" "ignorespace" ]; shellAliases = { - nr = ''nix repl ""''; + nr = ''nix repl "/home/yorick/dotfiles/repl.nix"''; nsp = "nix-shell -p"; }; initExtra = '' @@ -125,10 +126,10 @@ in { }; }; xdg.configFile."nixpkgs/config.nix".text = '' - import "${toString ../config.nix}" + throw "tried to read nixpkgs/config.nix" ''; xdg.configFile."nixpkgs/overlays.nix".text = '' - import "${toString ../overlays.nix}" + throw "tried to read nixpkgs/overlays.nix" ''; xdg.configFile."streamlink/config".text = '' player = mpv --cache 2048 @@ -285,6 +286,6 @@ in { recursive = true; }; home.sessionVariables = { - FLAKE_CONFIG_URI = "/home/yorick/dotfiles#homeConfigurations.yorick"; + FLAKE_CONFIG_URI = "/home/yorick/dotfiles#homeConfigurations.${pkgs.stdenv.system}.activationPackage"; }; } diff --git a/nixos/logical/smithers.nix b/nixos/logical/smithers.nix index f1f1999..52998c0 100644 --- a/nixos/logical/smithers.nix +++ b/nixos/logical/smithers.nix @@ -4,6 +4,7 @@ imports = [ ../physical/x11.nix ../roles/workstation.nix ]; yorick.lumi-vpn.enable = lib.mkForce false; + yorick.lumi-cache.enable = lib.mkForce false; system.stateVersion = "21.05"; } diff --git a/nixos/physical/3950x.nix b/nixos/physical/3950x.nix index dddec1c..84f3676 100644 --- a/nixos/physical/3950x.nix +++ b/nixos/physical/3950x.nix @@ -2,9 +2,8 @@ { imports = [ ./. - inputs.nixos-hardware.nixosModules.common-cpu-amd; ./3950x-hardware-config.nix - "${sources.nixos-hardware}/common/cpu/amd" + inputs.nixos-hardware.nixosModules.common-cpu-amd ]; boot.loader.systemd-boot.enable = true; diff --git a/nixos/physical/xps9360.nix b/nixos/physical/xps9360.nix index 87dbf2d..eb1e619 100644 --- a/nixos/physical/xps9360.nix +++ b/nixos/physical/xps9360.nix @@ -1,7 +1,7 @@ { config, lib, pkgs, inputs, ... }: { imports = [ - inputs.nixos-hardware.nixosModules.dell-xps-13-9360; + inputs.nixos-hardware.nixosModules.dell-xps-13-9360 ./xps9360-hardware-config.nix ]; diff --git a/nixos/roles/default.nix b/nixos/roles/default.nix index 0b6cd27..e477e9d 100644 --- a/nixos/roles/default.nix +++ b/nixos/roles/default.nix @@ -1,5 +1,5 @@ let secrets = import ../secrets.nix; -in { config, pkgs, lib, name, ... }: +in { config, pkgs, lib, name, inputs, ... }: let machine = name; vpn = import ../vpn.nix; @@ -13,7 +13,8 @@ in { ../services ]; - nix.nixPath = [ "nixpkgs=${pkgs.path}" ]; + nix.nixPath = [];# "nixpkgs=${pkgs.path}" ]; + nix.registry.nixpkgs.flake = inputs.nixpkgs; networking.domain = "yori.cc"; networking.hostName = machine; diff --git a/nr.fish b/nr.fish index d6f016a..52b0fa3 100644 --- a/nr.fish +++ b/nr.fish @@ -32,28 +32,7 @@ function :u end for arg in $argv - set -l out (nix-instantiate --eval --json --expr ' -let - tryImport = f: with builtins; let v = import f; in if isFunction v && (any (a: a) (attrValues (functionArgs v))) then v {} else v; - isImportable = path: with builtins; if pathExists "${path}/" then pathExists "${path}/default.nix" else pathExists "${path}"; - - pathBits = with builtins; map ({ prefix, path }: - if prefix == "" then - let - contents = readDir path; - names = builtins.filter (a: contents.${a} == "directory" && isImportable "${path}/${a}") (attrNames contents); - in - foldl\' (prev: val: prev // { ${val} = tryImport "${path}/${val}"; }) {} names - else - if isImportable path then - { ${prefix} = tryImport path; } - else - { } - ) nixPath; - - out = builtins.foldl\' (old: new: old // new) {} pathBits; -in with out; builtins.toPath ('"$arg"').outPath' | jq -r .) - [ -e $out ] || nix-store -r $out > /dev/null + nix build -L $argv --no-link && set -l out (nix eval --raw $argv) __nr_apply $out end end diff --git a/pkgs/default.nix b/pkgs/default.nix index 7dc6c94..fa65623 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -4,7 +4,7 @@ ftb = super.callPackage ./ftb.nix {}; # todo: python 2 -> 3 - pyroscope = self.stable.callPackage ./pyroscope {}; + pyroscope = self.nixpkgs-stable.callPackage ./pyroscope {}; yscripts = super.callPackage ../bin {}; factorio = super.factorio.override { diff --git a/repl.nix b/repl.nix new file mode 100644 index 0000000..72b725f --- /dev/null +++ b/repl.nix @@ -0,0 +1,4 @@ +let flake = builtins.getFlake (toString ./.); +in { + inherit flake; +} // flake.legacyPackages.${builtins.currentSystem} // flake.nixosConfigurations