{ sources ? import ../sources.nix, pkgs ? import sources.nixpkgs {}, ... }: let inherit (pkgs) lib; mkNerdFont = pkgs.callPackage ../lib/mkNerdFont.nix {}; mkHaskellPackage = { src, name, apply ? lib.id, }: let drv = pkgs.haskellPackages.callCabal2nix name src {}; in lib.pipe drv [ apply pkgs.haskell.lib.dontHaddock pkgs.haskell.lib.justStaticExecutables ]; infuse-lib = import sources.infuse { inherit lib; sugars = infuse-lib.v1.default-sugars; }; infuse = lib.flip infuse-lib.v1.infuse; in rec { # fonts altiosevka = pkgs.callPackage ./altiosevka {}; altiosevka-nerd-font-mono = mkNerdFont { font = altiosevka; extraArgs = [ "--name {/.}-NFM" "--use-single-width-glyphs" ]; }; altiosevka-nerd-font-propo = mkNerdFont { font = altiosevka; extraArgs = [ "--name {/.}-NFP" "--variable-width-glyphs" ]; }; bront-nerd-font-mono = mkNerdFont { font = pkgs.bront_fonts; extraArgs = [ "--name Bront-NFM" "--use-single-width-glyphs" ]; }; inconsolata-nerd-font-mono = mkNerdFont { font = pkgs.inconsolata; extraArgs = [ "--name {/.}-NFM" "--use-single-width-glyphs" ]; }; # static version of noto-fonts cjk serif noto-fonts-cjk-serif' = pkgs.callPackage ./noto-fonts-cjk-serif.nix {}; logisim-evolution = pkgs.callPackage ./logisim-evolution.nix {}; necrolib = pkgs.callPackage ./necrolib.nix {}; maeel = pkgs.callPackage ./maeel.nix {}; tokei = pkgs.callPackage ./tokei {}; # alpha tokei with typst, skel, hledger typst-mutilate = pkgs.callPackage ./typst-mutilate.nix {}; webtoon_downloader = pkgs.callPackage ./webtoon_downloader.nix {}; posy-cursor = pkgs.callPackage ./posy-cursor.nix {}; nd = pkgs.callPackage ./nd {}; xbrightness = pkgs.callPackage ./xbrightness.nix {}; ffgun = pkgs.callPackage ./ffgun.nix {}; easyscan = pkgs.callPackage ./easyscan.nix {}; baguette-sharp = pkgs.callPackage ./baguette-sharp.nix {}; # TODO: remove when channel update ltex-ls-plus = pkgs.callPackage ./ltex-ls-plus.nix {}; # my repositories hbrainfuck = mkHaskellPackage { name = "hbrainfuck"; src = sources.hbrainfuck; apply = infuse { __output.nativeBuildInputs.__append = [pkgs.installShellFiles]; __output.postInstall.__append = '' installShellCompletion --cmd hbrainfuck \ --bash <("$out/bin/hbrainfuck" --bash-completion-script "$out/bin/hbrainfuck") \ --fish <("$out/bin/hbrainfuck" --fish-completion-script "$out/bin/hbrainfuck") \ --zsh <("$out/bin/hbrainfuck" --zsh-completion-script "$out/bin/hbrainfuck") ''; }; }; prop-solveur = mkHaskellPackage { name = "prop-solveur"; src = sources.prop_solveur; apply = infuse { __output.nativeBuildInputs.__append = [pkgs.installShellFiles]; __output.postInstall.__append = '' installShellCompletion --cmd prop-solveur \ --bash <("$out/bin/prop-solveur" --bash-completion-script "$out/bin/prop-solveur") \ --fish <("$out/bin/prop-solveur" --fish-completion-script "$out/bin/prop-solveur") \ --zsh <("$out/bin/prop-solveur" --zsh-completion-script "$out/bin/prop-solveur") ''; }; }; hutils = mkHaskellPackage { name = "hutils"; src = sources.hutils; }; audio-lint = pkgs.rustPlatform.buildRustPackage rec { pname = "audio-lint"; version = lib.substring 0 8 sources.audio-lint.rev; src = sources.audio-lint; cargoLock.lockFile = "${src}/Cargo.lock"; }; }