{ user ? throw "user argument is required", home ? throw "home argument is required", }: { config, pkgs, ... }: let hmConfig = config.home-manager.users.${user}; in { nixpkgs.overlays = [ (final: prev: { darktable = prev.darktable.overrideAttrs (oldAttrs: { patches = oldAttrs.patches or [ ] ++ [ ./better-copy-and-import.patch ]; }); }) ]; environment.persistence = { "/persist" = { "${home}/.config/darktable/data.db" = { }; "${home}/.config/darktable/library.db" = { }; }; "/cache"."${home}/.cache/darktable" = { }; }; home-manager.users.${user} = let lua-scripts = pkgs.fetchFromGitHub { owner = "darktable-org"; repo = "lua-scripts"; rev = "daa0877b4c25b91e4b71afc1ef8ffcba6018f7b2"; sha256 = "sha256-NNGAq1zgKqWLhKBPgm7kFZq4xwvescxnCAwovSF9r4k="; }; hald-clut = pkgs.fetchFromGitHub { owner = "cedeber"; repo = "hald-clut"; rev = "3b3180f82d4dcea1e6e8c5648473539a910d7f49"; sha256 = "sha256-R8vyYmcsfk49QsSV3v0QblXcO6U0oIfDyxbHPLwSMdo="; }; in { home = { packages = with pkgs; [ darktable exiftool (pkgs.callPackage ./publish { }) ]; sessionVariables = { GHOST_URL = "https://photos.karaolidis.com"; GHOST_ADMIN_API_KEY_PATH = hmConfig.sops.secrets."jupiter/photos.karaolidis.com/admin".path; }; }; xdg.configFile = { "darktable/darktablerc".source = (pkgs.formats.keyValue { }).generate "darktablerc" { "compress_xmp_tags" = "never"; "database/create_snapshot" = "once a day"; "rating_one_double_tap" = true; "run_crawler_on_start" = true; "ui_last/theme" = "darktable-elegant-darker"; "ui_last/grouping" = true; "plugins/darkroom/lut3d/def_path" = "${home}/.config/darktable/luts"; "opencl" = false; "plugins/lighttable/overlays/1/0" = 0; "plugins/lighttable/overlays/1/1" = 3; "plugins/lighttable/overlays/1/2" = 3; "plugins/darkroom/modulegroups/last_preset" = "modules: all"; "session/base_directory_pattern" = "${home}/Pictures/Darktable"; "session/filename_pattern" = "$(EXIF.YEAR)-$(EXIF.MONTH)-$(EXIF.DAY)_$(EXIF.HOUR)-$(EXIF.MINUTE)-$(EXIF.SECOND)_$(CONFLICT_PADDING).$(FILE_EXTENSION)"; "session/sub_directory_pattern" = ""; "setup_import_directory" = true; "lua/script_manager/check_update" = false; }; "darktable/luarc".text = '' require "tools/script_manager" require "tools/publish" ''; "darktable/lua/lib".source = "${lua-scripts}/lib"; "darktable/lua/tools/script_manager.lua".source = "${lua-scripts}/tools/script_manager.lua"; "darktable/lua/tools/publish.lua".source = ./publish/publish.lua; "darktable/luts".source = "${hald-clut}/HaldCLUT"; }; sops.secrets."jupiter/photos.karaolidis.com/admin".sopsFile = ../../../../../../secrets/personal/secrets.yaml; }; }