refactor: use overlays for my custom packages
All checks were successful
Discord / discord commits (push) Has been skipped

This commit is contained in:
matt1432 2025-03-04 16:40:21 -05:00
parent a4829b0bab
commit 8ba117e22b
40 changed files with 176 additions and 169 deletions

View file

@ -8,7 +8,7 @@
secrets,
...
}: let
inherit (self.lib) mkVersion mkNixOS mkNixOnDroid mkPkgs;
inherit (self.lib) mkNixOS mkNixOnDroid mkPkgs;
perSystem = attrs:
nixpkgs.lib.genAttrs (import systems) (system:
@ -103,13 +103,9 @@
perSystem (pkgs:
import ./devShells {inherit pkgs self;});
packages =
perSystem (pkgs:
import ./packages {inherit inputs mkVersion pkgs;});
packages = perSystem (pkgs: pkgs.selfPackages);
scopedPackages =
perSystem (pkgs:
import ./scopedPackages {inherit inputs mkVersion pkgs;});
scopedPackages = perSystem (pkgs: pkgs.scopedPackages);
formatter = perSystem (pkgs: pkgs.alejandra);
};

View file

@ -1,8 +1,4 @@
{
pkgs,
self,
...
}: let
{pkgs, ...}: let
inherit (pkgs.lib) getExe mapAttrs;
mkApp = pkg: {
@ -10,4 +6,4 @@
type = "app";
};
in
mapAttrs (n: v: mkApp v) self.appsPackages.${pkgs.system}
mapAttrs (n: v: mkApp v) pkgs.appsPackages

View file

@ -1,12 +1,9 @@
{
inputs,
pkgs,
...
}: let
inherit (pkgs.lib) listToAttrs nameValuePair;
{inputs, ...}: (final: prev: {
appsPackages = let
inherit (final.lib) listToAttrs nameValuePair;
buildApp = attrs: (pkgs.callPackage ./buildApp.nix ({} // inputs // attrs));
callPackage = file: pkgs.callPackage file ({inherit buildApp;} // inputs);
buildApp = attrs: (final.callPackage ./buildApp.nix ({} // inputs // attrs));
callPackage = file: final.callPackage file ({inherit buildApp;} // inputs);
in
listToAttrs (map (x: nameValuePair x (callPackage ./${x})) [
"extract-subs"
@ -14,4 +11,5 @@ in
"mc-mods"
"pin-inputs"
"update-sources"
])
]);
})

View file

@ -3,7 +3,6 @@ defaultSession: {
lib,
mainUser,
pkgs,
self,
...
}: let
inherit (lib) attrValues makeSearchPathOutput;
@ -16,7 +15,7 @@ in {
remotePlay.openFirewall = true;
extraCompatPackages = [
self.packages.${pkgs.system}.proton-ge-latest
pkgs.selfPackages.proton-ge-latest
];
# https://github.com/NixOS/nixpkgs/issues/25444#issuecomment-1977416787
@ -75,7 +74,7 @@ in {
pkgs.steam-rom-manager
pkgs.r2modman
self.packages.${pkgs.system}.protonhax
pkgs.selfPackages.protonhax
# Ryujinx ACNH crashes on Vulkan
pkgs.ryujinx

View file

@ -3,11 +3,10 @@
lib,
mainUser,
pkgs,
self,
...
}: let
inherit (lib) concatStringsSep getExe removePrefix;
inherit (self.packages.${pkgs.system}) gpu-screen-recorder gsr-kms-server;
inherit (pkgs.selfPackages) gpu-screen-recorder gsr-kms-server;
hyprPkgs = config.home-manager.users.${mainUser}.wayland.windowManager.hyprland.finalPackage;

View file

@ -1,7 +1,6 @@
{
nix-gaming,
pkgs,
self,
...
}: {
imports = [
@ -15,7 +14,7 @@
remotePlay.openFirewall = true;
extraCompatPackages = [
self.packages.${pkgs.system}.proton-ge-latest
pkgs.selfPackages.proton-ge-latest
];
platformOptimizations.enable = true;

View file

@ -26,7 +26,7 @@
customComponents = builtins.attrValues {
inherit
(self.scopedPackages.${pkgs.system}.hass-components)
(pkgs.scopedPackages.hass-components)
extended-ollama-conversation # url is without subdirectory
tuya-local
;

View file

@ -35,7 +35,7 @@
customComponents = builtins.attrValues {
inherit
(self.scopedPackages.${pkgs.system}.hass-components)
(pkgs.scopedPackages.hass-components)
yamaha-soundbar
;
};

View file

@ -3,13 +3,12 @@
dracul-ha-src,
lib,
pkgs,
self,
...
}: let
inherit (lib) attrValues singleton;
inherit (pkgs.writers) writeYAML;
material-rounded-theme-src = self.scopedPackages.${pkgs.system}.lovelace-components.material-rounded-theme.src;
material-rounded-theme-src = pkgs.scopedPackages.lovelace-components.material-rounded-theme.src;
in {
services.home-assistant = {
configFiles = {
@ -84,7 +83,7 @@ in {
customComponents = attrValues {
inherit
(self.scopedPackages.${pkgs.system}.hass-components)
(pkgs.scopedPackages.hass-components)
material-symbols
;
};
@ -98,7 +97,7 @@ in {
;
inherit
(self.scopedPackages.${pkgs.system}.lovelace-components)
(pkgs.scopedPackages.lovelace-components)
big-slider-card
custom-sidebar
material-rounded-theme

View file

@ -34,7 +34,7 @@ in {
services.home-assistant = {
customComponents = attrValues {
inherit
(self.scopedPackages.${pkgs.system}.hass-components)
(pkgs.scopedPackages.hass-components)
netdaemon
;
};

View file

@ -1,13 +1,12 @@
{
config,
pkgs,
self,
...
}: {
services.home-assistant = {
customComponents = builtins.attrValues {
inherit
(self.scopedPackages.${pkgs.system}.hass-components)
(pkgs.scopedPackages.hass-components)
spotifyplus
;
};

View file

@ -1,9 +1,5 @@
{configPath, ...}: {
pkgs,
self,
...
}: let
inherit (self.packages.${pkgs.system}) jmusicbot;
{configPath, ...}: {pkgs, ...}: let
inherit (pkgs.selfPackages) jmusicbot;
rwPath = configPath + "/music/jbots";
image = pkgs.callPackage ./images/jmusicbot.nix {inherit pkgs jmusicbot;};

View file

@ -1,13 +1,12 @@
{
config,
pkgs,
self,
...
}: {
services.homepage-dashboard = {
enable = true;
package = self.packages.${pkgs.system}.homepage;
package = pkgs.selfPackages.homepage;
listenPort = 3020;

View file

@ -2,11 +2,10 @@
config,
mainUser,
pkgs,
self,
...
} @ extraArgs: let
inherit (self.appsPackages.${pkgs.system}) extract-subs;
inherit (self.packages.${pkgs.system}) subscleaner;
inherit (pkgs.appsPackages) extract-subs;
inherit (pkgs.selfPackages) subscleaner;
convert-mkv = pkgs.callPackage ./convert.nix {};
bazarr-bulk = pkgs.callPackage ./syncing.nix ({} // extraArgs);

View file

@ -97,7 +97,7 @@
enable = true;
theme = "dracula";
themePackages = [
self.scopedPackages.${pkgs.system}.dracula.plymouth
pkgs.scopedPackages.dracula.plymouth
];
};

View file

@ -1,11 +1,10 @@
{
lib,
pkgs,
self,
...
}: let
inherit (lib) mkDefault mkBefore;
inherit (self.packages.${pkgs.system}) pam-fprint-grosshack;
inherit (pkgs.selfPackages) pam-fprint-grosshack;
pam_fprintd_grosshackSo = "${pam-fprint-grosshack}/lib/security/pam_fprintd_grosshack.so";

View file

@ -9,7 +9,10 @@
l:
nameValuePair
l
((pkgs.callPackage "${self}/homeManagerModules/neovim/langs/${l}/shell.nix" {inherit self;}).overrideAttrs (o: {
((pkgs.callPackage
"${self}/homeManagerModules/neovim/langs/${l}/shell.nix"
({} // pkgs.selfPackages))
.overrideAttrs (o: {
meta.description = "${l} shell to be loaded by my Neovim config dynamically.";
}))
)

View file

@ -4,7 +4,7 @@ self: {
pkgs,
...
}: let
inherit (self.scopedPackages.${pkgs.system}) firefoxAddons;
inherit (pkgs.scopedPackages) firefoxAddons;
inherit (lib) attrsToList attrValues mkIf mkOption singleton types;

View file

@ -4,8 +4,7 @@
nodejs_latest,
vscode-langservers-extracted,
nodePackages,
self,
system,
some-sass-language-server,
...
}:
mkShell {
@ -16,6 +15,6 @@ mkShell {
nodePackages.npm
self.packages.${system}.some-sass-language-server
some-sass-language-server
];
}

View file

@ -9,10 +9,10 @@ self: {
in {
imports = [
./starship
./trash
(import ./git self)
(import ./misc self)
(import ./nix-tools self)
(import ./trash self)
];
options.programs.bash = {

View file

@ -26,7 +26,7 @@ in {
signing.format = "ssh";
includes = [
{path = toString self.scopedPackages.${pkgs.system}.dracula.git;}
{path = toString pkgs.scopedPackages.dracula.git;}
(mkDefaultRemote "https://github.com")
(mkDefaultRemote "git@github.com")

View file

@ -48,7 +48,7 @@ in {
enable = true;
config.theme = "dracula-bat";
themes.dracula-bat.src = self.scopedPackages.${pkgs.system}.dracula.bat;
themes.dracula-bat.src = pkgs.scopedPackages.dracula.bat;
extraPackages = attrValues {
inherit (pkgs.bat-extras) batman;

View file

@ -1,4 +1,4 @@
self: {
{
config,
lib,
pkgs,
@ -7,7 +7,7 @@ self: {
inherit (lib) elem mkIf;
cfg = config.programs.bash;
trashPkg = self.packages.${pkgs.system}.trash-d;
trashPkg = pkgs.selfPackages.trash-d;
isCorrectPlatform = elem pkgs.system (trashPkg.meta.platforms or [pkgs.system]);
in {
config = mkIf (cfg.enable && isCorrectPlatform) {
@ -15,7 +15,4 @@ in {
programs.bash.shellAliases.rm = "trash";
};
# For accurate stack trace
_file = ./default.nix;
}

View file

@ -15,6 +15,9 @@ in rec {
[
(inputs.self.overlays.nix-version {inherit nix;})
inputs.self.overlays.misc-fixes
inputs.self.overlays.appsPackages
inputs.self.overlays.selfPackages
inputs.self.overlays.scopedPackages
]
++ (cfg.overlays or []);
config =

View file

@ -34,6 +34,7 @@ in {
extraPackages = cfg.astalLibs;
# FIXME: this makes sure we use my overlayed version for gtk4-session-lock
# try to fix this with overlays
gtk4-layer-shell = pkgs.gtk4-layer-shell;
};
@ -116,7 +117,7 @@ in {
wayfreeze
;
inherit
(self.packages.${pkgs.system})
(pkgs.selfPackages)
coloryou
;
})

View file

@ -22,7 +22,7 @@ in {
environment.systemPackages = remove null (attrValues {
inherit
(self.packages.${pkgs.system})
(pkgs.selfPackages)
pokemon-colorscripts
repl
;

View file

@ -25,9 +25,9 @@ in {
./modules/dconf.nix
./modules/printer.nix
./modules/ratbag-mice.nix
(import ./modules/audio.nix self)
(import ./modules/packages.nix self)
(import ./modules/ratbag-mice.nix self)
(import ./modules/security.nix self)
];

View file

@ -4,7 +4,7 @@ self: {
pkgs,
...
}: let
inherit (self.scopedPackages.${pkgs.system}) mpvScripts;
inherit (pkgs.scopedPackages) mpvScripts;
inherit (lib) attrValues mkIf;

View file

@ -155,7 +155,7 @@ in {
startup_commands = "toggle_custom_color";
ui_font = "JetBrainsMono Nerd Font Mono Regular";
font_size = "24";
source = toString self.scopedPackages.${pkgs.system}.dracula.sioyek;
source = toString pkgs.scopedPackages.dracula.sioyek;
};
};
};

View file

@ -1,10 +1,10 @@
self: {
{
config,
lib,
pkgs,
...
}: let
inherit (self.packages.${pkgs.system}) libratbag piper;
inherit (pkgs.selfPackages) libratbag piper;
inherit (lib) mkIf;
cfg = config.roles.desktop;
@ -20,7 +20,4 @@ in {
piper
];
};
# For accurate stack trace
_file = ./ratbag-mice.nix;
}

View file

@ -4,7 +4,7 @@ self: {
pkgs,
...
}: let
inherit (self.scopedPackages.${pkgs.system}) dracula;
inherit (pkgs.scopedPackages) dracula;
inherit (lib) mkIf;

View file

@ -9,7 +9,7 @@ self: {
cfg = osConfig.roles.desktop;
hyprpaper = self.inputs.hyprpaper.packages.${pkgs.system}.default;
wallpaper = toString self.scopedPackages.${pkgs.system}.dracula.wallpaper;
wallpaper = toString pkgs.scopedPackages.dracula.wallpaper;
in {
config = mkIf cfg.enable {
home.packages = [hyprpaper];

View file

@ -4,7 +4,7 @@ self: {
pkgs,
...
}: let
inherit (self.scopedPackages.${pkgs.system}) dracula;
inherit (pkgs.scopedPackages) dracula;
inherit (lib) mkIf;

View file

@ -1,10 +1,7 @@
{
pkgs,
self,
}: let
pkgs: let
inherit (pkgs.lib) mapAttrs' nameValuePair;
in
mapAttrs'
(name: app:
nameValuePair "app_${name}" app)
self.appsPackages.${pkgs.system}
pkgs.appsPackages

View file

@ -7,10 +7,10 @@
}: let
inherit (self.lib.attrs) recursiveUpdateList;
apps = perSystem (pkgs: import ./apps {inherit pkgs self;});
apps = perSystem (import ./apps);
devices = perSystem (pkgs: import ./devices {inherit pkgs self;});
devShells = perSystem (pkgs: import ./devShells {inherit pkgs self;});
packages = perSystem (pkgs: import ./packages {inherit pkgs self;});
packages = perSystem (import ./packages);
in {
inherit apps devices devShells packages;

View file

@ -1,7 +1,4 @@
{
pkgs,
self,
}: let
pkgs: let
inherit (pkgs.lib) elem filterAttrs hasAttr mapAttrs' nameValuePair;
packages =
@ -10,7 +7,7 @@
!(hasAttr "platforms" v.meta)
|| elem pkgs.system v.meta.platforms
)
self.packages.${pkgs.system};
pkgs.selfPackages;
in
mapAttrs'
(name: pkg:

View file

@ -2,11 +2,23 @@
self ? {},
description ? false,
}: let
inputs = self.inputs // {inherit self;};
overlay = mod: desc:
if description
then desc
else mod;
in {
appsPackages =
overlay
(import ../apps/packages.nix {
inherit inputs;
})
''
This overlay puts every derivations for apps exposed by this flake
under pkgs.appsPackages.
'';
misc-fixes =
overlay
(import ./misc-fixes)
@ -22,6 +34,28 @@ in {
Overrides the nix package for everything so I don't need multiple versions.
'';
scopedPackages =
overlay
(import ../scopedPackages {
inherit (self.lib) mkVersion;
inherit inputs;
})
''
This overlay puts every package scopes exposed by this flake
under pkgs.scopedPackages.
'';
selfPackages =
overlay
(import ../packages {
inherit (self.lib) mkVersion;
inherit inputs;
})
''
This overlay puts every derivations for packages exposed by this flake
under pkgs.selfPackages.
'';
xdg-desktop-portal-kde =
overlay
(import ./xdg-desktop-portal-kde)

View file

@ -1,54 +1,55 @@
{
inputs,
mkVersion,
pkgs,
...
}: {
coloryou = pkgs.callPackage ./coloryou {};
}: (final: prev: {
selfPackages = {
coloryou = final.callPackage ./coloryou {};
gpu-screen-recorder = pkgs.callPackage ./gpu-screen-recorder/gpu-screen-recorder.nix {
gpu-screen-recorder = final.callPackage ./gpu-screen-recorder/gpu-screen-recorder.nix {
inherit (inputs) gpu-screen-recorder-src;
};
gsr-kms-server = pkgs.callPackage ./gpu-screen-recorder/gsr-kms-server.nix {
gsr-kms-server = final.callPackage ./gpu-screen-recorder/gsr-kms-server.nix {
inherit (inputs) gpu-screen-recorder-src;
};
homepage = pkgs.callPackage ./homepage {};
homepage = final.callPackage ./homepage {};
jmusicbot = pkgs.callPackage ./jmusicbot {};
jmusicbot = final.callPackage ./jmusicbot {};
libratbag = pkgs.callPackage ./libratbag {
libratbag = final.callPackage ./libratbag {
inherit (inputs) libratbag-src;
};
librespot-auth = pkgs.callPackage ./librespot-auth {};
librespot-auth = final.callPackage ./librespot-auth {};
pam-fprint-grosshack = pkgs.callPackage ./pam-fprint-grosshack {};
pam-fprint-grosshack = final.callPackage ./pam-fprint-grosshack {};
piper = pkgs.callPackage ./piper {
piper = final.callPackage ./piper {
inherit (inputs) piper-src;
};
pokemon-colorscripts = pkgs.callPackage ./pokemon-colorscripts {
pokemon-colorscripts = final.callPackage ./pokemon-colorscripts {
inherit (inputs) pokemon-colorscripts-src;
inherit mkVersion;
};
proton-ge-latest = pkgs.callPackage ./proton-ge-latest {};
proton-ge-latest = final.callPackage ./proton-ge-latest {};
protonhax = pkgs.callPackage ./protonhax {};
protonhax = final.callPackage ./protonhax {};
repl = pkgs.callPackage ./repl {};
repl = final.callPackage ./repl {};
some-sass-language-server = pkgs.callPackage ./some-sass-language-server {};
some-sass-language-server = final.callPackage ./some-sass-language-server {};
subscleaner = pkgs.callPackage ./subscleaner {
subscleaner = final.callPackage ./subscleaner {
inherit (inputs) poetry2nix subscleaner-src;
};
trash-d = pkgs.callPackage ./trash-d {
trash-d = final.callPackage ./trash-d {
inherit (inputs) trash-d-src;
};
urllib3 = pkgs.callPackage ./urllib3 {};
}
urllib3 = final.callPackage ./urllib3 {};
};
})

View file

@ -1,18 +1,18 @@
{
inputs ? {},
mkVersion ? {},
pkgs ? {},
description ? false,
}: let
inherit (pkgs.lib) recurseIntoAttrs;
}: (final: prev: let
inherit (final.lib) recurseIntoAttrs;
mkScope = file: desc:
if description
then desc
else
recurseIntoAttrs
(pkgs.callPackage file ({inherit mkVersion;} // inputs));
(final.callPackage file ({inherit mkVersion;} // inputs));
in {
scopedPackages = {
dracula = mkScope ./dracula ''
Custom derivations that each represent an app's Dracula Theme.
'';
@ -32,4 +32,5 @@ in {
mpvScripts = mkScope ./mpv-scripts ''
MPV scripts I use that aren't in nixpkgs.
'';
}
};
})

View file

@ -1,5 +1,4 @@
{
self,
smartinspect-src,
spotifywebapi-src,
pkgs,
@ -11,7 +10,7 @@
spotifywebapi = pkgs.callPackage ./spotifywebapi.nix {
inherit python3Packages smartinspect spotifywebapi-src;
};
urllib3 = self.packages.${pkgs.system}.urllib3.override {
urllib3 = pkgs.selfPackages.urllib3.override {
inherit python3Packages;
};
}