203 lines
6.7 KiB
Nix
203 lines
6.7 KiB
Nix
{ nixpkgs, nixpkgs-unstable, ... }@inputs:
|
|
let
|
|
overlay-unstable = final: prev: {
|
|
stable = import nixpkgs {
|
|
config.allowUnfree = true;
|
|
system = prev.system;
|
|
};
|
|
unstable = import nixpkgs-unstable {
|
|
config.allowUnfree = true;
|
|
system = prev.system;
|
|
};
|
|
x86 = import nixpkgs-unstable {
|
|
system = prev.system;
|
|
config.allowUnsupportedSystem = true;
|
|
};
|
|
};
|
|
overlay-needs-unstable = final: prev: {
|
|
# Typst updates really quickly.
|
|
typst = final.unstable.typst;
|
|
typst-lsp = final.unstable.typst-lsp;
|
|
# Update to v7 beforehand
|
|
peertube =
|
|
assert (builtins.compareVersions prev.peertube.version "7.0.1" <= 0);
|
|
final.unstable.peertube;
|
|
};
|
|
overlay-imported = final: prev: {
|
|
# sway = prev.sway.override { sway-unwrapped = final.swayfx-unwrapped; };
|
|
deploy-rs = inputs.deploy-rs.packages.default;
|
|
dtth-phanpy = inputs.dtth-phanpy.packages.${final.system}.default;
|
|
matrix-conduit = inputs.conduit.packages.${final.system}.default;
|
|
youmubot = inputs.youmubot.packages.${final.system}.youmubot;
|
|
|
|
# A list of source-style inputs.
|
|
sources = final.lib.attrsets.filterAttrs (name: f: !(builtins.hasAttr "outputs" f)) inputs;
|
|
};
|
|
|
|
overlay-versioning = final: prev: {
|
|
|
|
input-remapper = final.unstable.input-remapper;
|
|
|
|
kakoune-unwrapped = prev.kakoune-unwrapped.overrideAttrs (attrs: {
|
|
version = "r${builtins.substring 0 6 inputs.kakoune.rev}";
|
|
src = inputs.kakoune;
|
|
patches = [
|
|
# patches in the original package was already applied
|
|
];
|
|
});
|
|
|
|
librewolf = (
|
|
prev.librewolf.override {
|
|
nativeMessagingHosts = with final; [ kdePackages.plasma-browser-integration ];
|
|
}
|
|
);
|
|
|
|
vikunja =
|
|
# builtins.seq
|
|
# (final.lib.assertMsg (prev.vikunja.version == "0.24.5") "Vikunja probably doesn't need custom versions anymore")
|
|
(final.callPackage ./packages/common/vikunja.nix { });
|
|
|
|
luminance = prev.luminance.overrideAttrs (attrs: {
|
|
nativeBuildInputs = attrs.nativeBuildInputs ++ [ final.wrapGAppsHook ];
|
|
buildInputs = attrs.buildInputs ++ [ final.glib ];
|
|
postInstall =
|
|
attrs.postInstall
|
|
+ ''
|
|
glib-compile-schemas $out/share/glib-2.0/schemas
|
|
'';
|
|
});
|
|
|
|
vesktop = prev.vesktop.overrideAttrs (attrs: {
|
|
postFixup =
|
|
let
|
|
flagToReplace =
|
|
if final.lib.hasInfix "--enable-wayland-ime=true" attrs.postFixup then
|
|
"--enable-wayland-ime=true"
|
|
else
|
|
"--enable-wayland-ime";
|
|
in
|
|
builtins.replaceStrings
|
|
[ "NIXOS_OZONE_WL" flagToReplace ]
|
|
[ "WAYLAND_DISPLAY" "${flagToReplace} --wayland-text-input-version=3" ]
|
|
attrs.postFixup;
|
|
});
|
|
|
|
rofi-wayland-unwrapped =
|
|
assert final.lib.assertMsg
|
|
(builtins.compareVersions prev.rofi-wayland-unwrapped.version "1.7.8+wayland1" <= 0)
|
|
"We only need this for https://github.com/lbonn/rofi/commit/f2f22e7edc635f7e4022afcf81a411776268c1c3. Use upstream package instead";
|
|
if prev.rofi-wayland-unwrapped.version == "1.7.8+wayland1" then
|
|
prev.rofi-wayland-unwrapped.overrideAttrs (prev: {
|
|
src = final.fetchFromGitHub {
|
|
owner = "lbonn";
|
|
repo = "rofi";
|
|
rev = "3bec3fac59394a475d162e72d5be2fb042115274";
|
|
fetchSubmodules = true;
|
|
hash = "sha256-xkf5HWXvzanT9tCDHbVpgUAmQlqmrPMlnv6MbcN0k9E=";
|
|
};
|
|
})
|
|
else
|
|
prev.rofi-wayland-unwrapped;
|
|
|
|
python312 = prev.python312.override {
|
|
packageOverrides = pfinal: pprev: {
|
|
langchain =
|
|
assert final.lib.assertMsg (
|
|
pprev.langchain.version == "0.3.25" || pprev.langchain.version == "0.3.24-fix"
|
|
) "Revert to 0.3.24 has been applied, remove overlay";
|
|
pprev.langchain.overrideAttrs (
|
|
afinal: aprev: {
|
|
version = "0.3.24-fix";
|
|
src = final.fetchFromGitHub {
|
|
owner = "langchain-ai";
|
|
repo = "langchain";
|
|
tag = "langchain==${afinal.version}";
|
|
hash = "sha256-Up/pH2TxLPiPO49oIa2ZlNeH3TyN9sZSlNsqOIRmlxc=";
|
|
};
|
|
}
|
|
);
|
|
};
|
|
};
|
|
|
|
open-webui =
|
|
assert final.lib.assertMsg (
|
|
builtins.compareVersions prev.open-webui.version "0.6.9" == -1
|
|
) "open-webui >=0.6.9 is upstream, remove overlay to upgrade";
|
|
prev.open-webui.overrideAttrs (
|
|
afinal: aprev: {
|
|
version = "0.6.9";
|
|
src = final.fetchFromGitHub {
|
|
owner = "open-webui";
|
|
repo = "open-webui";
|
|
rev = "v${afinal.version}";
|
|
hash = "sha256-Eib5UpPPQHXHOBVWrsNH1eEJrF8Vx9XshGYUnnAehpM=";
|
|
};
|
|
|
|
makeWrapperArgs = [ "--set FRONTEND_BUILD_DIR ${afinal.passthru.frontend}/share/open-webui" ];
|
|
|
|
passthru.frontend = aprev.passthru.frontend.overrideAttrs (
|
|
fafinal: faprev: {
|
|
src = afinal.src;
|
|
version = afinal.version;
|
|
npmDepsHash = "sha256-Vcc8ExET53EVtNUhb4JoxYIUWoQ++rVTpxUPgcZ+GNI=";
|
|
npmDeps = final.fetchNpmDeps {
|
|
inherit (fafinal) src;
|
|
name = "${fafinal.pname}-${fafinal.version}-npm-deps";
|
|
hash = fafinal.npmDepsHash;
|
|
};
|
|
}
|
|
);
|
|
}
|
|
);
|
|
};
|
|
|
|
overlay-libs = final: prev: {
|
|
libs.crane = inputs.crane.mkLib final;
|
|
};
|
|
|
|
overlay-packages = final: prev: {
|
|
kak-tree-sitter = final.callPackage ./packages/common/kak-tree-sitter {
|
|
rustPlatform = final.unstable.rustPlatform;
|
|
};
|
|
|
|
kak-lsp = final.unstable.rustPlatform.buildRustPackage {
|
|
name = "kak-lsp";
|
|
src = inputs.kak-lsp;
|
|
cargoLock.lockFile = "${inputs.kak-lsp}/Cargo.lock";
|
|
buildInputs = [ final.libiconv ];
|
|
|
|
meta.mainProgram = "kak-lsp";
|
|
};
|
|
|
|
zen-browser-bin = inputs.zen-browser.packages.${final.stdenv.system}.zen-browser.override {
|
|
inherit (inputs.zen-browser.packages.${final.stdenv.system}) zen-browser-unwrapped;
|
|
wrapFirefox =
|
|
opts:
|
|
final.wrapFirefox (
|
|
opts
|
|
// {
|
|
nativeMessagingHosts = with final; [ kdePackages.plasma-browser-integration ];
|
|
}
|
|
);
|
|
# zen-browser-unwrapped = final.callPackage inputs.zen-browser.packages.${final.stdenv.system}.zen-browser-unwrapped.override {
|
|
# sources = inputs.zen-browser.inputs;
|
|
# };
|
|
};
|
|
};
|
|
in
|
|
[
|
|
inputs.mpd-mpris.overlays.default
|
|
inputs.rust-overlay.overlays.default
|
|
inputs.niri.overlays.niri
|
|
|
|
overlay-unstable
|
|
overlay-needs-unstable
|
|
overlay-packages
|
|
overlay-imported
|
|
overlay-versioning
|
|
overlay-libs
|
|
|
|
(import ./packages/common)
|
|
|
|
# Bug fixes
|
|
] # we assign the overlay created before to the overlays of nixpkgs.
|