diff --git a/desktop/.config/kanshi/config b/desktop/.config/kanshi/config index 1f5765e..fab1899 100644 --- a/desktop/.config/kanshi/config +++ b/desktop/.config/kanshi/config @@ -1,20 +1,31 @@ + +output "LG Electronics W2442 0x000574E1" alias $left-screen +output "LG Electronics W2442 0x000574FD" alias $right-screen + +profile dockedvert { + output $left-screen position 0,0 transform 90 + output $right-screen position 1080,0 + output eDP-1 disable + exec notify-send "💻 Display changed" "Applying vertical docked LG profile" +} + profile docked { - output "LG Electronics W2442 0x000574FD" position 1920,0 - output "LG Electronics W2442 0x000574E1" position 0,0 + output $left-screen position 0,0 transform 0 + output $right-screen position 1920,0 transform 0 output eDP-1 disable exec notify-send "💻 Display changed" "Applying docked LG profile" } profile dockedall { - output "LG Electronics W2442 0x000574FD" position 1920,0 - output "LG Electronics W2442 0x000574E1" position 0,0 - output eDP-1 enable position 960,1080 + output $left-screen position 0,0 + output $right-screen position 1920,0 + output eDP-1 enable position 1080,1080 exec notify-send "💻 Display changed" "Applying docked 3-screen profile" } profile portableforce { - output "LG Electronics W2442 0x000574FD" disable - output "LG Electronics W2442 0x000574E1" disable + output $left-screen disable + output $right-screen disable output eDP-1 enable position 0,0 exec notify-send "💻 Display changed" "Applying portable profile" } diff --git a/nvim/.config/nvim/after/ftplugin/markdown.lua b/nvim/.config/nvim/after/ftplugin/markdown.lua index c52ab63..b60d71e 100644 --- a/nvim/.config/nvim/after/ftplugin/markdown.lua +++ b/nvim/.config/nvim/after/ftplugin/markdown.lua @@ -4,6 +4,8 @@ vim.opt.tabstop = 2 vim.opt.shiftwidth = 2 vim.opt.softtabstop = 2 +vim.opt.textwidth = 100 + if require("core.util").is_available("which-key") then require("which-key").add({ { "c", group = "codecells" }, @@ -11,18 +13,28 @@ if require("core.util").is_available("which-key") then }) end --- add tasks w/ -map({ "i" }, "", function() - local line = vim.api.nvim_get_current_line() +-- Toggles existence of a md checkbox (`- [ ] `) on current line +-- Can be used on list lines, non-list lines or existing checkbox +local function toggle_checkbox() local cursor = vim.api.nvim_win_get_cursor(0) - -- remove existing prefixes if any - -- TODO: Improved matching for e.g. '- [ ]' already on line, or indented '-' - -- and add task on line below if line is already populated - local updated_line = line:gsub("^%s*[-*]%s*", "", 1) + local line = vim.api.nvim_get_current_line() + local updated_line + -- look for existing checkbox + if line:find("^%s*[-*]%s%[[%sxo]%]") then + updated_line = line:gsub("^(%s*)([-*]?)%s*%[[%sxo-~]%]", "%1%2", 1) + -- look for existing list dash/asterisk + elseif line:find("^%s*[-*]%s") then + updated_line = line:gsub("^(%s*)([-*])%s*", "%1%2 [ ] ", 1) + -- add to non-list line + else + updated_line = line:gsub("^(%s*)", "%1- [ ] ", 1) + end vim.api.nvim_set_current_line(updated_line) vim.api.nvim_win_set_cursor(0, { cursor[1], #updated_line }) - vim.api.nvim_put({ "- [ ] " }, "c", true, true) -end) +end + +-- add tasks w/ +map({ "n", "i" }, "", toggle_checkbox) if require("core.util").is_available("zk") and require("zk.util").notebook_root(vim.fn.expand("%:p")) ~= nil then map("n", "", "lua vim.lsp.buf.definition()", { silent = true }) diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json index 08406de..cf64526 100644 --- a/nvim/.config/nvim/lazy-lock.json +++ b/nvim/.config/nvim/lazy-lock.json @@ -8,9 +8,9 @@ "cmp-calc": { "branch": "main", "commit": "5947b412da67306c5b68698a02a846760059be2e" }, "cmp-pandoc.nvim": { "branch": "main", "commit": "30faa4456a7643c4cb02d8fa18438fd484ed7602" }, "cmp-spell": { "branch": "master", "commit": "694a4e50809d6d645c1ea29015dad0c293f019d6" }, - "codecompanion-gitcommit.nvim": { "branch": "main", "commit": "0ea26d93321e259dbb3766bf7f845ff02284e220" }, - "codecompanion-history.nvim": { "branch": "main", "commit": "5442513f1303884079c8f13cf8b75da44a3db679" }, - "codecompanion.nvim": { "branch": "main", "commit": "7ae585e1c868edb523cbb15c49fd15bc3def1261" }, + "codecompanion-gitcommit.nvim": { "branch": "main", "commit": "e237b9901d64074fa84f74c1b20892303e3e1830" }, + "codecompanion-history.nvim": { "branch": "main", "commit": "b9f1afb77f1a8805e686f89ac38338a9ca588579" }, + "codecompanion.nvim": { "branch": "main", "commit": "76f1c1aaedbb159256dbc64705cd34f447046d64" }, "conform.nvim": { "branch": "master", "commit": "a6f5bdb78caa305496357d17e962bbc4c0b392e2" }, "copilot-lualine": { "branch": "main", "commit": "6bc29ba1fcf8f0f9ba1f0eacec2f178d9be49333" }, "copilot.lua": { "branch": "master", "commit": "c1bb86abbed1a52a11ab3944ef00c8410520543d" }, @@ -29,6 +29,7 @@ "hunk.nvim": { "branch": "master", "commit": "1e0a4d719c780bb8b0690a54915601508ced321e" }, "image.nvim": { "branch": "master", "commit": "a4638ec549c6aa56264cb0371255192ff37a8a90" }, "img-clip.nvim": { "branch": "main", "commit": "0bb8b5ced45c2672c70184c87d014194b0705815" }, + "jj-diffconflicts": { "branch": "feat/remove-instruction-message", "commit": "ee3f9179b2ab94d5177d3935fbf2bc94258d3541" }, "jupytext.nvim": { "branch": "main", "commit": "c8baf3ad344c59b3abd461ecc17fc16ec44d0f7b" }, "lazy-events.nvim": { "branch": "main", "commit": "63802b7ddc852bdfa29e33b158d52429276fa742" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, @@ -100,7 +101,7 @@ "vim-spellsync": { "branch": "master", "commit": "ea9f431483ceb40ede8bd5b126a03eccd49b1bc0" }, "wezterm.nvim": { "branch": "main", "commit": "f73bba23ab4becd146fa2d0a3a16a84b987eeaca" }, "which-key.nvim": { "branch": "main", "commit": "fcbf4eea17cb299c02557d576f0d568878e354a4" }, - "wrapping.nvim": { "branch": "master", "commit": "3a823200c297885b70515fa8d974e1763c578e26" }, + "wrapping.nvim": { "branch": "feat/nontextual-detection-option", "commit": "f3eb5d36e518b62430fd705086bc83cf2b1e7ac2" }, "zen-mode.nvim": { "branch": "main", "commit": "04b52674b8c800f8b7d4609e8bd8d0212e3ffa79" }, "zk-nvim": { "branch": "main", "commit": "fd1ab2239ed85ca51051c094a49a280f4ed76bb2" } } diff --git a/nvim/.config/nvim/lua/core/languages.lua b/nvim/.config/nvim/lua/core/languages.lua index 62b5bd4..abad0d8 100644 --- a/nvim/.config/nvim/lua/core/languages.lua +++ b/nvim/.config/nvim/lua/core/languages.lua @@ -115,8 +115,12 @@ local languages = { }, quarto = { lint = { quarto = { "markdownlint" } }, format = { quarto = { "prettier", "injected" } } }, sh = { lint = { sh = { "shellcheck" } }, format = { sh = { "shellharden", "shfmt" } } }, - sql = { format = { sql = { "sleek" } } }, + sql = { format = { sql = { "sleek" } }, lint = { sql = { "sqruff" } } }, svelte = { lint = { svelte = { "eslint_d" } }, format = { svelte = { "prettier" } } }, + terraform = { + lsp = { tofu_ls = {} }, + format = { terraform = { "terraform_fmt" } }, + }, toml = { lsp = { taplo = {} }, ts = { "toml" } }, typescript = { lsp = { ts_ls = {} }, @@ -356,7 +360,6 @@ local languages = { "teal", "templ", "tera", - "terraform", "textproto", "thrift", "tiger", diff --git a/nvim/.config/nvim/lua/plugins/formatting.lua b/nvim/.config/nvim/lua/plugins/formatting.lua index e91cfcd..df22393 100644 --- a/nvim/.config/nvim/lua/plugins/formatting.lua +++ b/nvim/.config/nvim/lua/plugins/formatting.lua @@ -82,7 +82,7 @@ return { end, }, }, - event = { "BufWritePre" }, + event = { "InsertEnter", "BufWritePre" }, opts = {}, }, } diff --git a/nvim/.config/nvim/lua/plugins/git.lua b/nvim/.config/nvim/lua/plugins/git.lua index f0b49fa..02b59c1 100644 --- a/nvim/.config/nvim/lua/plugins/git.lua +++ b/nvim/.config/nvim/lua/plugins/git.lua @@ -104,8 +104,20 @@ return { { "nvim-tree/nvim-web-devicons", optional = true }, }, cmd = { "DiffEditor" }, - config = function() - require("hunk").setup() - end, + -- config = function() + -- require("hunk").setup() + -- end, + opts = { + keys = { + global = { + quit = { "q" }, + }, + diff = { -- default to toggling line on both sides of diff with a + toggle_line = { "s" }, -- imagine it is '[s]ingle side' + toggle_line_pair = { "a" }, + }, + }, + }, }, + { "rafikdraoui/jj-diffconflicts", lazy = false }, } diff --git a/nvim/.config/nvim/lua/plugins/llm.lua b/nvim/.config/nvim/lua/plugins/llm.lua index f2430f5..887cff6 100644 --- a/nvim/.config/nvim/lua/plugins/llm.lua +++ b/nvim/.config/nvim/lua/plugins/llm.lua @@ -58,34 +58,56 @@ return { opts = { strategies = { chat = { adapter = "groq" }, - inline = { adapter = "groq" }, + inline = { adapter = "copilot" }, + cmd = { adapter = "groq" }, }, adapters = { - groq = function() - return require("codecompanion.adapters").extend("openai", { - env = { - api_key = "GROQ_API_KEY", - }, - name = "Groq", - url = "https://api.groq.com/openai/v1/chat/completions", - schema = { - model = { - default = "llama-3.1-8b-instant", - choices = { - "llama-3.3-70b-versatile", - "meta-llama/llama-4-maverick-17b-128e-instruct", - "mistral-saba-24b", + http = { + opts = { + show_defaults = false, -- TODO: set to false to only enable working, but does not show copilot then + }, + groq = function() + return require("codecompanion.adapters").extend("openai", { + env = { + api_key = "GROQ_API_KEY", + }, + name = "Groq", + url = "https://api.groq.com/openai/v1/chat/completions", + schema = { + model = { + default = "llama-3.1-8b-instant", + choices = { + -- production models + "llama-3.3-70b-versatile", + "llama-3.1-8b-instant", + "moonshotai/kimi-k2-instruct", + "meta-llama/llama-guard-4-12b", + "openai/gpt-oss-120b", + "openai/gpt-oss-20b", + -- preview models + "meta-llama/llama-4-maverick-17b-128e-instruct", + "meta-llama/llama-4-scout-17b-16e-instruct", + "deepseek-r1-distill-llama-70b", + "qwen/qwen3-32b", + }, }, }, - }, - max_tokens = { - default = 4096, - }, - temperature = { - default = 1, - }, - }) - end, + max_tokens = { + default = 4096, + }, + temperature = { + default = 1, + }, + }) + end, + gemini = function() + return require("codecompanion.adapters").extend("gemini", { + env = { + api_key = "GEMINI_API_KEY", + }, + }) + end, + }, }, display = { action_palette = { @@ -120,12 +142,90 @@ return { }, }, }, + prompt_library = { + + ["Smart Paste"] = { + strategy = "inline", + description = "Paste code smartly", + opts = { short_name = "paste" }, + prompts = { + { + role = "user", + content = [[ +You are a smart code paste agent within Neovim. + +## **Task:** Intelligently integrate content from the user's clipboard into the current buffer. + +## **Instructions:** + +- You may receive code in various programming languages or even natural language instructions. +- If the clipboard content is in a different language than the current buffer, translate it to the appropriate language smartly. +- If the clipboard content contains pseudo code generate code accordingly. +- If the clipboard content contains natural language instructions, interpret and follow them to modify the code in the current buffer. +- **ONLY** generate the **new** lines of code required for seamless integration. +- Ensure the inserted code is syntactically correct and logically consistent with the existing code. +- Do **NOT** include surrounding code or line numbers. +- Make sure all brackets and quotes are closed properly. + +## **Output:** + +- Provide only the necessary lines of code for insertion. +- If you can't generate code just return nothing. +- Ensure the response is proper and well-formatted. + ]], + }, + { + role = "user", + content = function(context) + local lines = require("codecompanion.helpers.actions").get_code( + 1, + context.line_count, + { show_line_numbers = true } + ) + local selection_info = "" + local clipboard = vim.fn.getreg("+") + + if context.is_visual then + selection_info = string.format( + "Currently selected lines: %d-%d", + context.start_line, + context.end_line + ) + else + selection_info = string.format( + "Current cursor line: %d and Current cursor column is %d", + context.cursor_pos[1], + context.cursor_pos[2] + ) + end + + return string.format( + "I have the following code:\n\n```%s\n%s\n```\n\nClipboard content:\n\n```\n%s\n```\n\n%s", + context.filetype, + lines, + clipboard, + selection_info + ) + end, + opts = { + contains_code = true, + }, + }, + }, + }, + }, }, keys = { { "aa", "CodeCompanionActions", desc = "Actions", silent = true, mode = { "n", "v" } }, { "ac", "CodeCompanionChat Toggle", desc = "Toggle chat", silent = true }, { "ac", "CodeCompanionChat Add", desc = "Add to chat", silent = true, mode = "v" }, }, - cmd = { "CodeCompanionActions", "CodeCompanionChat", "CodeCompanion", "CodeCompanionCmd" }, + cmd = { + "CodeCompanionActions", + "CodeCompanionChat", + "CodeCompanion", + "CodeCompanionCmd", + "CodeCompanionGitCommit", + }, }, } diff --git a/nvim/.config/nvim/lua/plugins/pickers.lua b/nvim/.config/nvim/lua/plugins/pickers.lua index 98e2625..b7786fc 100644 --- a/nvim/.config/nvim/lua/plugins/pickers.lua +++ b/nvim/.config/nvim/lua/plugins/pickers.lua @@ -101,7 +101,12 @@ return { -- file/item pickers and managers }, }, }, - defaults = { -- FIXME: Does not seem to work with single result and still closes instantly? + winopts = { + preview = { + wrap = true + } + }, + defaults = { jump1 = false, }, }, @@ -191,7 +196,7 @@ return { -- file/item pickers and managers desc = "path complete", }, { - "", + "", function() require("fzf-lua").complete_path() end, @@ -264,7 +269,7 @@ return { -- file/item pickers and managers desc = "registers", }, { - "fr", + "fj", function() require("fzf-lua").jumps() end, diff --git a/nvim/.config/nvim/lua/plugins/prose.lua b/nvim/.config/nvim/lua/plugins/prose.lua index 9a39ff9..248bbed 100644 --- a/nvim/.config/nvim/lua/plugins/prose.lua +++ b/nvim/.config/nvim/lua/plugins/prose.lua @@ -1,8 +1,22 @@ +-- append t2 to t1 +-- happens in-place, so it CHANGES t1 +local function concat(t1, t2) + local tbl = {} + for i = 1, #t1 do + tbl[#tbl + 1] = t1[i] + end + for i = 1, #t2 do + tbl[#tbl + 1] = t2[i] + end + return tbl +end + local md_like = { "markdown", "djot", "pandoc", "quarto", + "rmd", "vimwiki", "codecompanion", } @@ -11,8 +25,6 @@ local org_like = { "org", } local prose_ft = { - unpack(md_like), - unpack(org_like), "asciidoc", "bib", "context", @@ -23,8 +35,9 @@ local prose_ft = { "tex", "text", "typst", - "rmd", } +prose_ft = concat(prose_ft, md_like) +prose_ft = concat(prose_ft, org_like) local prose_plugs = { -- UI improvements @@ -72,14 +85,41 @@ local prose_plugs = { }, }, { - "andrewferrier/wrapping.nvim", + "marty-oehme/wrapping.nvim", + branch = "feat/nontextual-detection-option", opts = { create_keymaps = false, notify_on_switch = false, - -- softener = { quarto = true, markdown = true, text = true, asciidoc = true }, auto_set_mode_filetype_allowlist = prose_ft, + softener = { quarto = 2.0, markdown = 2.0, djot = 2.0 }, + nontextual_heuristic = function() + local nb = vim.tbl_get(vim.env, "ZK_NOTEBOOK_DIR") or vim.tbl_get(vim.env, "WIKIROOT") + if nb then + if vim.fn.expand("%:p:h"):find(nb) then + return false + end + return true + end + local get_clients + + if vim.fn.has("nvim-0.10") == 1 then + get_clients = vim.lsp.get_clients + else + get_clients = vim.lsp.get_active_clients + end + + for _, client in pairs(get_clients({ bufnr = 0 })) do + if + client.server_capabilities.definitionProvider + or client.server_capabilities.signatureHelpProvider + then + return true + end + end + + return false + end, }, - -- event = { "BufReadPre", "BufNewFile" }, ft = prose_ft, keys = { { @@ -100,11 +140,11 @@ local prose_plugs = { }, }, }, - -- displays prettier md rendering { + -- displays prettier md rendering "MeanderingProgrammer/render-markdown.nvim", opts = { - file_types = { "markdown", "codecompanion" }, + file_types = md_like, render_modes = { "n", "c", "i" }, code = { sign = false, @@ -223,6 +263,13 @@ local prose_plugs = { end end, config = function() + local picker = "select" + if require("core.util").is_available("fzf-lua") then + picker = "fzf_lua" + elseif require("core.util").is_available("telescope") then + picker = "telescope" + end + require("zk.commands").add("ZkOrphans", function(opts) opts = vim.tbl_extend("force", { orphan = true }, opts or {}) require("zk").edit(opts, { title = "Zk Orphans" }) @@ -245,21 +292,17 @@ local prose_plugs = { return collection[path] end, }, opts or {}) - -- FIXME: Don't hard-code this so much? - -- require("telescope.builtin").live_grep(options) - require("fzf-lua").live_grep(options) + if picker == "telescope" then + require("telescope.builtin").live_grep(options) + elseif picker == "fzf_lua" then + require("fzf-lua").live_grep(options) + end end) - local picker = "select" - if require("core.util").is_available("fzf-lua") then - picker = "fzf_lua" - elseif require("core.util").is_available("telescope") then - picker = "telescope" - end require("zk").setup({ picker = picker, lsp = { config = { - filetypes = { "markdown", "quarto", "djot" }, + filetypes = md_like, }, auto_attach = { enabled = true, diff --git a/office/.config/task/taskrc b/office/.config/task/taskrc index fa75be9..e729be0 100644 --- a/office/.config/task/taskrc +++ b/office/.config/task/taskrc @@ -34,9 +34,6 @@ active.indicator=> report.list.columns=start.active,id,project,priority,due,description.count,tags,entry.age report.list.labels=,,Project,Pri,Due,Description,Tags,Age # customize next report: focus on urgencies -report.next.columns=id,project,priority,urgency,due,description.count,tags,scheduled,entry.age,recur -report.next.labels=,Project,Pri,Urg,Due,Description,Tags,Sched,Age,Recur -# customize next report: focus on urgencies report.next.columns=id,project,priority,urgency,due,description,tags,scheduled,entry.age,recur report.next.labels=,Project,Pri,Urg,Due,Description,Tags,Sched,Age,Recur @@ -113,4 +110,4 @@ report.issues.description=Git Issue Open or Closed state report.issues.columns=id,project,priority,due,gitbugstate,description,tags,scheduled report.issues.filter=( +PENDING or +WAITING ) and ( gitbugstate:OPEN ) -news.version=3.0.2 +news.version=3.4.1 diff --git a/qutebrowser/config/searchengines.py b/qutebrowser/config/searchengines.py index c2a674e..67cbe61 100644 --- a/qutebrowser/config/searchengines.py +++ b/qutebrowser/config/searchengines.py @@ -20,7 +20,9 @@ c.url.searchengines = { "maps": "https://facilmap.org/#q={}", "pcw": "https://www.pcgamingwiki.com/w/index.php?search={}", "py": "https://pypi.org/search/?q={}", + "quote": "https://quoteinvestigator.com/?s={}", "r": "https://www.reddit.com/r/{}", + "read": "https://read.martyoeh.me/search?currentRoute=all&search_entry%5Bterm%5D={}", "sc": "https://www.shellcheck.net/wiki/SC{}", "sci": "https://sci-hub.ru/{}", "t": "https://www.thesaurus.com/browse/{}", diff --git a/vcs/jj/config/jj/config.toml b/vcs/jj/config/jj/config.toml index 773e3e0..58b5e40 100644 --- a/vcs/jj/config/jj/config.toml +++ b/vcs/jj/config/jj/config.toml @@ -13,6 +13,17 @@ private-commits = "description(glob-i:'WIP:*') | description(glob-i:'PRIVATE:*') [ui] default-command = ["log", "-T", "builtin_log_oneline", "-r", "stack()"] diff-editor = ["nvim", "-c", "DiffEditor $left $right $output"] +diff-instructions = false # don't add the JJ-INSTRUCTIONS file to diffs +merge-editor = "dc" + +[merge-tools.dc] # the 'diffconflicts' plugin for nvim +program = "nvim" +merge-args = [ + "-c", "let g:jj_diffconflicts_marker_length=$marker_length", + "-c", "let g:jj_diffconflicts_turn_off_instructions=1", + "-c", "JJDiffConflicts!", "$output", "$base", "$left", "$right" +] +merge-tool-edits-conflict-markers = true # use delta as formatter but _only_ for diff and show # see: https://github.com/jj-vcs/jj/discussions/4690#discussioncomment-12388965 diff --git a/writing/papis/config/papis/config b/writing/papis/config/papis/config index 2852fab..c6d980d 100644 --- a/writing/papis/config/papis/config +++ b/writing/papis/config/papis/config @@ -8,6 +8,10 @@ picktool = papis-tui mark-opener-format = sioyek --page {mark[value]} file-browser = vifm +# use openl as isbn metadata provider. other options: goob, wiki +# see: https://isbnlib.readthedocs.io/en/latest/devs.html#api-s-main-namespaces under `meta` +isbn-service = openl + # edit info.yaml as new papers are added add-edit = True # ref-format = {doc[author_list][0][family]}{doc[year]} @@ -32,13 +36,17 @@ editmore = vi [main] dir = ~/documents/library -# My personal reading -[personal] -dir = ~/documents/library/personal +### Long-term libraries -# Sustainable supply chain logistics, especially procurement -[litrev-rahman] -dir = ~/documents/library/litrev-rahman +# General personal reading +[gen] +dir = ~/documents/library/general + +# General computer science reading +[cs] +dir = ~/documents/library/cs + +### Situational libraries # Addressing Inequalities in World of Work research [ilo] @@ -49,23 +57,10 @@ dir = ~/documents/library/ilo-wow [fedi] dir = ~/documents/library/fediverse -# General computer science reading -[cs] -dir = ~/documents/library/cs - -# Electrical engineering reading -[ee] -dir = ~/documents/library/ee - # All my university programme readings [emgs] dir = ~/documents/library/emgs -# General research reading -[academia] -dir = ~/documents/library/academia - - [plugins.extract] tags = {"red": "important", "green": "extra", "blue": "toread"} diff --git a/writing/zk/config/sh/alias.d/zk.sh b/writing/zk/config/sh/alias.d/zk.sh index 845650f..67132d6 100644 --- a/writing/zk/config/sh/alias.d/zk.sh +++ b/writing/zk/config/sh/alias.d/zk.sh @@ -27,7 +27,7 @@ if [ -n "${WIKIROOT}" ]; then _zk_wiki new "$@" } nnn() { # 'new quicknote' - _zk_wiki new -t "${*:-$(date)}" inbox + _zk_wiki new -t "${*:-$(date)}" } nnl() { # 'new note log' _zk_wiki log "$@" diff --git a/writing/zk/config/sh/env.d/zk.sh b/writing/zk/config/sh/env.d/zk.sh index eb9ca6f..83c2c26 100644 --- a/writing/zk/config/sh/env.d/zk.sh +++ b/writing/zk/config/sh/env.d/zk.sh @@ -1,4 +1,4 @@ #!/usr/bin/env sh # -export ZK_NOTEBOOK_DIR="${WIKIROOT:-~/documents/notes/}" +export ZK_NOTEBOOK_DIR="${WIKIROOT:-$HOME/documents/notes/}"