diff --git a/flake.lock b/flake.lock index 799a4efb..c73393c5 100644 --- a/flake.lock +++ b/flake.lock @@ -1584,6 +1584,26 @@ "type": "github" } }, + "quickshell": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1743928855, + "narHash": "sha256-6skFnvfLbslUOieffviT+XNH/M1HOQDQJhJLsG0UM2o=", + "ref": "refs/heads/master", + "rev": "ed528268e0c0a2f6be2b5aca7089ebc3e214d446", + "revCount": 505, + "type": "git", + "url": "https://git.outfoxxed.me/outfoxxed/quickshell" + }, + "original": { + "type": "git", + "url": "https://git.outfoxxed.me/outfoxxed/quickshell" + } + }, "root": { "inputs": { "Kapowarr-src": "Kapowarr-src", @@ -1642,6 +1662,7 @@ "pokemon-colorscripts-src": "pokemon-colorscripts-src", "pr-tracker": "pr-tracker", "pre-commit-hooks": "pre-commit-hooks", + "quickshell": "quickshell", "secrets": "secrets", "sioyek-theme-src": "sioyek-theme-src", "smartinspect-src": "smartinspect-src", diff --git a/flake.nix b/flake.nix index 85ab87aa..1396f46a 100644 --- a/flake.nix +++ b/flake.nix @@ -416,6 +416,11 @@ repo = "git-hooks.nix"; type = "github"; }; + quickshell = { + inputs.nixpkgs.follows = "nixpkgs"; + type = "git"; + url = "https://git.outfoxxed.me/outfoxxed/quickshell"; + }; secrets = { inputs = { nixpkgs.follows = "nixpkgs"; diff --git a/inputs/default.nix b/inputs/default.nix index 79103532..81febbd7 100644 --- a/inputs/default.nix +++ b/inputs/default.nix @@ -194,7 +194,12 @@ let }; }; - agsInputs = { + shellInputs = { + quickshell = mkInput { + type = "git"; + url = "https://git.outfoxxed.me/outfoxxed/quickshell"; + }; + astal = mkInput { # owner = "Aylur"; repo = "astal"; @@ -434,7 +439,7 @@ in // nosInputs // bbsteamieInputs // desktopInputs.hyprlandInputs - // desktopInputs.agsInputs + // desktopInputs.shellInputs // (listToAttrs (map (x: { name = x.name or "${x.repo}-src"; value = mkSrc (removeAttrs x ["name"]); diff --git a/lib/flake/default.nix b/lib/flake/default.nix index d11bf381..04f0072c 100644 --- a/lib/flake/default.nix +++ b/lib/flake/default.nix @@ -1,6 +1,13 @@ inputs: let - inherit (builtins) removeAttrs; + inherit (builtins) functionArgs mapAttrs removeAttrs; in rec { + # This is for packages from flakes that don't offer overlays + overrideAll = pkgs: pkg: extraArgs: let + pkgFile = pkgs.lib.head (pkgs.lib.splitString [":"] pkg.meta.position); + args = functionArgs (import pkgFile); + in + pkg.override ((mapAttrs (n: v: pkgs.${n} or v) args) // extraArgs); + # Import pkgs from a nixpkgs instance mkPkgs = { system, @@ -20,6 +27,7 @@ in rec { inputs.self.overlays.appsPackages inputs.self.overlays.selfPackages inputs.self.overlays.scopedPackages + inputs.self.overlays.forced ] ++ (cfg.overlays or [])); config = diff --git a/overlays/README.md b/overlays/README.md index 1720a73d..3879794e 100644 --- a/overlays/README.md +++ b/overlays/README.md @@ -7,6 +7,7 @@ This directory contains every overlay exposed by this flake. | Name | Description | | ---- | ----------- | | `appsPackages` | This overlay puts every derivations for apps exposed by this flake under pkgs.appsPackages. | +| `forced` | Overrides packages from third party flakes that don't offer overlays. | | `misc-fixes` | Fixes build failures, missing meta attributes, evaluation failures, etc. of the current `nixpkgs` revision of this flake. | | `nix-version` | Overrides the nix package for everything so I don't need multiple versions. | | `scopedPackages` | This overlay puts every package scopes exposed by this flake under pkgs.scopedPackages. | diff --git a/overlays/default.nix b/overlays/default.nix index fe6307c3..8db84dce 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -27,6 +27,13 @@ in { of the current `nixpkgs` revision of this flake. ''; + forced = + overlay + (import ./forced self) + '' + Overrides packages from third party flakes that don't offer overlays. + ''; + nix-version = overlay (import ./nix-version self) diff --git a/overlays/forced/default.nix b/overlays/forced/default.nix new file mode 100644 index 00000000..4dc76ad4 --- /dev/null +++ b/overlays/forced/default.nix @@ -0,0 +1,15 @@ +self: final: prev: let + inherit (self.inputs) quickshell; + + overrideAll = self.lib.overrideAll final; +in { + quickshell = overrideAll quickshell.packages.${final.system}.default { + gitRev = quickshell.rev; + + buildStdenv = final.clangStdenv; + + debug = false; + withI3 = false; + withX11 = false; + }; +} diff --git a/overlays/nix-version/default.nix b/overlays/nix-version/default.nix index 6ec8bc03..3f802594 100644 --- a/overlays/nix-version/default.nix +++ b/overlays/nix-version/default.nix @@ -1,6 +1,6 @@ self: {nix ? null}: final: prev: let - inherit (builtins) functionArgs mapAttrs replaceStrings; - inherit (final.lib) generateSplicesForMkScope head splitString versions; + inherit (builtins) mapAttrs replaceStrings; + inherit (final.lib) generateSplicesForMkScope versions; inherit (self.inputs) nix-eval-jobs nix-fast-build; nullCheck = n: v: @@ -8,12 +8,7 @@ self: {nix ? null}: final: prev: let then prev.${n} else v; - # This is for packages from flakes that don't offer overlays - overrideAll = pkg: extraArgs: let - pkgFile = head (splitString [":"] pkg.meta.position); - args = functionArgs (import pkgFile); - in - pkg.override (mapAttrs (n: v: final.${n} or v) (args // extraArgs)); + overrideAll = self.lib.overrideAll final; in mapAttrs nullCheck { inherit nix;