68 lines
1.9 KiB
Nix
68 lines
1.9 KiB
Nix
{
|
|
config,
|
|
inputs,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
|
|
let
|
|
betterBibtex = pkgs.fetchzip (finalAttrs: {
|
|
pname = "zotero-better-bibtex";
|
|
version = "9.0.64";
|
|
url = "https://github.com/retorquere/zotero-better-bibtex/releases/download/v${finalAttrs.version}/zotero-better-bibtex-${finalAttrs.version}.xpi";
|
|
hash = "sha256-eu/lkWdW/wbehBjk/5ERnKxBob6yaoS4qsh75RaQx5A=";
|
|
extension = "zip";
|
|
stripRoot = false;
|
|
});
|
|
|
|
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 config.reference-manager.enable {
|
|
home = {
|
|
packages = [ pkgs.zotero ];
|
|
file = {
|
|
".zotero/bbt.json".source = ./bbt.json;
|
|
".zotero/zotero/profiles.ini".text = lib.generators.toINI { } {
|
|
General = {
|
|
StartWithLastProfile = 1;
|
|
Version = 2;
|
|
};
|
|
Profile0 = {
|
|
Name = "default";
|
|
IsRelative = 1;
|
|
Path = "default";
|
|
Default = 1;
|
|
};
|
|
};
|
|
|
|
".zotero/zotero/default/extensions/better-bibtex@iris-advies.com".source = betterBibtex;
|
|
".zotero/zotero/default/user.js".text = ''
|
|
user_pref("extensions.startupScanScopes", 1);
|
|
user_pref("extensions.autoDisableScopes", 14);
|
|
'';
|
|
};
|
|
};
|
|
|
|
programs.firefox = lib.mkIf (hasBrowser "firefox") connectorExtension;
|
|
programs.librewolf = lib.mkIf (hasBrowser "librewolf") connectorExtension;
|
|
};
|
|
}
|