From dfa2df255ccbe2502d5ede0733772bd128871ffd Mon Sep 17 00:00:00 2001 From: egradman Date: Sun, 2 Feb 2025 11:10:12 -0800 Subject: [PATCH 1/4] added app_path option to allow setting obsidian path on MacOS --- lua/obsidian/commands/open.lua | 4 ++-- lua/obsidian/config.lua | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lua/obsidian/commands/open.lua b/lua/obsidian/commands/open.lua index 374c04e5..6161e55a 100644 --- a/lua/obsidian/commands/open.lua +++ b/lua/obsidian/commands/open.lua @@ -42,9 +42,9 @@ local function open_in_app(client, path) elseif this_os == util.OSType.Darwin then cmd = "open" if client.opts.open_app_foreground then - args = { "-a", "/Applications/Obsidian.app", uri } + args = { "-a", client.opts.app_path or "/Applications/Obsidian.app", uri } else - args = { "-a", "/Applications/Obsidian.app", "--background", uri } + args = { "-a", client.opts.app_path or "/Applications/Obsidian.app", "--background", uri } end else log.err("open command does not support OS type '" .. this_os .. "'") diff --git a/lua/obsidian/config.lua b/lua/obsidian/config.lua index 4f3ae84d..01c3ba49 100644 --- a/lua/obsidian/config.lua +++ b/lua/obsidian/config.lua @@ -24,6 +24,7 @@ local config = {} ---@field picker obsidian.config.PickerOpts ---@field daily_notes obsidian.config.DailyNotesOpts ---@field use_advanced_uri boolean|? +---@field app_path string|? ---@field open_app_foreground boolean|? ---@field sort_by obsidian.config.SortBy|? ---@field sort_reversed boolean|? @@ -57,6 +58,7 @@ config.ClientOpts.default = function() picker = config.PickerOpts.default(), daily_notes = config.DailyNotesOpts.default(), use_advanced_uri = nil, + app_path = nil, open_app_foreground = false, sort_by = "modified", sort_reversed = true, From c13426e5861ca6a128a8d5ed1b5e165c569b3a29 Mon Sep 17 00:00:00 2001 From: egradman Date: Sun, 2 Feb 2025 11:16:43 -0800 Subject: [PATCH 2/4] fixed quoting on app path --- lua/obsidian/commands/open.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/obsidian/commands/open.lua b/lua/obsidian/commands/open.lua index 6161e55a..6ac9d18f 100644 --- a/lua/obsidian/commands/open.lua +++ b/lua/obsidian/commands/open.lua @@ -42,9 +42,9 @@ local function open_in_app(client, path) elseif this_os == util.OSType.Darwin then cmd = "open" if client.opts.open_app_foreground then - args = { "-a", client.opts.app_path or "/Applications/Obsidian.app", uri } + args = { "-a", "\"" .. client.opts.app_path .. "\"" or "/Applications/Obsidian.app", uri } else - args = { "-a", client.opts.app_path or "/Applications/Obsidian.app", "--background", uri } + args = { "-a", "\"" .. client.opts.app_path .. "\"" or "/Applications/Obsidian.app", "--background", uri } end else log.err("open command does not support OS type '" .. this_os .. "'") From 0342a95c8eee84fa4798f68a5fdb4ec65cdfe1e5 Mon Sep 17 00:00:00 2001 From: egradman Date: Sun, 2 Feb 2025 11:25:35 -0800 Subject: [PATCH 3/4] better null handling for app_path --- lua/obsidian/commands/open.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/obsidian/commands/open.lua b/lua/obsidian/commands/open.lua index 6ac9d18f..52099553 100644 --- a/lua/obsidian/commands/open.lua +++ b/lua/obsidian/commands/open.lua @@ -42,9 +42,9 @@ local function open_in_app(client, path) elseif this_os == util.OSType.Darwin then cmd = "open" if client.opts.open_app_foreground then - args = { "-a", "\"" .. client.opts.app_path .. "\"" or "/Applications/Obsidian.app", uri } + args = { "-a", client.opts.app_path ~= nil and "\"" ..client.opts.app_path.."\"" or "/Applications/Obsidian.app", uri } else - args = { "-a", "\"" .. client.opts.app_path .. "\"" or "/Applications/Obsidian.app", "--background", uri } + args = { "-a", client.opts.app_path ~= nil and "\""..client.opts.app_path.."\"" or "/Applications/Obsidian.app", "--background", uri } end else log.err("open command does not support OS type '" .. this_os .. "'") From 693709268901e5c15f0e2ff6519953a82a0b015e Mon Sep 17 00:00:00 2001 From: egradman Date: Sun, 2 Feb 2025 11:36:26 -0800 Subject: [PATCH 4/4] added changelog and readme modifications per contribution guidelines --- CHANGELOG.md | 1 + README.md | 3 +++ 2 files changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b585ed0e..c6555528 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added `opts.follow_img_func` option for customizing how to handle image paths. - Added better handling for undefined template fields, which will now be prompted for. +- Added `opts.app_path` to set the path to the Obsidian.app (MacOS only) ### Changed diff --git a/README.md b/README.md index d5d382b6..c3b61933 100644 --- a/README.md +++ b/README.md @@ -408,6 +408,9 @@ This is a complete list of all of the options that can be passed to `require("ob -- https://github.com/Vinzent03/obsidian-advanced-uri use_advanced_uri = false, + -- Optional, set to the path of Obsidian.app (MacOS only) + app_path = "/path/to/Obsidian.app", + -- Optional, set to true to force ':ObsidianOpen' to bring the app to the foreground. open_app_foreground = false,