flake-update-20260505
 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  nix-flake-update = pkgs.callPackage ../tools/nix-flake-update { };
37  slack-archive = pkgs.callPackage ../tools/slack-archive { };
38  gcal-to-org = pkgs.callPackage ../tools/gcal-to-org { };
39  daily-plan = pkgs.callPackage ../tools/daily-plan { };
40  github-notif-manager = pkgs.callPackage ../tools/github-notif-manager { };
41  beets-lidarr-fields = pkgs.python3Packages.callPackage ./beets-lidarr-fields { };
42  beets-filetote = pkgs.python3Packages.callPackage ./beets-filetote { };
43
44  # Beets with custom plugins (lidarrfields and filetote)
45  beetsWithPlugins = pkgs.beets.override {
46    python3 = pkgs.python3.override {
47      packageOverrides = _self: super: {
48        beets = 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        };
60      };
61    };
62  };
63
64  chmouzies-ai = pkgs.callPackage ./chmouzies/ai.nix { };
65  chmouzies-git = pkgs.callPackage ./chmouzies/git.nix { };
66  chmouzies-kubernetes = pkgs.callPackage ./chmouzies/kubernetes.nix { };
67  chmouzies-misc = pkgs.callPackage ./chmouzies/misc.nix { };
68
69  systemd-email = pkgs.callPackage ./systemd-email { };
70
71  bookmark-plus = compileEmacsFiles {
72    name = "bookmark-plus";
73    src = pkgs.fetchFromGitHub {
74      owner = "emacsmirror";
75      repo = "bookmark-plus";
76      rev = "73b8e1c2195860a8c24b5e2961914780c19cf5e3";
77      hash = "sha256-z6LtaYZCMMG4vO7jQE7W4qpoRZn0D61axqeOyBXNVyU=";
78    };
79  };
80
81  phscroll = compileEmacsFiles {
82    name = "phscroll";
83    src = pkgs.fetchFromGitHub {
84      owner = "misohena";
85      repo = "phscroll";
86      rev = "582abedb4cf6aba216cdb5fe7217d612a1d68d5a";
87      hash = "sha256-LklBCgDYnC1SF2MD5LDI/CoQVSWlmrG83JGa155z4DI=";
88    };
89  };
90
91}