From 209ab8ba303936a9c9238b1981578948ee47232b Mon Sep 17 00:00:00 2001 From: hektor Date: Mon, 28 Sep 2026 23:51:32 +0200 Subject: [PATCH] feat(reference-manager): nixify Zotero Better BibTeX --- .../modules/reference-manager}/bbt.json | 2 +- home/modules/reference-manager/default.nix | 36 +++++++++++++++++-- 2 files changed, 34 insertions(+), 4 deletions(-) rename {dots/.zotero => home/modules/reference-manager}/bbt.json (99%) diff --git a/dots/.zotero/bbt.json b/home/modules/reference-manager/bbt.json similarity index 99% rename from dots/.zotero/bbt.json rename to home/modules/reference-manager/bbt.json index 9f9caab..8d27ac5 100644 --- a/dots/.zotero/bbt.json +++ b/home/modules/reference-manager/bbt.json @@ -98,4 +98,4 @@ "warnTitleCased": false } } -} \ No newline at end of file +} diff --git a/home/modules/reference-manager/default.nix b/home/modules/reference-manager/default.nix index 053fbe1..ee05d32 100644 --- a/home/modules/reference-manager/default.nix +++ b/home/modules/reference-manager/default.nix @@ -7,7 +7,14 @@ }: let - cfg = config.reference-manager; + 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: @@ -28,8 +35,31 @@ in { options.reference-manager.enable = lib.mkEnableOption "reference manager (Zotero)"; - config = lib.mkIf cfg.enable { - home.packages = [ pkgs.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;