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