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}