bootstrap: Update package list
Updated package list for March 2022. Contains some small fixes for missing packages like transmission khal and nsxiv that I have started using more heavily and removed some redundancies, especially around the big X switch some time back. Generally, no huge changes. Fixes #1.
This commit is contained in:
parent
ebf4274c5b
commit
4d048aecd8
1 changed files with 63 additions and 0 deletions
63
nvim/.config/nvim/lua/personal/openpdf.lua
Normal file
63
nvim/.config/nvim/lua/personal/openpdf.lua
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
-- will open the pdf file for whatever file i am currently viewing.
|
||||||
|
-- POC only and only useful in a ALMP context for now.
|
||||||
|
local fn = vim.fn
|
||||||
|
|
||||||
|
local function isDirectory(ftype)
|
||||||
|
if ftype == 'directory' then return true end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local function isFile(ftype)
|
||||||
|
if ftype == 'file' then return true end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local function cleanPath(path)
|
||||||
|
if path:match("^~") then path = os.getenv("HOME") .. path:sub(2) end
|
||||||
|
return path
|
||||||
|
end
|
||||||
|
-- Returns a set of all files at the target directory, as well
|
||||||
|
-- as subdirectories if the recursive argument is set to true.
|
||||||
|
-- Set has the form { "full/path/name.md" = "name.md" }
|
||||||
|
local function get_all_files(path, recursive)
|
||||||
|
local f = {}
|
||||||
|
path = cleanPath(path)
|
||||||
|
|
||||||
|
local handle = vim.loop.fs_scandir(path)
|
||||||
|
while handle do
|
||||||
|
local name, ftype = vim.loop.fs_scandir_next(handle)
|
||||||
|
if not name then break end
|
||||||
|
|
||||||
|
if isDirectory(ftype) and recursive then
|
||||||
|
local subdir = get_all_files(path .. "/" .. name, true)
|
||||||
|
for k, v in pairs(subdir) do f[tostring(k)] = v end
|
||||||
|
end
|
||||||
|
|
||||||
|
if isFile(ftype) then f[tostring(path .. "/" .. name)] = name end
|
||||||
|
end
|
||||||
|
|
||||||
|
return f
|
||||||
|
end
|
||||||
|
|
||||||
|
local function get_basename()
|
||||||
|
local name = fn.expand("%:t")
|
||||||
|
return string.gsub(name, ".md", "")
|
||||||
|
end
|
||||||
|
|
||||||
|
local function find_pdf(dir, bibkey)
|
||||||
|
local pdfs = get_all_files(dir)
|
||||||
|
for k, v in pairs(pdfs) do if v:find(bibkey, 0, true) then return k end end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function open_pdf(name) fn.jobstart("zathura '" .. name .. "'") end
|
||||||
|
|
||||||
|
local function openCurrentPdf()
|
||||||
|
local fname = get_basename()
|
||||||
|
local pdf_path = find_pdf(
|
||||||
|
"/home/marty/projects/jobs/almp/output/Literature",
|
||||||
|
fname)
|
||||||
|
print(pdf_path)
|
||||||
|
open_pdf(pdf_path)
|
||||||
|
end
|
||||||
|
|
||||||
|
return {open = openCurrentPdf}
|
Loading…
Reference in a new issue