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