From ee40542cb8faf32dfa28dde814203e2a058a51cf Mon Sep 17 00:00:00 2001 From: slotThe Date: Sun, 15 Aug 2021 16:37:10 +0200 Subject: [PATCH] X.P.OrgMode: Allow specifying home dir starting with ~ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It is already possible to "start" from $HOME by specifying a relative directory (one starting without a starting slash). However, it is often nice to be explicit about this by writing `~/' directly—support this. --- XMonad/Prompt/OrgMode.hs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/XMonad/Prompt/OrgMode.hs b/XMonad/Prompt/OrgMode.hs index aeacf5c2..d3159226 100644 --- a/XMonad/Prompt/OrgMode.hs +++ b/XMonad/Prompt/OrgMode.hs @@ -80,6 +80,7 @@ prepended with @$HOME@ or an equivalent directory. I.e. instead of the above you can write > , ("M-C-o", orgPrompt def "TODO" "org/todos.org") +> -- also possible: "~/org/todos.org" There is also some scheduling and deadline functionality present. This may be initiated by entering @+s@ or @+d@—separated by at least one @@ -214,10 +215,11 @@ mkOrgPrompt xpc oc@OrgMode{ todoHeader, orgFile, clpSupport } = then Header sel else Body $ "\n " <> sel - -- Expand relative path with $HOME + -- Expand path if applicable fp <- case orgFile of - '/' : _ -> pure orgFile - _ -> getHomeDirectory <&> (<> ('/' : orgFile)) + '/' : _ -> pure orgFile + '~' : '/' : _ -> getHomeDirectory <&> (<> drop 1 orgFile) + _ -> getHomeDirectory <&> (<> ('/' : orgFile)) withFile fp AppendMode . flip hPutStrLn <=< maybe (pure "") (ppNote clpStr todoHeader) . pInput