From 151a26be56d40f20c24c72ae4e2e95118d0d2567 Mon Sep 17 00:00:00 2001 From: joelazar Date: Tue, 8 Sep 2026 00:25:20 +0200 Subject: [PATCH] :sparkles: make obsidian plugin conditionally loadable - Add enabled check to skip loading obsidian when ~/.config/nvim/.disable-obsidian marker exists - Guard lualine obsidian sync status in pcall to handle disabled plugin - Update plugins --- lazy-lock.json | 14 +++++++------- lua/plugins/lualine.lua | 17 +++++++++++------ lua/plugins/obsidian.lua | 5 +++++ 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 6ebe40f..c733411 100755 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -10,7 +10,7 @@ "catppuccin": { "branch": "main", "commit": "edefef779ab08ce1a4a404713e3012b0d202bd35" }, "chezmoi.nvim": { "branch": "main", "commit": "4167bbec76f693f481a5243f1be521ff0ccf1a6d" }, "chezmoi.vim": { "branch": "main", "commit": "7a498ea65f658993237fb0469001bdf71f68cf94" }, - "codediff.nvim": { "branch": "main", "commit": "aaeb1ea0fb38991243e273e4065a318b64ccfa50" }, + "codediff.nvim": { "branch": "main", "commit": "61521381445aab22d5f988e7d99c2d7a76ccc1a1" }, "conform.nvim": { "branch": "master", "commit": "016802de402556da54c36bd7359b441266b01cdd" }, "crates.nvim": { "branch": "main", "commit": "b8281be336498035f9288d6542b2881a7140a9ec" }, "dial.nvim": { "branch": "master", "commit": "f2634758455cfa52a8acea6f142dcd6271a1bf57" }, @@ -30,7 +30,7 @@ "mason-nvim-dap.nvim": { "branch": "main", "commit": "9a10e096703966335bd5c46c8c875d5b0690dade" }, "mason-update-all": { "branch": "main", "commit": "332aa2586295f93a32643eb2b580f899458215a1" }, "mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" }, - "mini.ai": { "branch": "main", "commit": "25248c6aa002391936a6200f12d1466015987133" }, + "mini.ai": { "branch": "main", "commit": "cb02c5444613475b7edf0c8dc98264c1c857aa6e" }, "mini.hipatterns": { "branch": "main", "commit": "7c840c71d6a91f53d734cab2b6fe2290d285ec3b" }, "mini.icons": { "branch": "main", "commit": "98faae31e9be1cc054ae63485e58ceb185efcad0" }, "mini.pairs": { "branch": "main", "commit": "b1c5a726921b7a8c9321e9a7a208aa0571de5810" }, @@ -48,9 +48,9 @@ "nvim-dap-ui": { "branch": "master", "commit": "cc9dd33aade7f20bae414d0cba163bc60d4d4b43" }, "nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" }, "nvim-lint": { "branch": "master", "commit": "3d55c8f67c6ae5c15e1042571e107c7a3d5c5f4e" }, - "nvim-lspconfig": { "branch": "master", "commit": "615d7b2712efb2f530a83a9d0466acafba6b1d6f" }, + "nvim-lspconfig": { "branch": "master", "commit": "d6c6b810b52a5436c4c7b9a7fbba7db327d09757" }, "nvim-nio": { "branch": "master", "commit": "edcc181a875301dd21840189aa2f2f9ad69fc172" }, - "nvim-treesitter": { "branch": "main", "commit": "0d0969030ad955b510d7c8012b40252a25c12a6d" }, + "nvim-treesitter": { "branch": "main", "commit": "5cb0114e6242625db56dd6440e945ed1ece10bc7" }, "nvim-treesitter-textobjects": { "branch": "main", "commit": "5c7b0263797dfd1bd6202f2b219f3b53a80b2187" }, "nvim-ts-autotag": { "branch": "main", "commit": "88c1453db4ba7dd24131086fe51fdf74e587d275" }, "obsidian.nvim": { "branch": "main", "commit": "7a2b7caf41de196de66f27c1969d0d429810621a" }, @@ -60,9 +60,9 @@ "plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" }, "project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" }, "render-markdown.nvim": { "branch": "main", "commit": "4663eb3ecd538bd5062628fb6d95bbe6bdca78f6" }, - "rustaceanvim": { "branch": "main", "commit": "facb3f26dc91e416425bf51585f3831edb833e02" }, + "rustaceanvim": { "branch": "main", "commit": "cd828a0e0cee7c538e7ba4ce5fab234239d1db7e" }, "sidekick.nvim": { "branch": "main", "commit": "208e1c5b8170c01fd1d07df0139322a76479b235" }, - "smart-splits.nvim": { "branch": "master", "commit": "0c7abbf2f4e64e56519cb036f01e62e83e2cdcf1" }, + "smart-splits.nvim": { "branch": "master", "commit": "ec76708f1617ef9e2ac353357fe52d2c997a0f06" }, "snacks.nvim": { "branch": "main", "commit": "882c996cf28183f4d63640de0b4c02ec886d01f2" }, "text-case.nvim": { "branch": "main", "commit": "e898cfd46fa6cde0e83abb624a16e67d2ffc6457" }, "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, @@ -75,5 +75,5 @@ "vim-dadbod-ui": { "branch": "master", "commit": "afd07819d8efcefc3317205b855ad4e3513b0011" }, "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }, "yanky.nvim": { "branch": "main", "commit": "dd6689fdda85f66cab7d9b1a1664625f3be0920d" }, - "yazi.nvim": { "branch": "main", "commit": "372d0655f0591402a1b9e3bb4c25f71797d62128" } + "yazi.nvim": { "branch": "main", "commit": "d2eccff3c8c78a15adb82d8d6d37694066fee747" } } diff --git a/lua/plugins/lualine.lua b/lua/plugins/lualine.lua index 7fc9d28..1a593b9 100644 --- a/lua/plugins/lualine.lua +++ b/lua/plugins/lualine.lua @@ -22,12 +22,17 @@ return { table.insert(opts.sections.lualine_z, { wordcount, cond = is_textfile }) - -- Obsidian sync status - table.insert(opts.sections.lualine_x, 1, { - require("obsidian.sync.status").icon, - color = require("obsidian.sync.status").color, - cond = require("obsidian.sync.status").cond, - }) + -- Obsidian sync status (only when the obsidian plugin is loaded; the + -- pcall guard keeps the statusline working on machines where the plugin + -- is disabled via the .disable-obsidian marker) + local ok_obsidian, obsidian_status = pcall(require, "obsidian.sync.status") + if ok_obsidian then + table.insert(opts.sections.lualine_x, 1, { + obsidian_status.icon, + color = obsidian_status.color, + cond = obsidian_status.cond, + }) + end -- Native diagnostic status table.insert(opts.sections.lualine_x, 1, { diff --git a/lua/plugins/obsidian.lua b/lua/plugins/obsidian.lua index b613bbf..19a1705 100644 --- a/lua/plugins/obsidian.lua +++ b/lua/plugins/obsidian.lua @@ -1,6 +1,11 @@ return { "obsidian-nvim/obsidian.nvim", version = "*", + -- Skipped entirely when the local marker file ~/.config/nvim/.disable-obsidian + -- exists (e.g. devboxes). With enabled=false lazy.nvim does not install or + -- load the plugin: no commands, no keymaps, no events. The marker is listed + -- in .git/info/exclude so it stays machine-local and out of the repo. + enabled = vim.fn.filereadable(vim.fn.stdpath("config") .. "/.disable-obsidian") == 0, event = { "BufReadPre " .. vim.fn.expand("~") .. "/Obsidian/**.md" }, config = function() -- 2.54.0