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}