From eccd8db785cfb9602581e2a73a6a92c15e70773e Mon Sep 17 00:00:00 2001 From: hektor Date: Sun, 31 May 2026 17:27:58 +0200 Subject: [PATCH] feat(reference-manager): add reference manager module (Zotero) --- home/hosts/astyanax/default.nix | 1 + home/modules/reference-manager/default.nix | 37 ++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 home/modules/reference-manager/default.nix diff --git a/home/hosts/astyanax/default.nix b/home/hosts/astyanax/default.nix index 51fff476..a2941014 100644 --- a/home/hosts/astyanax/default.nix +++ b/home/hosts/astyanax/default.nix @@ -52,6 +52,7 @@ ssh.enable = true; taskwarrior.enable = true; terminal.enable = true; + reference-manager.enable = true; programs = { home-manager.enable = true; diff --git a/home/modules/reference-manager/default.nix b/home/modules/reference-manager/default.nix new file mode 100644 index 00000000..053fbe14 --- /dev/null +++ b/home/modules/reference-manager/default.nix @@ -0,0 +1,37 @@ +{ + config, + inputs, + lib, + pkgs, + ... +}: + +let + cfg = config.reference-manager; + + hasBrowser = + name: + lib.elem name [ + config.browser.primary + config.browser.secondary + ]; + + zoteroConnector = + inputs.firefox-addons.packages.${pkgs.stdenv.hostPlatform.system}.zotero-connector; + zoteroAddonId = "zotero@chnm.gmu.edu"; + + connectorExtension = { + profiles.default.extensions.packages = [ zoteroConnector ]; + policies.ExtensionSettings.${zoteroAddonId}.default_area = "navbar"; + }; +in +{ + options.reference-manager.enable = lib.mkEnableOption "reference manager (Zotero)"; + + config = lib.mkIf cfg.enable { + home.packages = [ pkgs.zotero ]; + + programs.firefox = lib.mkIf (hasBrowser "firefox") connectorExtension; + programs.librewolf = lib.mkIf (hasBrowser "librewolf") connectorExtension; + }; +}