diff --git a/flake.lock b/flake.lock index c4e815d..bb2d662 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1687028856, - "narHash": "sha256-vKV3I31tmXwaWHiUOgfDVd27cEHqaPBr1lt9+NKdIp8=", + "lastModified": 1687134796, + "narHash": "sha256-gjBAkEtNPMQzqK4IHjTQBUv3VhggszOHLJbhXZy0OVQ=", "owner": "nix-community", "repo": "disko", - "rev": "64c9c78c15fd4c899d857bf09dba88bda771b43a", + "rev": "4823509bb3b014dc85abefc13efcfa076d36338a", "type": "github" }, "original": { @@ -27,11 +27,11 @@ ] }, "locked": { - "lastModified": 1686447837, - "narHash": "sha256-7MUSWCGDceC5Z7zgt/FlJ1tO7veeY6On8HtYXT2BIlw=", + "lastModified": 1687390847, + "narHash": "sha256-T75KT5XFPMvmHOdxuoWotI+vCIM2cM5192QxLxenudU=", "owner": "gerg-L", "repo": "fetch-rs", - "rev": "38af76fe73118eb6317a34511d0a7d4f2f1af409", + "rev": "a571c0c6768db9c643cc81735a1a12799d09ed4e", "type": "github" }, "original": { @@ -56,24 +56,6 @@ "type": "github" } }, - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1685518550, - "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "lowdown-src": { "flake": false, "locked": { @@ -92,11 +74,11 @@ }, "master": { "locked": { - "lastModified": 1687093833, - "narHash": "sha256-B+cXcBTpc9bsmPd59rKIcFG6hYCGgxbeIxA+OIIFjlU=", + "lastModified": 1687388587, + "narHash": "sha256-TILQ4Ch+Y9Q6Hczm5vwgGWXD2ow29uxXPJuGzqS6jj0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "8f83962b34fe83520c0edf6320ebd05b06d4f65b", + "rev": "563afe26c68c2323e817345687c367ab5ca06dfa", "type": "github" }, "original": { @@ -145,11 +127,11 @@ }, "nixlib": { "locked": { - "lastModified": 1685840432, - "narHash": "sha256-VJIbiKsY7Xy4E4WcgwUt/UiwYDmN5BAk8tngAjcWsqY=", + "lastModified": 1687049841, + "narHash": "sha256-FBNZQfWtA7bb/rwk92mfiWc85x4hXta2OAouDqO5W8w=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "961e99baaaa57f5f7042fe7ce089a88786c839f4", + "rev": "908af6d1fa3643c5818ea45aa92b21d6385fbbe5", "type": "github" }, "original": { @@ -166,11 +148,11 @@ ] }, "locked": { - "lastModified": 1686924781, - "narHash": "sha256-6r3Hm2Fxf4F7LIWRYKU9bsS/xJwlG6L2+/I/pdffvOs=", + "lastModified": 1687183443, + "narHash": "sha256-foX4pkph2AwUdJL3JURa7IHog+YRIheZ54vwHwxqwhU=", "owner": "nix-community", "repo": "nixos-generators", - "rev": "a54683aa7eff00ee5b33dec225525d0eb6ab02de", + "rev": "09140f23f5ffce828db4ef040070bdd9595b1f3a", "type": "github" }, "original": { @@ -288,11 +270,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1687058111, - "narHash": "sha256-xDSn/APfAdJinHV4reTfplX5XnLsJSGdVwHpmdgP9Mo=", + "lastModified": 1687267549, + "narHash": "sha256-jpg5zwhEQlovGH/xrml9X5ciPKpIZr/3Z04+Fh3VtQY=", "owner": "mic92", "repo": "sops-nix", - "rev": "1634d2da53f079e7f5924efa7a96511cd9596f81", + "rev": "d299d0538295e71e194aa0dfa896ad399f4508e3", "type": "github" }, "original": { @@ -303,37 +285,33 @@ }, "spicetify-nix": { "inputs": { - "flake-utils": "flake-utils", "nixpkgs": [ "unstable" ] }, "locked": { - "lastModified": 1686173678, - "narHash": "sha256-aYzl34xb3u9I57sqkvSldQKltCnxhjvvLABjgFRxOVE=", - "owner": "the-argus", - "repo": "spicetify-nix", - "rev": "f024752b691ac2dcb2ad378d72a2e3084ce83b79", - "type": "github" + "lastModified": 1687479458, + "narHash": "sha256-7ZeYakvK1Raz4oFwGrbcMbDe12nf9TXdXJvgp/e+N8Y=", + "path": "/home/gerg/Projects/spicetify-nix", + "type": "path" }, "original": { - "owner": "the-argus", - "repo": "spicetify-nix", - "type": "github" + "path": "/home/gerg/Projects/spicetify-nix", + "type": "path" } }, "stable": { "locked": { - "lastModified": 1686929285, - "narHash": "sha256-WGtVzn+vGMPTXDO0DMNKVFtf+zUSqeW+KKk4Y/Ae99I=", + "lastModified": 1687379288, + "narHash": "sha256-cSuwfiqYfeVyqzCRkU9AvLTysmEuSal8nh6CYr+xWog=", "owner": "nixos", "repo": "nixpkgs", - "rev": "93fddcf640ceca0be331210ba3101cee9d91c13d", + "rev": "ef0bc3976340dab9a4e087a0bcff661a8b2e87f3", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-22.11", + "ref": "nixos-23.05", "repo": "nixpkgs", "type": "github" } @@ -358,21 +336,6 @@ "type": "github" } }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "unstable": { "locked": { "lastModified": 1686960236, diff --git a/flake.nix b/flake.nix index 1c0814c..8a75d4f 100644 --- a/flake.nix +++ b/flake.nix @@ -3,9 +3,9 @@ #channels master.url = "github:nixos/nixpkgs"; unstable.url = "github:nixos/nixpkgs/nixos-unstable"; - stable.url = "github:nixos/nixpkgs/nixos-22.11"; + stable.url = "github:nixos/nixpkgs/nixos-23.05"; pipewire_fix.url = "github:nixos/nixpkgs/45a55711fe12d0aada3aa04746082cf1b83dfbf3"; - #nix 2.16 + #nix 2.17 nix.url = "github:nixos/nix/03f9ff6ea59d21c6d7b29c64a03d5041bd621261"; nixos-generators = { @@ -20,9 +20,9 @@ url = "github:nix-community/disko"; inputs.nixpkgs.follows = "unstable"; }; - #the-argus is awesome spicetify-nix = { - url = "github:the-argus/spicetify-nix"; + #url = "github:the-argus/spicetify-nix"; + url = "path:/home/gerg/Projects/spicetify-nix"; inputs.nixpkgs.follows = "unstable"; }; #my own packages @@ -40,51 +40,30 @@ }; }; outputs = inputs @ { - self, unstable, nixos-generators, ... }: let - inherit (unstable) lib; - - importAll = path: - builtins.filter (lib.hasSuffix ".nix") - (lib.filesystem.listFilesRecursive path); - - mkSystems = system: names: - lib.genAttrs names ( - name: - lib.nixosSystem { - inherit system; - specialArgs = {inherit inputs self;}; - modules = - importAll ./modules - ++ importAll (self + "/systems/" + name); - } - ); - mkDisko = names: - lib.genAttrs names ( - name: (import (self + "/systems/" + name + "/disko.nix") {inherit inputs;}) - ); - - withSystem = f: - lib.fold lib.recursiveUpdate {} - (map (s: f s) ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"]); + lib = import ./lib inputs; in - withSystem ( + lib.withSystem ( system: let pkgs = unstable.legacyPackages.${system}; in { + inherit lib; nixosConfigurations = - mkSystems + lib.mkSystems "x86_64-linux" [ "gerg-desktop" "game-laptop" "moms-laptop" ]; + + nixosModules = lib.mkModules ./modules; + diskoConfigurations = - mkDisko + lib.mkDisko [ "gerg-desktop" "game-laptop" @@ -108,16 +87,7 @@ ]; }; } - // builtins.listToAttrs ( - map (module: { - name = lib.removeSuffix ".nix" (builtins.baseNameOf module); - value = pkgs.callPackage module {}; - }) - ( - builtins.filter (lib.hasSuffix ".nix") - (lib.filesystem.listFilesRecursive ./pkgs) - ) - ); + // lib.mkPkgs pkgs ./pkgs; } ); } diff --git a/systems/game-laptop/default.nix b/hosts/game-laptop/default.nix similarity index 99% rename from systems/game-laptop/default.nix rename to hosts/game-laptop/default.nix index a236c8c..99190d6 100644 --- a/systems/game-laptop/default.nix +++ b/hosts/game-laptop/default.nix @@ -1,4 +1,4 @@ -{ +_: { pkgs, config, ... diff --git a/systems/game-laptop/disko.nix b/hosts/game-laptop/disko.nix similarity index 91% rename from systems/game-laptop/disko.nix rename to hosts/game-laptop/disko.nix index 8b5b847..adbcd68 100644 --- a/systems/game-laptop/disko.nix +++ b/hosts/game-laptop/disko.nix @@ -1,10 +1,6 @@ -{ - inputs, - disks ? [], - ... -}: { +{disko, ...}: {disks ? [], ...}: { dummyvalue = {inherit disks;}; - imports = [inputs.disko.nixosModules.disko]; + imports = [disko.nixosModules.disko]; disko.devices = { disk.nvme0n1 = { device = "/dev/disk/by-id/nvme-WDC_PC_SN530_SDBPNPZ-512G-1006_21311N802456"; diff --git a/systems/game-laptop/prime.nix b/hosts/game-laptop/prime.nix similarity index 77% rename from systems/game-laptop/prime.nix rename to hosts/game-laptop/prime.nix index 55e55e8..1bec23e 100644 --- a/systems/game-laptop/prime.nix +++ b/hosts/game-laptop/prime.nix @@ -1,18 +1,11 @@ -{config, ...}: { +_: {config, ...}: { hardware.nvidia = { package = config.boot.kernelPackages.nvidiaPackages.latest; prime = { - offload = { - enable = true; - enableOffloadCmd = true; - }; + sync.enable = true; amdgpuBusId = "PCI:5:0:0"; nvidiaBusId = "PCI:1:0:0"; }; - powerManagement = { - enable = true; - finegrained = true; - }; nvidiaPersistenced = true; nvidiaSettings = false; modesetting.enable = true; diff --git a/systems/game-laptop/secrets.yaml b/hosts/game-laptop/secrets.yaml similarity index 100% rename from systems/game-laptop/secrets.yaml rename to hosts/game-laptop/secrets.yaml diff --git a/systems/gerg-desktop/containers/minecraft.nix_ b/hosts/gerg-desktop/containers/minecraft.nix_ similarity index 99% rename from systems/gerg-desktop/containers/minecraft.nix_ rename to hosts/gerg-desktop/containers/minecraft.nix_ index acf259b..f5b7274 100644 --- a/systems/gerg-desktop/containers/minecraft.nix_ +++ b/hosts/gerg-desktop/containers/minecraft.nix_ @@ -1,4 +1,4 @@ -{ +_:{ containers."minecraft" = { ephemeral = true; autoStart = true; diff --git a/systems/gerg-desktop/containers/website.nix_ b/hosts/gerg-desktop/containers/website.nix_ similarity index 99% rename from systems/gerg-desktop/containers/website.nix_ rename to hosts/gerg-desktop/containers/website.nix_ index 0387f80..88540ad 100644 --- a/systems/gerg-desktop/containers/website.nix_ +++ b/hosts/gerg-desktop/containers/website.nix_ @@ -1,4 +1,4 @@ -{ +_:{ sops.secrets = { "website/sql_gitea" = { mode = "0444"; diff --git a/systems/gerg-desktop/default.nix b/hosts/gerg-desktop/default.nix similarity index 97% rename from systems/gerg-desktop/default.nix rename to hosts/gerg-desktop/default.nix index 2a58778..5e86572 100644 --- a/systems/gerg-desktop/default.nix +++ b/hosts/gerg-desktop/default.nix @@ -1,5 +1,4 @@ -{ - inputs, +{nvim-flake, ...}: { pkgs, config, ... @@ -54,7 +53,7 @@ webcord prismlauncher ; - inherit (inputs.nvim-flake.packages.${pkgs.system}) neovim; + inherit (nvim-flake.packages.${pkgs.system}) neovim; }; etc = { "jdks/17".source = pkgs.openjdk17 + /bin; diff --git a/systems/gerg-desktop/disko.nix b/hosts/gerg-desktop/disko.nix similarity index 98% rename from systems/gerg-desktop/disko.nix rename to hosts/gerg-desktop/disko.nix index 5074662..638fbd8 100644 --- a/systems/gerg-desktop/disko.nix +++ b/hosts/gerg-desktop/disko.nix @@ -1,10 +1,6 @@ -{ - inputs, - disks ? [], - ... -}: { +{disko, ...}: {disks ? [], ...}: { dummyvalue = {inherit disks;}; - imports = [inputs.disko.nixosModules.disko]; + imports = [disko.nixosModules.disko]; disko.devices = { disk = { nvme0 = { diff --git a/systems/gerg-desktop/parrot.nix b/hosts/gerg-desktop/parrot.nix similarity index 96% rename from systems/gerg-desktop/parrot.nix rename to hosts/gerg-desktop/parrot.nix index e66acf9..4df98e0 100644 --- a/systems/gerg-desktop/parrot.nix +++ b/hosts/gerg-desktop/parrot.nix @@ -1,7 +1,6 @@ -{ +{self, ...}: { pkgs, config, - self, lib, ... }: { diff --git a/systems/gerg-desktop/secrets.yaml b/hosts/gerg-desktop/secrets.yaml similarity index 100% rename from systems/gerg-desktop/secrets.yaml rename to hosts/gerg-desktop/secrets.yaml diff --git a/systems/gerg-desktop/spicetify.nix b/hosts/gerg-desktop/spicetify.nix similarity index 76% rename from systems/gerg-desktop/spicetify.nix rename to hosts/gerg-desktop/spicetify.nix index 8e0849c..3635167 100644 --- a/systems/gerg-desktop/spicetify.nix +++ b/hosts/gerg-desktop/spicetify.nix @@ -1,15 +1,13 @@ -{ - inputs, - pkgs, - ... -}: let - spicePkgs = inputs.spicetify-nix.packages.${pkgs.system}.default; +{spicetify-nix, ...}: {pkgs, ...}: let + spicePkgs = spicetify-nix.legacyPackages.${pkgs.system}; ex = spicePkgs.extensions; in { + imports = [spicetify-nix.nixosModule]; nixpkgs.allowedUnfree = ["spotify"]; - imports = [inputs.spicetify-nix.nixosModule]; programs.spicetify = { enable = true; + spotifyPackage = spicePkgs.spotify; + spicetifyPackage = spicePkgs.spicetify-cli; enabledExtensions = [ ex.adblock ex.hidePodcasts diff --git a/systems/gerg-desktop/vfio.nix b/hosts/gerg-desktop/vfio.nix similarity index 98% rename from systems/gerg-desktop/vfio.nix rename to hosts/gerg-desktop/vfio.nix index 14d3b59..258d441 100644 --- a/systems/gerg-desktop/vfio.nix +++ b/hosts/gerg-desktop/vfio.nix @@ -1,9 +1,11 @@ { - pkgs, self, + pipewire_fix, + ... +}: { + pkgs, config, lib, - inputs, ... }: ###TAKEN FROM HERE:https://github.com/NixOS/nixpkgs/blob/4787ebf7ae2ab071389be7ff86cf38edeee7e9f8/nixos/modules/services/x11/xserver.nix#L106-L136 @@ -48,7 +50,7 @@ let twoMonitor = pkgs.writeText "2-monitor.conf" (lib.concatStrings [(builtins.readFile xserverbase) (builtins.readFile (self + /misc/2-monitor.conf))]); in { ####VM SOUND BORKED - services.pipewire.package = inputs.pipewire_fix.legacyPackages.${pkgs.system}.pipewire; + services.pipewire.package = pipewire_fix.legacyPackages.${pkgs.system}.pipewire; boot = { kernelParams = ["amd_iommu=on" "iommu=pt" "vfio_iommu_type1.allow_unsafe_interrupts=1" "kvm.ignore_msrs=1"]; }; diff --git a/systems/gerg-desktop/zfs.nix b/hosts/gerg-desktop/zfs.nix similarity index 99% rename from systems/gerg-desktop/zfs.nix rename to hosts/gerg-desktop/zfs.nix index 7adf0f6..4182326 100644 --- a/systems/gerg-desktop/zfs.nix +++ b/hosts/gerg-desktop/zfs.nix @@ -1,4 +1,4 @@ -{ +_: { config, lib, ... diff --git a/systems/moms-laptop/default.nix b/hosts/moms-laptop/default.nix similarity index 99% rename from systems/moms-laptop/default.nix rename to hosts/moms-laptop/default.nix index 82c0e8f..b45aabd 100644 --- a/systems/moms-laptop/default.nix +++ b/hosts/moms-laptop/default.nix @@ -1,4 +1,4 @@ -{ +_: { pkgs, config, ... diff --git a/systems/moms-laptop/disko.nix b/hosts/moms-laptop/disko.nix similarity index 91% rename from systems/moms-laptop/disko.nix rename to hosts/moms-laptop/disko.nix index e7495a9..7ab412a 100644 --- a/systems/moms-laptop/disko.nix +++ b/hosts/moms-laptop/disko.nix @@ -1,10 +1,6 @@ -{ - inputs, - disks ? [], - ... -}: { +{disko, ...}: {disks ? [], ...}: { dummyvalue = {inherit disks;}; - imports = [inputs.disko.nixosModules.disko]; + imports = [disko.nixosModules.disko]; disko.devices = { disk.sda = { device = "/dev/disk/by-id/ata-WDC_WDS240G2G0A-00JH30_180936803144"; diff --git a/systems/moms-laptop/printing.nix b/hosts/moms-laptop/printing.nix similarity index 96% rename from systems/moms-laptop/printing.nix rename to hosts/moms-laptop/printing.nix index 4e449ef..47957d8 100644 --- a/systems/moms-laptop/printing.nix +++ b/hosts/moms-laptop/printing.nix @@ -1,4 +1,4 @@ -{pkgs, ...}: { +_: {pkgs, ...}: { nixpkgs.allowedUnfree = ["hplip"]; environment.systemPackages = [ pkgs.gimp diff --git a/systems/moms-laptop/secrets.yaml b/hosts/moms-laptop/secrets.yaml similarity index 100% rename from systems/moms-laptop/secrets.yaml rename to hosts/moms-laptop/secrets.yaml diff --git a/lib/default.nix b/lib/default.nix new file mode 100644 index 0000000..2248cd1 --- /dev/null +++ b/lib/default.nix @@ -0,0 +1,61 @@ +inputs @ { + unstable, + self, + ... +}: let + inherit (unstable) lib; + + importAll = path: + map + (module: (import module inputs)) + ( + builtins.filter (lib.hasSuffix ".nix") + (lib.filesystem.listFilesRecursive path) + ); + + mkModules = path: + lib.listToAttrs ( + map ( + name: { + name = lib.removePrefix (toString path + "/") (lib.removeSuffix ".nix" (toString name)); + value = import name inputs; + } + ) + ( + builtins.filter (lib.hasSuffix ".nix") + (lib.filesystem.listFilesRecursive path) + ) + ); +in { + inherit importAll mkModules; + + withSystem = f: + lib.fold lib.recursiveUpdate {} + (map f ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"]); + + mkSystems = system: names: + lib.genAttrs names ( + name: + lib.nixosSystem { + inherit system; + modules = + builtins.attrValues self.nixosModules ++ importAll (self + "/hosts/" + name); + } + ); + mkDisko = names: + lib.genAttrs names ( + name: (import (self + "/hosts/" + name + "/disko.nix") inputs) + ); + + mkPkgs = pkgs: path: + builtins.listToAttrs ( + map (module: { + name = lib.removeSuffix ".nix" (builtins.baseNameOf module); + value = pkgs.callPackage module {}; + }) + ( + builtins.filter (lib.hasSuffix ".nix") + (lib.filesystem.listFilesRecursive path) + ) + ); +} diff --git a/modules/DE/dwm.nix b/modules/DE/dwm.nix index d1e39d5..eee9f79 100644 --- a/modules/DE/dwm.nix +++ b/modules/DE/dwm.nix @@ -1,9 +1,11 @@ { - inputs, + suckless, + self, + ... +}: { pkgs, config, lib, - self, ... }: { options.localModules.DE.dwm.enable = lib.mkEnableOption ""; @@ -45,7 +47,7 @@ }; environment.systemPackages = builtins.attrValues { inherit - (inputs.suckless.packages.${pkgs.system}) + (suckless.packages.${pkgs.system}) dmenu dwm st diff --git a/modules/DE/gnome.nix b/modules/DE/gnome.nix index 8f54e10..dfacb4b 100644 --- a/modules/DE/gnome.nix +++ b/modules/DE/gnome.nix @@ -1,4 +1,4 @@ -{ +_: { config, lib, pkgs, diff --git a/modules/DE/xfce.nix b/modules/DE/xfce.nix index 8f91622..12fbdbd 100644 --- a/modules/DE/xfce.nix +++ b/modules/DE/xfce.nix @@ -1,4 +1,4 @@ -{ +_: { config, lib, pkgs, diff --git a/modules/DM/autoLogin.nix b/modules/DM/autoLogin.nix index 7ba257e..2d24917 100644 --- a/modules/DM/autoLogin.nix +++ b/modules/DM/autoLogin.nix @@ -1,4 +1,4 @@ -{ +_: { config, lib, ... diff --git a/modules/DM/lightDM.nix b/modules/DM/lightDM.nix index 27c75a1..45ddf53 100644 --- a/modules/DM/lightDM.nix +++ b/modules/DM/lightDM.nix @@ -1,7 +1,6 @@ -{ +{self, ...}: { config, lib, - self, pkgs, ... }: { diff --git a/modules/X11.nix b/modules/X11.nix index a6da3c3..e5588e8 100644 --- a/modules/X11.nix +++ b/modules/X11.nix @@ -1,4 +1,4 @@ -{ +_: { config, pkgs, lib, diff --git a/modules/boot/misc.nix b/modules/boot/misc.nix index 1bac238..7ac9fca 100644 --- a/modules/boot/misc.nix +++ b/modules/boot/misc.nix @@ -1,5 +1,4 @@ -{ - self, +{self, ...}: { lib, pkgs, ... diff --git a/modules/boot/stage2patch.nix b/modules/boot/stage2patch.nix index e506232..7e5c96d 100644 --- a/modules/boot/stage2patch.nix +++ b/modules/boot/stage2patch.nix @@ -1,15 +1,16 @@ -{ - inputs, +{unstable, ...}: { lib, config, pkgs, ... -}: let +}: +#TAKEN FROM https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/system/boot/stage-2.nix +let useHostResolvConf = config.networking.resolvconf.enable && config.networking.useHostResolvConf; bootStage2 = pkgs.substituteAll { src = pkgs.runCommand "stage-2-init.sh" {} '' - sed '2i exec 1<>/dev/null' ${inputs.unstable}/nixos/modules/system/boot/stage-2-init.sh > $out + sed '2i exec 1<>/dev/null' ${unstable}/nixos/modules/system/boot/stage-2-init.sh > $out ''; shellDebug = "${pkgs.bashInteractive}/bin/bash"; shell = "${pkgs.bash}/bin/bash"; diff --git a/modules/builders.nix b/modules/builders.nix index 3c28a64..8edaaa9 100644 --- a/modules/builders.nix +++ b/modules/builders.nix @@ -1,4 +1,4 @@ -{ +_: { config, lib, ... diff --git a/modules/direnv.nix b/modules/direnv.nix new file mode 100644 index 0000000..803b9d3 --- /dev/null +++ b/modules/direnv.nix @@ -0,0 +1,27 @@ +_: {pkgs, ...}: { + environment = { + systemPackages = builtins.attrValues { + inherit + (pkgs) + nix-direnv + direnv + ; + }; + + variables = { + DIRENV_LOG_FORMAT = ""; + DIRENV_CONFIG = "${pkgs.nix-direnv}/share/nix-direnv"; + }; + }; + programs = { + zsh.interactiveShellInit = '' + eval "$(direnv hook zsh)" + ''; + bash.interactiveShellInit = '' + eval "$(direnv hook bash)" + ''; + fish.interactiveShellInit = '' + direnv hook fish | source + ''; + }; +} diff --git a/modules/git.nix b/modules/git.nix index 8909cb5..eb826d5 100644 --- a/modules/git.nix +++ b/modules/git.nix @@ -1,4 +1,4 @@ -{ +_: { pkgs, config, lib, diff --git a/modules/hardware.nix b/modules/hardware.nix index 84ff80d..cc6709e 100644 --- a/modules/hardware.nix +++ b/modules/hardware.nix @@ -1,4 +1,4 @@ -{ +_: { config, lib, ... diff --git a/modules/misc.nix b/modules/misc.nix index 30d442f..1545483 100644 --- a/modules/misc.nix +++ b/modules/misc.nix @@ -1,4 +1,4 @@ -{ +_: { lib, config, pkgs, diff --git a/modules/nix.nix b/modules/nix.nix index d5c53c8..b53d38f 100644 --- a/modules/nix.nix +++ b/modules/nix.nix @@ -1,34 +1,4 @@ -{ - pkgs, - inputs, - lib, - self, - ... -}: let - combined_flakes = - ( - #filter non-flakes from inputs - lib.filterAttrs ( - _: value: ( - !(lib.hasAttrByPath ["flake"] value) || !value.flake - ) - ) - inputs - ) - // { - #alias unstable - nixpkgs = inputs.unstable; - #add system flake - system = self; - }; -in { - #create registry from input flakes - nix.registry = lib.mapAttrs (_: value: {flake = value;}) combined_flakes; - #add all inputs to etc - environment.etc = lib.mapAttrs' (name: value: lib.nameValuePair "/nixpath/${name}" {source = value;}) combined_flakes; - #source the etc paths to nixPath - nix.nixPath = lib.mapAttrsToList (name: _: name + "=/etc/nixpath/${name}") combined_flakes; - +inputs: {pkgs, ...}: { #other nix settings nix = { package = inputs.nix.packages.${pkgs.system}.default; diff --git a/modules/pinning.nix b/modules/pinning.nix new file mode 100644 index 0000000..12769c2 --- /dev/null +++ b/modules/pinning.nix @@ -0,0 +1,12 @@ +inputs: {lib, ...}: let + alias = inputs // {nixpkgs = inputs.unstable;}; +in + lib.pipe alias [ + (lib.filterAttrs (_: v: v._type == "flake")) + (lib.mapAttrsToList (n: input: { + environment.etc."nixpath/${n}".source = input.outPath; + nix.nixPath = ["${n}=/etc/nixpath/${n}"]; + nix.registry.${n}.flake = input; + })) + lib.mkMerge + ] diff --git a/modules/shell.nix b/modules/shell.nix index 7722d1c..c62e438 100644 --- a/modules/shell.nix +++ b/modules/shell.nix @@ -1,5 +1,4 @@ -{ - inputs, +{fetch-rs, ...}: { pkgs, config, lib, @@ -11,11 +10,9 @@ (pkgs) page exa - direnv - nix-direnv ; inherit - (inputs.fetch-rs.packages.${pkgs.system}) + (fetch-rs.packages.${pkgs.system}) fetch-rs ; }; @@ -25,13 +22,13 @@ VISUAL = "nvim"; PAGER = "page"; SYSTEMD_PAGERSECURE = "true"; - DIRENV_LOG_FORMAT = ""; }; shellAliases = { #make sudo use aliases sudo = "sudo "; #paste link trick pastebin = "curl -F 'clbin=<-' https://clbin.com"; + termbin = "nc termbin.com 9999"; #nix stuff gc-check = "nix-store --gc --print-roots | egrep -v \"^(/nix/var|/run/\w+-system|\{memory|/proc)\""; #vim stuff @@ -49,9 +46,6 @@ lt = "exa --tree --level=2"; }; interactiveShellInit = "fetch-rs"; - pathsToLink = [ - "/share/nix-direnv" - ]; }; security.sudo = { enable = true; @@ -72,24 +66,29 @@ syntaxHighlighting.enable = true; histSize = 10000; histFile = "$HOME/.cache/zsh_history"; - shellInit = '' - eval "$(direnv hook zsh)" - ''; }; #starship starship = { enable = true; settings = { add_newline = false; - format = "$sudo\${custom.direnv} $cmd_duration \n $directory$git_branch$character"; + format = "$sudo$nix_shell\${custom.direnv}$cmd_duration\n$git_metrics$git_state$git_branch\n$directory$character"; character = { - success_symbol = "[ ](#9ece6a bold)"; - error_symbol = "[ ](#db4b4b bold)"; + success_symbol = "[\\$](#9ece6a bold)"; + error_symbol = "[\\$](#db4b4b bold)"; + }; + nix_shell = { + format = "[󱄅 ](#74b2ff)"; + heuristic = true; }; directory = { read_only = " "; }; + git_metrics = { + disabled = false; + }; git_branch = { + format = "[$symbol$branch(:$remote_branch)]($style)"; style = "bold red"; }; sudo = { @@ -103,7 +102,7 @@ custom.direnv = { format = "[\\[direnv\\]]($style)"; style = "#36c692"; - detect_folders = [".direnv"]; + when = "printenv DIRENV_FILE"; }; }; }; diff --git a/modules/sops.nix b/modules/sops.nix index ec2e363..c0028b4 100644 --- a/modules/sops.nix +++ b/modules/sops.nix @@ -1,18 +1,20 @@ { - inputs, - pkgs, + sops-nix, self, + ... +}: { + pkgs, config, ... }: { imports = [ - inputs.sops-nix.nixosModules.sops + sops-nix.nixosModules.sops ]; environment.systemPackages = [ pkgs.sops ]; sops = { - defaultSopsFile = self + "/systems/" + config.networking.hostName + "/secrets.yaml"; + defaultSopsFile = self + "/hosts/" + config.networking.hostName + "/secrets.yaml"; age.sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"]; }; } diff --git a/modules/theming.nix b/modules/theming.nix index 5e31f11..dc2e551 100644 --- a/modules/theming.nix +++ b/modules/theming.nix @@ -1,4 +1,4 @@ -{ +_: { pkgs, config, lib, diff --git a/pkgs/afk-cmds.nix b/pkgs/afk-cmds.nix index 14ea73a..918c89b 100644 --- a/pkgs/afk-cmds.nix +++ b/pkgs/afk-cmds.nix @@ -49,5 +49,5 @@ in mkdir -p $out/share/icons/hicolor/256x256/apps/ cp $src/afk-icon.png $out/share/icons/hicolor/256x256/apps/afk-icon.png ''; - cargoSha256 = "sha256-CPpFUdgb0zTZAVlv4uhJ0Y7eocCjuEZNgQJdNwV1FI4="; + cargoSha256 = "sha256-r20g5Tkj2ft1ho/fghg+qwiGOUay8HCIrBbg+y8kQXQ="; } diff --git a/pkgs/fastfetch.nix b/pkgs/fastfetch.nix index ce5d339..12fa003 100644 --- a/pkgs/fastfetch.nix +++ b/pkgs/fastfetch.nix @@ -8,7 +8,6 @@ imagemagick_light, libglvnd, libxcb, - makeWrapper, ocl-icd, opencl-headers, pciutils, @@ -31,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-sSQaXXKH/ZELdhbUKuvAj0gZ0fSO/Xjxsv/TU0Xq47k="; }; - nativeBuildInputs = [cmake makeWrapper pkg-config]; + nativeBuildInputs = [cmake pkg-config]; buildInputs = [ dbus diff --git a/pkgs/parrot.nix b/pkgs/parrot.nix index 2c540a2..1bc4d63 100644 --- a/pkgs/parrot.nix +++ b/pkgs/parrot.nix @@ -24,19 +24,21 @@ in pname = "parrot"; version = "1.6.0"; inherit src; - buildInputs = [ - libopus - openssl - ]; nativeBuildInputs = [ pkg-config cmake makeWrapper ]; + + buildInputs = [ + libopus + openssl + ]; + postInstall = '' wrapProgram $out/bin/parrot \ - --set PATH ${lib.makeBinPath [ + --prefix PATH ${lib.makeBinPath [ yt-dlp ffmpeg ]}''; diff --git a/pkgs/t-rex.nix b/pkgs/t-rex.nix index ebc28fb..c3dcd05 100644 --- a/pkgs/t-rex.nix +++ b/pkgs/t-rex.nix @@ -9,13 +9,12 @@ exec ${glibc}/lib64/ld-linux-x86-64.so.2 \ $out/t-rex --no-watchdog \$@ ''; - version = "0.26.5"; in - stdenv.mkDerivation { - inherit version; + stdenv.mkDerivation (finalAttrs: { + version = "0.26.5"; pname = "t-rex-miner"; src = fetchzip { - url = "https://github.com/trexminer/T-Rex/releases/download/${version}/t-rex-${version}-linux.tar.gz"; + url = "https://github.com/trexminer/T-Rex/releases/download/${finalAttrs.version}/t-rex-${finalAttrs.version}-linux.tar.gz"; sha256 = "sha256-eGOTfb03R2ck/6GMY6tPmTifYT9aVv3dNDQ5jRVlz58="; stripRoot = false; }; @@ -26,4 +25,4 @@ in echo "${wrapper}" > $out/bin/t-rex chmod +x $out/bin/t-rex ''; - } + })