main
  1# Custom packages, that can be defined similarly to ones from nixpkgs
  2# Build them using 'nix build .#example' or (legacy) 'nix-build -A example'
  3
  4{
  5  pkgs ? (import ../nixpkgs.nix) { },
  6  globals ? { },
  7}:
  8let
  9  compileEmacsFiles = pkgs.callPackage ./emacs/builder.nix;
 10in
 11{
 12  # TODO: migrate things from nix/packages
 13  nixfmt-plus = pkgs.callPackage ./nixfmt-plus.nix { };
 14  scripts = pkgs.callPackage ./my/scripts { };
 15  shpool-ssh-wrapper = pkgs.callPackage ../tools/shpool-ssh-wrapper { };
 16  shpool-remote = pkgs.callPackage ../tools/shpool-remote { };
 17  vrsync = pkgs.callPackage ./my/vrsync { };
 18  vde-thinkpad = pkgs.callPackage ./my/vde-thinkpad { };
 19  battery-monitor = pkgs.callPackage ../tools/battery-monitor { };
 20  ape = pkgs.callPackage ./ape { };
 21  ram = pkgs.callPackage ./ram { };
 22  govanityurl = pkgs.callPackage ./govanityurl { };
 23  manifest-tool = pkgs.callPackage ./manifest-tool { };
 24  arr = pkgs.callPackage ../tools/arr { };
 25  download-kiwix-zim = pkgs.callPackage ../tools/download-kiwix-zim { };
 26  repo-find = pkgs.callPackage ./repo-find { };
 27  toggle-color-scheme = pkgs.callPackage ./toggle-color-scheme { };
 28  homepage = pkgs.callPackage ./homepage { inherit globals; };
 29  audible-converter = pkgs.callPackage ./audible-converter { };
 30  jellyfin-auto-collections = pkgs.callPackage ./jellyfin-auto-collections { };
 31  jellyfin-favorites-sync = pkgs.callPackage ../tools/jellyfin-favorites-sync { };
 32  usage-metrics = pkgs.callPackage ../tools/usage-metrics { };
 33  jellyfin-manage-playlist = pkgs.callPackage ../tools/jellyfin-manage-playlist { };
 34  music-playlist-dl = pkgs.callPackage ../tools/music-playlist-dl { };
 35  readwise-reader = pkgs.callPackage ../tools/readwise-reader { };
 36  gcal-to-org = pkgs.callPackage ../tools/gcal-to-org { };
 37  daily-plan = pkgs.callPackage ../tools/daily-plan { };
 38  github-notif-manager = pkgs.callPackage ../tools/github-notif-manager { };
 39  beets-lidarr-fields = pkgs.python3Packages.callPackage ./beets-lidarr-fields { };
 40  beets-filetote = pkgs.python3Packages.callPackage ./beets-filetote { };
 41
 42  # Beets with custom plugins (lidarrfields and filetote)
 43  beetsWithPlugins =
 44    (pkgs.beets.override {
 45      python3 = pkgs.python3.override {
 46        packageOverrides = _self: super: {
 47          beets =
 48            (super.beets.override {
 49              pluginOverrides = {
 50                lidarrfields = {
 51                  enable = true;
 52                  propagatedBuildInputs = [ pkgs.beets-lidarr-fields ];
 53                };
 54                filetote = {
 55                  enable = true;
 56                  propagatedBuildInputs = [ pkgs.beets-filetote ];
 57                };
 58              };
 59            }).overrideAttrs
 60              {
 61                doCheck = false;
 62                doInstallCheck = false;
 63              };
 64        };
 65      };
 66    }).overrideAttrs
 67      {
 68        doCheck = false;
 69        doInstallCheck = false;
 70      };
 71
 72  chmouzies-ai = pkgs.callPackage ./chmouzies/ai.nix { };
 73  chmouzies-git = pkgs.callPackage ./chmouzies/git.nix { };
 74  chmouzies-kubernetes = pkgs.callPackage ./chmouzies/kubernetes.nix { };
 75  chmouzies-misc = pkgs.callPackage ./chmouzies/misc.nix { };
 76
 77  systemd-email = pkgs.callPackage ./systemd-email { };
 78
 79  bookmark-plus = compileEmacsFiles {
 80    name = "bookmark-plus";
 81    src = pkgs.fetchFromGitHub {
 82      owner = "emacsmirror";
 83      repo = "bookmark-plus";
 84      rev = "73b8e1c2195860a8c24b5e2961914780c19cf5e3";
 85      hash = "sha256-z6LtaYZCMMG4vO7jQE7W4qpoRZn0D61axqeOyBXNVyU=";
 86    };
 87  };
 88
 89  ytr = compileEmacsFiles {
 90    name = "ytr";
 91    src = pkgs.fetchFromGitHub {
 92      owner = "xenodium";
 93      repo = "ytr";
 94      rev = "14ac0834cce7aff4498b08447a3c96f6e6dc6ec5";
 95      hash = "sha256-E3bkDtbLoEkXs8eQ3jDS7uhBEVdnHRywrr7I49FUb7c=";
 96    };
 97  };
 98
 99  phscroll = compileEmacsFiles {
100    name = "phscroll";
101    src = pkgs.fetchFromGitHub {
102      owner = "misohena";
103      repo = "phscroll";
104      rev = "582abedb4cf6aba216cdb5fe7217d612a1d68d5a";
105      hash = "sha256-LklBCgDYnC1SF2MD5LDI/CoQVSWlmrG83JGa155z4DI=";
106    };
107  };
108
109}