Compare commits

...

26 commits

Author SHA1 Message Date
3812750980
nvim: Add smartpaste to LLM prompts
Will paste and try to integrate _anything_ into the curent buffer. Wrong
programming language, no formatting, pseudo code, natural language instructions, anything.
2025-09-03 12:59:11 +02:00
cd414e5289
nvim: Update codecompanion and options
Needed to be changed to wrap adapter in http table after breaking config
change.
2025-09-03 12:59:10 +02:00
5b15a20be7
papis: Update library layout 2025-09-03 12:59:10 +02:00
9afb34fd26
nvim: Improve jj diff conflict resolution
Currently invoked via `jj resolve --tool diffconflicts`
2025-09-03 12:59:09 +02:00
57a7149807
zk: Do not add new notes into inbox dir
Inbox dir does not exist anymore, so we should not put new notes into
it.
2025-09-03 12:59:09 +02:00
51336757cb
nvim: Update codecompanion groq models 2025-09-03 12:59:08 +02:00
246c06b60b
nvim: Remove hard-coding to fzf-lua in zk-nvim picker 2025-09-03 12:59:07 +02:00
c436fe66fd
nvim: Always determine correct wrapping for wiki text files
For any files under my WIKIROOT directory I am sure that they are
textual (if they fall into the wrapping.nvim allowlist).
So we do not need to undertake the 'nontextual' file heuristic that uses
the capabilities of the language server connected. Especially since our
ZK lsp, or markdown lsp would always return the capability.

Unfortunately wrapping.nvim does not currently have the ability to
provide your own 'nontextual' heuristic, so I instead use a fork which
does and provide the correct function in the options.
2025-09-03 12:59:07 +02:00
943780c38b
nvim: Fix fzf-lua jumps shortcut
Was doubling up the `<leader>fr` shortcut which is actually to show
registers. Now correctly mapped to `<leader>fj` (for jumps).
2025-09-03 12:59:06 +02:00
0af5a2def5
nvim: Default to textwidth of 100 for markdown files 2025-09-03 12:59:06 +02:00
72f3e4877c
nvim: Default to wrapping in fzf-lua preview
By default we wrap the contents.

This will slightly worsen some coding previews, but greatly improve the
default preview for text files.
We will see if it makes sense to keep over time but this makes more
sense to me right now -- especially with zk.nvim using fzf-lua as
preview provider.
2025-09-03 12:59:05 +02:00
34096cff74
zk: Fix default directory for zk notebook dir
Use correct `$HOME` variable expansion instead of tilde.
2025-09-03 12:59:05 +02:00
590a012782
nvim: Remove FIXME for fzf instant single selection
We found the correct option and it does not instant-select single result
search anymore.
So we can remove the FIXME since it is indeed fixed.

WIP: ZK workflow improvements
2025-09-03 12:59:04 +02:00
1970dc9dbd
nvim: Remove terraform lint
Linting is also done by the LSP so we double up our error messages.
2025-09-03 12:59:04 +02:00
ecf28787b6
qutebrowser: Add quoteinvestigator search engine as quote 2025-09-03 12:59:03 +02:00
d6ef9acb1c
nvim: Start formatter on insertion mode
In addition to just before writing a buffer, we load the formatter
plugin when entering insertion mode.
2025-09-03 12:59:03 +02:00
44d76725cc
kanshi: Change internal output position for dockedall 2025-09-03 12:59:02 +02:00
8005f034d1
kanshi: Add vertical docked configuration 2025-09-03 12:59:01 +02:00
47736f5941
kanshi: Add aliases to config 2025-09-03 12:59:01 +02:00
6b91ca2609
nvim: Add sqruff sql linter 2025-08-18 13:23:41 +02:00
6b40d1eadf
nvim: Create terraform language setup 2025-08-18 13:23:41 +02:00
7da85801b4
nvim: Add more groq llm models to codecompanion 2025-08-17 12:35:13 +02:00
c381a0ffb6
task: Remove duplicate next report
While taskwarrior itself can handle the duplication, it errors other
programs like my taskopen python script.
2025-08-17 12:35:12 +02:00
4222648ab0
qutebrowser: Add personal read-it-later as search engine
Uses wallabag search which functions _extraordinarily_ badly, or I am
not sure how the search syntax is yet. Best to only search for single
words.
2025-08-17 12:35:12 +02:00
782798488e
nvim: Correctly concatenate prose filetypes
Correctly append md_like and org_like into prose filetypes.
And correctly load render_markdown for all md_like filetypes.

NOTE: _Still_ does not work to render for djot on my end. Is it because
of different TS queries? I am not sure.
2025-08-17 12:35:11 +02:00
083973e7c1
nvim: Improve markdown checkbox toggling
Also given new mapping. Hit `<c-t>` instead of `<c-x>`. `<c-x>` (in
insert mode) instead now brings up the path completion which was
previously on the other mapping.

On any line in a markdown-like file (i.e. markdown, quarto, djot, etc.),
we can hit `<c-t>` in normal mode or insert mode to toggle the current
line having a checkbox or not. It takes care to leave the current item a
list item like it was if it already was filled with content.

It does _not_ remove the list item even if it is empty, this may be an
improvement for the future (i.e., empty line -> we hit <c-t> -> line
turns into `- [ ] ` -> we hit <c-t> -> line stays `- `).
But care should be taken to not remove a list item if we don't intend
to, e.g. we could have toggled part of a list beforehand and don't want
to remove the list on each toggle. That's why it is more conservative
for now and I think it should work well enough (the case is likely to be
rare in my mind).

Also, while it does pick up the extended checkbox symbols ([o], [~], [-]),
those are currently hardcoded into the query.
In my mind it should pick those up dynamically from another plugin
instead of hardcoding here, e.g. render-markdown which also defines the
symbols?

Lastly, we could extend it to use treesitter queries instead / on top if
TS is found which would make it more robust than regex matching. But for
an hour of hacking it works quite well.
2025-08-17 12:35:08 +02:00
15 changed files with 289 additions and 97 deletions

View file

@ -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"
}

View file

@ -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({
{ "<localleader>c", group = "codecells" },
@ -11,18 +13,28 @@ if require("core.util").is_available("which-key") then
})
end
-- add tasks w/ <C-x>
map({ "i" }, "<C-x>", 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/ <C-x>
map({ "n", "i" }, "<C-t>", toggle_checkbox)
if require("core.util").is_available("zk") and require("zk.util").notebook_root(vim.fn.expand("%:p")) ~= nil then
map("n", "<CR>", "<cmd>lua vim.lsp.buf.definition()<cr>", { silent = true })

View file

@ -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" }
}

View file

@ -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",

View file

@ -82,7 +82,7 @@ return {
end,
},
},
event = { "BufWritePre" },
event = { "InsertEnter", "BufWritePre" },
opts = {},
},
}

View file

@ -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 = { "<leader>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 },
}

View file

@ -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 = {
{ "<leader>aa", "<cmd>CodeCompanionActions<cr>", desc = "Actions", silent = true, mode = { "n", "v" } },
{ "<leader>ac", "<cmd>CodeCompanionChat Toggle<cr>", desc = "Toggle chat", silent = true },
{ "<leader>ac", "<cmd>CodeCompanionChat Add<cr>", desc = "Add to chat", silent = true, mode = "v" },
},
cmd = { "CodeCompanionActions", "CodeCompanionChat", "CodeCompanion", "CodeCompanionCmd" },
cmd = {
"CodeCompanionActions",
"CodeCompanionChat",
"CodeCompanion",
"CodeCompanionCmd",
"CodeCompanionGitCommit",
},
},
}

View file

@ -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",
},
{
"<c-t>",
"<c-x>",
function()
require("fzf-lua").complete_path()
end,
@ -264,7 +269,7 @@ return { -- file/item pickers and managers
desc = "registers",
},
{
"<leader>fr",
"<leader>fj",
function()
require("fzf-lua").jumps()
end,

View file

@ -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,

View file

@ -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

View file

@ -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/{}",

View file

@ -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

View file

@ -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"}

View file

@ -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 "$@"

View file

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#
export ZK_NOTEBOOK_DIR="${WIKIROOT:-~/documents/notes/}"
export ZK_NOTEBOOK_DIR="${WIKIROOT:-$HOME/documents/notes/}"