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; + }; +}