From a54e6086e5d08bf65e17a8b998568a80d4ef5fdf Mon Sep 17 00:00:00 2001 From: Soliprem Date: Sat, 21 Mar 2026 02:05:50 +0100 Subject: [PATCH] notes/obsidian: lazy load by default --- modules/plugins/notes/obsidian/config.nix | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/modules/plugins/notes/obsidian/config.nix b/modules/plugins/notes/obsidian/config.nix index 145ddff7..cf573cea 100644 --- a/modules/plugins/notes/obsidian/config.nix +++ b/modules/plugins/notes/obsidian/config.nix @@ -5,22 +5,32 @@ }: let inherit (lib.modules) mkIf mkMerge; inherit (lib.generators) mkLuaInline; - inherit (lib.nvim.dag) entryAnywhere; - inherit (lib.nvim.lua) toLuaObject; cfg = config.vim.notes.obsidian; in { config = mkIf cfg.enable { vim = { startPlugins = [ - "obsidian-nvim" "vim-markdown" "tabular" + "plenary-nvim" ]; - pluginRC.obsidian = entryAnywhere '' - require("obsidian").setup(${toLuaObject cfg.setupOpts}) - ''; + lazy.plugins.obsidian-nvim = { + package = "obsidian-nvim"; + # NOTE: packaged plugin directory is `obsidian.nvim`; loading by the + # spec key (`obsidian-nvim`) misses and makes `require("obsidian")` + # resolve to a loader function via lzn-auto-require. + # I don't love this, but I can't think of anything better + load = '' + vim.cmd.packadd("obsidian.nvim") + ''; + setupModule = "obsidian"; + inherit (cfg) setupOpts; + + ft = ["markdown"]; + cmd = ["Obsidian"]; + }; notes.obsidian.setupOpts = let # may not be defined