small updates
This commit is contained in:
@@ -290,7 +290,7 @@ windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned
|
|||||||
workspace = special:keepass, on-created-empty:keepassxc
|
workspace = special:keepass, on-created-empty:keepassxc
|
||||||
windowrule = float, class:org.keepassxc.KeePassXC
|
windowrule = float, class:org.keepassxc.KeePassXC
|
||||||
windowrule = noscreenshare, class:org.keepassxc.KeePassXC
|
windowrule = noscreenshare, class:org.keepassxc.KeePassXC
|
||||||
windowrule = size 60%, 60%, class:org.keepassxc.KeePassXC
|
windowrule = size 60% 60%, class:org.keepassxc.KeePassXC
|
||||||
windowrule = center, class:org.keepassxc.KeePassXC
|
windowrule = center, class:org.keepassxc.KeePassXC
|
||||||
|
|
||||||
## ========== Communication ==========
|
## ========== Communication ==========
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
-- Minimal Markdown + math workflow (FOSS/KISS):
|
-- Minimal Markdown + math workflow (FOSS/KISS):
|
||||||
-- - Blink completion of LaTeX symbols in Markdown
|
-- - Blink completion of LaTeX symbols in Markdown
|
||||||
-- - :MdPdf to compile current .md -> PDF via Pandoc (LuaLaTeX) and open in Zathura
|
-- - :MdPdf for one-shot Pandoc -> PDF (LuaLaTeX) and open in Zathura (auto-reload)
|
||||||
-- - Ensure Treesitter grammars for markdown
|
-- - :MdWatch / :MdWatchStop to rebuild on save via `entr`
|
||||||
|
|
||||||
return {
|
return {
|
||||||
-- Extend blink.cmp sources so Markdown gets LaTeX symbol completion (inserts \alpha, not α)
|
-- Markdown gets LaTeX symbol completion (inserts \alpha, not α)
|
||||||
{
|
{
|
||||||
"Saghen/blink.cmp",
|
"Saghen/blink.cmp",
|
||||||
optional = true,
|
optional = true,
|
||||||
@@ -17,7 +16,7 @@ return {
|
|||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Ensure Treesitter grammars for better Markdown editing
|
-- Ensure Treesitter grammars for Markdown editing
|
||||||
{
|
{
|
||||||
"nvim-treesitter/nvim-treesitter",
|
"nvim-treesitter/nvim-treesitter",
|
||||||
opts = function(_, opts)
|
opts = function(_, opts)
|
||||||
@@ -28,47 +27,109 @@ return {
|
|||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Add a simple :MdPdf command and a keymap
|
-- Commands + keymaps
|
||||||
{
|
{
|
||||||
"AstroNvim/astrocore",
|
"AstroNvim/astrocore",
|
||||||
opts = {
|
init = function()
|
||||||
commands = {
|
local function have(bin) return vim.fn.executable(bin) == 1 end
|
||||||
MdPdf = {
|
|
||||||
function()
|
local function pandoc_cmd(input_md)
|
||||||
local stem = vim.fn.expand "%:r"
|
local stem = input_md:gsub("%.md$", "")
|
||||||
local ext = vim.fn.expand "%:e"
|
local md = vim.fn.shellescape(input_md)
|
||||||
if ext ~= "md" then
|
local pdf = vim.fn.shellescape(stem .. ".pdf")
|
||||||
vim.notify("MdPdf: open a Markdown file (*.md)", vim.log.levels.WARN)
|
local cmd = ("pandoc %s -o %s --from=markdown+tex_math_dollars+raw_tex --pdf-engine=lualatex --citeproc"):format(
|
||||||
return
|
md,
|
||||||
|
pdf
|
||||||
|
)
|
||||||
|
return cmd, (stem .. ".pdf")
|
||||||
|
end
|
||||||
|
|
||||||
|
-- One-shot: build PDF and open Zathura once (it auto-reloads)
|
||||||
|
vim.api.nvim_create_user_command("MdPdf", function()
|
||||||
|
if not have "pandoc" then
|
||||||
|
vim.notify("MdPdf: pandoc not found. Install pandoc.", vim.log.levels.ERROR)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local name = vim.api.nvim_buf_get_name(0)
|
||||||
|
if name == "" or not name:match "%.md$" then
|
||||||
|
vim.notify("MdPdf: open a Markdown (*.md) file", vim.log.levels.WARN)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local cmd, pdf = pandoc_cmd(name)
|
||||||
|
vim.fn.jobstart({ "sh", "-c", cmd }, {
|
||||||
|
detach = true,
|
||||||
|
on_exit = function()
|
||||||
|
if have "zathura" and not vim.g._mdpdf_zathura_opened then
|
||||||
|
vim.g._mdpdf_zathura_opened = true
|
||||||
|
vim.fn.jobstart({ "zathura", "--fork", pdf }, { detach = true })
|
||||||
end
|
end
|
||||||
local cmd = {
|
|
||||||
"pandoc",
|
|
||||||
stem .. ".md",
|
|
||||||
"-o",
|
|
||||||
stem .. ".pdf",
|
|
||||||
"--from=markdown+tex_math_dollars+raw_tex",
|
|
||||||
"--pdf-engine=lualatex",
|
|
||||||
"--citeproc",
|
|
||||||
}
|
|
||||||
vim.fn.jobstart(cmd, {
|
|
||||||
detach = true,
|
|
||||||
on_exit = function()
|
|
||||||
-- Open Zathura only once per session; it will auto-reload on subsequent builds
|
|
||||||
if not vim.g._mdpdf_zathura_opened then
|
|
||||||
vim.g._mdpdf_zathura_opened = true
|
|
||||||
vim.fn.jobstart({ "zathura", "--fork", stem .. ".pdf" }, { detach = true })
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end,
|
end,
|
||||||
desc = "Pandoc → PDF (LuaLaTeX) and open in Zathura",
|
})
|
||||||
},
|
end, {})
|
||||||
},
|
|
||||||
mappings = {
|
-- Continuous: watch with entr and rebuild on change
|
||||||
n = {
|
vim.api.nvim_create_user_command("MdWatch", function()
|
||||||
["<leader>mp"] = { "<cmd>MdPdf<cr>", desc = "Markdown → PDF (Pandoc)" },
|
if not have "pandoc" then
|
||||||
},
|
vim.notify("MdWatch: pandoc not found. Install pandoc.", vim.log.levels.ERROR)
|
||||||
},
|
return
|
||||||
},
|
end
|
||||||
|
if not have "entr" then
|
||||||
|
vim.notify("MdWatch: entr not found. Install entr.", vim.log.levels.ERROR)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local buf = vim.api.nvim_get_current_buf()
|
||||||
|
local name = vim.api.nvim_buf_get_name(buf)
|
||||||
|
if name == "" or not name:match "%.md$" then
|
||||||
|
vim.notify("MdWatch: open a Markdown (*.md) file", vim.log.levels.WARN)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- First build (also opens Zathura once)
|
||||||
|
vim.cmd "MdPdf"
|
||||||
|
|
||||||
|
local cmd, _ = pandoc_cmd(name)
|
||||||
|
local qfile = vim.fn.shellescape(name)
|
||||||
|
local pipeline = ("printf %%s\\n %s | entr -r sh -c %s"):format(qfile, vim.fn.shellescape(cmd))
|
||||||
|
local jobid = vim.fn.jobstart({ "sh", "-c", pipeline }, { detach = false })
|
||||||
|
if jobid <= 0 then
|
||||||
|
vim.notify("MdWatch: failed to start entr", vim.log.levels.ERROR)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
vim.b.md_kiss_watch_job = jobid
|
||||||
|
vim.notify("MdWatch: watching " .. name .. " (use :MdWatchStop to stop)", vim.log.levels.INFO)
|
||||||
|
|
||||||
|
-- Auto-stop when buffer unloads
|
||||||
|
vim.api.nvim_create_autocmd({ "BufUnload", "BufWipeout" }, {
|
||||||
|
buffer = buf,
|
||||||
|
once = true,
|
||||||
|
callback = function()
|
||||||
|
if vim.b.md_kiss_watch_job then pcall(vim.fn.jobstop, vim.b.md_kiss_watch_job) end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end, {})
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command("MdWatchStop", function()
|
||||||
|
local job = vim.b.md_kiss_watch_job
|
||||||
|
if job then
|
||||||
|
pcall(vim.fn.jobstop, job)
|
||||||
|
vim.b.md_kiss_watch_job = nil
|
||||||
|
vim.notify("MdWatch: stopped", vim.log.levels.INFO)
|
||||||
|
else
|
||||||
|
vim.notify("MdWatch: no watcher running for this buffer", vim.log.levels.WARN)
|
||||||
|
end
|
||||||
|
end, {})
|
||||||
|
|
||||||
|
-- Buffer-local keymaps for Markdown
|
||||||
|
local group = vim.api.nvim_create_augroup("md_kiss_keys", { clear = true })
|
||||||
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
|
group = group,
|
||||||
|
pattern = "markdown",
|
||||||
|
callback = function(args)
|
||||||
|
vim.keymap.set("n", "<leader>mP", "<cmd>MdPdf<CR>", { buffer = args.buf, desc = "Markdown → PDF (Pandoc)" })
|
||||||
|
vim.keymap.set("n", "<leader>mw", "<cmd>MdWatch<CR>", { buffer = args.buf, desc = "Watch & rebuild (entr)" })
|
||||||
|
vim.keymap.set("n", "<leader>mW", "<cmd>MdWatchStop<CR>", { buffer = args.buf, desc = "Stop watch" })
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
# Added by Toolbox App
|
# Added by Toolbox App
|
||||||
export PATH="${PATH}:/home/mpuchstein/.local/share/JetBrains/Toolbox/scripts"
|
export PATH="${PATH}:/home/mpuchstein/.local/share/JetBrains/Toolbox/scripts"
|
||||||
|
|
||||||
export PATH="${PATH}:/home/mpuchstein/.local/bin"
|
export PATH="${PATH}:/home/mpuchstein/.local/bin"
|
||||||
export PATH="${PATH}:/home/mpuchstein/.cargo/bin"
|
export PATH="${PATH}:/home/mpuchstein/.cargo/bin"
|
||||||
|
|
||||||
@@ -41,3 +42,5 @@ export LD_LIBRARY_PATH=/opt/rocm/lib:$LD_LIBRARY_PATH
|
|||||||
export PYENV_ROOT="$HOME/.pyenv"
|
export PYENV_ROOT="$HOME/.pyenv"
|
||||||
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
|
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
|
||||||
eval "$(pyenv init - zsh)"
|
eval "$(pyenv init - zsh)"
|
||||||
|
|
||||||
|
export MAMBA_ROOT_PREFIX="$HOME/.mamba
|
||||||
|
|||||||
Reference in New Issue
Block a user