mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2026-04-14 13:19:09 +02:00
feat: overhaul overlays
This commit is contained in:
parent
91f4393800
commit
130444f5d7
23 changed files with 406 additions and 246 deletions
|
|
@ -49,7 +49,11 @@ let
|
|||
pkgsFor = lib.genAttrs (import systems) (system:
|
||||
import inputs.nixpkgs {
|
||||
inherit system;
|
||||
overlays = [ self.overlays.default ];
|
||||
overlays = [
|
||||
self.overlays.default
|
||||
self.overlays.stables
|
||||
self.overlays.modifications
|
||||
];
|
||||
config.allowUnfree = true;
|
||||
}
|
||||
);
|
||||
|
|
|
|||
235
nix/overlays.nix
235
nix/overlays.nix
|
|
@ -6,93 +6,162 @@ in
|
|||
{
|
||||
flake = _:
|
||||
{
|
||||
overlays = {
|
||||
default = final: prev:
|
||||
let
|
||||
additions = final: _: import "${self}/pkgs/flake" { pkgs = final; inherit self lib; }
|
||||
// {
|
||||
swarsel-nix = import inputs.swarsel-nix {
|
||||
pkgs = prev;
|
||||
};
|
||||
zjstatus = inputs.zjstatus.packages.${prev.system}.default;
|
||||
};
|
||||
overlays =
|
||||
let
|
||||
nixpkgs-stable-versions = final: _:
|
||||
let
|
||||
nixpkgsInputs =
|
||||
lib.filterAttrs
|
||||
(name: _v: builtins.match "^nixpkgs-.*" name != null)
|
||||
inputs;
|
||||
|
||||
modifications = final: prev: {
|
||||
# vesktop = prev.vesktop.override {
|
||||
# withSystemVencord = true;
|
||||
# };
|
||||
rename = name: builtins.replaceStrings [ "nixpkgs-" ] [ "" ] name;
|
||||
|
||||
lib = prev.lib // {
|
||||
swarselsystems = self.outputs.swarselsystemsLib;
|
||||
hm = self.outputs.homeLib;
|
||||
mkPkgs = src:
|
||||
import src {
|
||||
inherit (final.stdenv.hostPlatform) system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in
|
||||
builtins.listToAttrs (map
|
||||
(name: {
|
||||
name = rename name;
|
||||
value = mkPkgs nixpkgsInputs.${name};
|
||||
})
|
||||
(builtins.attrNames nixpkgsInputs));
|
||||
|
||||
in
|
||||
rec {
|
||||
default = additions;
|
||||
additions = final: prev:
|
||||
let
|
||||
additions = final: _: import "${self}/pkgs/flake" { pkgs = final; inherit self lib; }
|
||||
// {
|
||||
swarsel-nix = import inputs.swarsel-nix {
|
||||
pkgs = prev;
|
||||
};
|
||||
zjstatus = inputs.zjstatus.packages.${prev.stdenv.hostPlatform.system}.default;
|
||||
};
|
||||
|
||||
firefox = prev.firefox.override {
|
||||
nativeMessagingHosts = [
|
||||
prev.tridactyl-native
|
||||
prev.browserpass
|
||||
# prev.plasma5Packages.plasma-browser-integration
|
||||
];
|
||||
in
|
||||
(additions final prev)
|
||||
// (nixpkgs-stable-versions final prev)
|
||||
// (inputs.niri-flake.overlays.niri final prev)
|
||||
// (inputs.noctalia.overlays.default final prev)
|
||||
// (inputs.vbc-nix.overlays.default final prev)
|
||||
// (inputs.nur.overlays.default final prev)
|
||||
// (inputs.emacs-overlay.overlay final prev)
|
||||
// (inputs.nix-topology.overlays.default final prev)
|
||||
// (inputs.nix-index-database.overlays.nix-index final prev)
|
||||
// (inputs.nixgl.overlay final prev)
|
||||
// (inputs.nix-minecraft.overlay final prev)
|
||||
// (inputs.nixos-extra-modules.overlays.default final prev);
|
||||
|
||||
|
||||
stables = final: prev:
|
||||
let
|
||||
mkUsePkgsFrom = pkgsFrom: names:
|
||||
builtins.listToAttrs (map
|
||||
(name: {
|
||||
inherit name;
|
||||
value = pkgsFrom.${name};
|
||||
})
|
||||
names);
|
||||
|
||||
from =
|
||||
let
|
||||
stablePackages = nixpkgs-stable-versions final prev;
|
||||
in
|
||||
key:
|
||||
stablePackages.${key} or (throw "Missing nixpkgs input nixpkgs-${key}");
|
||||
|
||||
in
|
||||
(mkUsePkgsFrom (from "dev") [
|
||||
# "swayosd"
|
||||
"firezone-relay"
|
||||
"firezone-server-web"
|
||||
"firezone-server-api"
|
||||
"firezone-server-domain"
|
||||
])
|
||||
// (mkUsePkgsFrom (from "stable24_05") [
|
||||
"awscli2"
|
||||
])
|
||||
// (mkUsePkgsFrom (from "stable24_11") [
|
||||
"python39"
|
||||
"spotify"
|
||||
"vieb"
|
||||
])
|
||||
// (mkUsePkgsFrom (from "stable25_05") [
|
||||
"steam-fhsenv-without-steam"
|
||||
"transmission_3"
|
||||
])
|
||||
// (mkUsePkgsFrom (from "stable") [
|
||||
# "anki"
|
||||
"azure-cli"
|
||||
# "bat-extras.batgrep"
|
||||
# "bluez"
|
||||
"calibre"
|
||||
# "chromium"
|
||||
"dwarfs"
|
||||
"gotenberg"
|
||||
"khal"
|
||||
"libreoffice"
|
||||
"libreoffice-qt"
|
||||
"nerd-fonts-symbols-only"
|
||||
"noto-fonts"
|
||||
"noto-fonts-cjk-sans"
|
||||
"noto-fonts-color-emoji"
|
||||
# "pipewire"
|
||||
"podman"
|
||||
"teams-for-linux"
|
||||
# "vesktop"
|
||||
"virtualbox"
|
||||
]);
|
||||
|
||||
modifications = final: prev:
|
||||
let
|
||||
modifications = final: prev: {
|
||||
# vesktop = prev.vesktop.override {
|
||||
# withSystemVencord = true;
|
||||
# };
|
||||
|
||||
lib = prev.lib // {
|
||||
swarselsystems = self.outputs.swarselsystemsLib;
|
||||
hm = self.outputs.homeLib;
|
||||
};
|
||||
|
||||
firefox = prev.firefox.override {
|
||||
nativeMessagingHosts = [
|
||||
prev.tridactyl-native
|
||||
prev.browserpass
|
||||
# prev.plasma5Packages.plasma-browser-integration
|
||||
];
|
||||
};
|
||||
|
||||
isync = prev.isync.override {
|
||||
withCyrusSaslXoauth2 = true;
|
||||
};
|
||||
|
||||
mgba = final.swarsel-mgba;
|
||||
|
||||
noctalia-shell = prev.noctalia-shell.override {
|
||||
calendarSupport = true;
|
||||
};
|
||||
|
||||
retroarch = prev.retroarch.withCores (cores: with cores; [
|
||||
snes9x # snes
|
||||
nestopia # nes
|
||||
dosbox # dos
|
||||
scummvm # scumm
|
||||
vba-m # gb/a
|
||||
mgba # gb/a
|
||||
melonds # ds
|
||||
dolphin # gc/wii
|
||||
]);
|
||||
|
||||
};
|
||||
|
||||
isync = prev.isync.override {
|
||||
withCyrusSaslXoauth2 = true;
|
||||
};
|
||||
|
||||
mgba = final.swarsel-mgba;
|
||||
|
||||
retroarch = prev.retroarch.withCores (cores: with cores; [
|
||||
snes9x # snes
|
||||
nestopia # nes
|
||||
dosbox # dos
|
||||
scummvm # scumm
|
||||
vba-m # gb/a
|
||||
mgba # gb/a
|
||||
melonds # ds
|
||||
dolphin # gc/wii
|
||||
]);
|
||||
|
||||
};
|
||||
|
||||
nixpkgs-stable-versions = final: _:
|
||||
let
|
||||
nixpkgsInputs =
|
||||
lib.filterAttrs
|
||||
(name: _v: builtins.match "^nixpkgs-.*" name != null)
|
||||
inputs;
|
||||
|
||||
rename = name: builtins.replaceStrings [ "nixpkgs-" ] [ "" ] name;
|
||||
|
||||
mkPkgs = src:
|
||||
import src {
|
||||
inherit (final) system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in
|
||||
builtins.listToAttrs (map
|
||||
(name: {
|
||||
name = rename name;
|
||||
value = mkPkgs nixpkgsInputs.${name};
|
||||
})
|
||||
(builtins.attrNames nixpkgsInputs));
|
||||
|
||||
in
|
||||
lib.recursiveUpdate
|
||||
(
|
||||
(additions final prev)
|
||||
// (nixpkgs-stable-versions final prev)
|
||||
// (inputs.niri-flake.overlays.niri final prev)
|
||||
// (inputs.noctalia.overlays.default final prev)
|
||||
// (inputs.vbc-nix.overlays.default final prev)
|
||||
// (inputs.nur.overlays.default final prev)
|
||||
// (inputs.emacs-overlay.overlay final prev)
|
||||
// (inputs.nix-topology.overlays.default final prev)
|
||||
// (inputs.nix-index-database.overlays.nix-index final prev)
|
||||
// (inputs.nixgl.overlay final prev)
|
||||
// (inputs.nix-minecraft.overlay final prev)
|
||||
// (inputs.nixos-extra-modules.overlays.default final prev)
|
||||
)
|
||||
(modifications final prev);
|
||||
};
|
||||
in
|
||||
modifications final prev;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,6 +42,8 @@
|
|||
};
|
||||
overlays = [
|
||||
self.overlays.default
|
||||
self.overlays.stables
|
||||
self.overlays.modifications
|
||||
];
|
||||
};
|
||||
inherit pkgs;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue