update README, include compiledoc script and integration into nvim

This commit is contained in:
Max Hohlfeld 2022-12-23 16:26:14 +01:00
parent d3b2d0f9e6
commit e1ba15f5f9
8 changed files with 175 additions and 31 deletions

View File

@ -0,0 +1,14 @@
# alkaa
`alkaa` - finnish `to start`, `to begin`
This project contains my dotfiles and scripts for daily usage. In addition to that, it is organised into [Ansible](https://docs.ansible.com/ansible/latest/index.html) roles for managing the deployment of those files. [Just](https://github.com/casey/just), a modern make replacement, is used too, so I don't need to remember all the Ansible commands.
## Included Software
- xmonad
- alacritty
- xmobar
- dunst
- neovim
- git
- scripts
- `compiledoc` - compile a markdown or latex file into pdf using pandoc and tectonic

View File

@ -1,8 +1,8 @@
local fn = vim.fn local fn = vim.fn
local opt = vim.opt local opt = vim.opt
local map = vim.api.nvim_set_keymap local map = vim.api.nvim_set_keymap
local buf_map = vim.api.nvim_buf_set_keymap
local unmap = vim.api.nvim_del_keymap local unmap = vim.api.nvim_del_keymap
local augroup = vim.api.nvim_create_augroup
local autocmd = vim.api.nvim_create_autocmd local autocmd = vim.api.nvim_create_autocmd
local install_path = fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim' local install_path = fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim'
@ -42,8 +42,6 @@ require('packer').startup(function()
use 'nvim-telescope/telescope.nvim' -- Fuzzy Finder use 'nvim-telescope/telescope.nvim' -- Fuzzy Finder
use 'tamago324/lir.nvim' -- Filebrowser use 'tamago324/lir.nvim' -- Filebrowser
use 'jakewvincent/mkdnflow.nvim' -- Notetaking use 'jakewvincent/mkdnflow.nvim' -- Notetaking
use 'davidgranstrom/nvim-markdown-preview' -- Markdown Livepreview
use 'xuhdev/vim-latex-live-preview' -- Latex Livepreview
use 'norcalli/nvim-colorizer.lua' -- render Color Codes use 'norcalli/nvim-colorizer.lua' -- render Color Codes
use 'aklt/plantuml-syntax' -- Plantuml Syntax, till treesitter supports Plantuml use 'aklt/plantuml-syntax' -- Plantuml Syntax, till treesitter supports Plantuml
use { use {
@ -73,10 +71,7 @@ opt.completeopt = 'menuone,noinsert,noselect'
map('n', '<Space>w', '<cmd>w<cr>', { noremap = true }) map('n', '<Space>w', '<cmd>w<cr>', { noremap = true })
map('n', '<Space>q', '<cmd>wq<cr>', { noremap = true }) map('n', '<Space>q', '<cmd>wq<cr>', { noremap = true })
map('n', 'ZO', '<cmd>!compiler %<cr>', { noremap = true })
map('n', 'ZK', '<cmd>!kdeconnect-cli -d 3993d52f1018a472 --share %<cr>', { noremap = true })
map('n', '<Esc><Esc>', '<cmd>let @/ = ""<cr>', { noremap = true }) map('n', '<Esc><Esc>', '<cmd>let @/ = ""<cr>', { noremap = true })
map('n', '<leader>plp', '<cmd>!feh %:s?pu?png? &<cr>', { noremap = true })
-- Splits -- Splits
map('n', '<C-h>', '<C-w>h', { noremap = true }) map('n', '<C-h>', '<C-w>h', { noremap = true })
@ -87,14 +82,22 @@ map('n', '<C-l>', '<C-w>l', { noremap = true })
opt.splitbelow = true opt.splitbelow = true
opt.splitright = true opt.splitright = true
-- Identation with autocmd -- Autocommands
augroup('programming', {})
autocmd({ 'BufNewFile', 'BufRead' }, { autocmd({ 'BufNewFile', 'BufRead' }, {
group = 'programming',
desc = 'Set Filetype to sailfish for .stpl files', desc = 'Set Filetype to sailfish for .stpl files',
pattern = { '*stpl' }, pattern = { '*stpl' },
command = 'setlocal filetype=sailfish' command = 'setlocal filetype=sailfish'
}) })
autocmd({ 'BufNewFile', 'BufRead' }, {
desc = 'When editing .md and .tex files, register commands for live preview',
pattern = { '*.md', '*.tex' },
callback = function()
buf_map(0, 'n', '<leader>p', '<cmd>lua require("compileDoc").open_document_preview()<CR>', { noremap = true })
buf_map(0, 'n', '<leader>P', '<cmd>lua require("compileDoc").close_document_preview()<CR>', { noremap = true })
end
})
vim.cmd("au BufRead *.yaml,*.yml if search('hosts:\\|tasks:\\|ansible.builtin', 'nw') | set ft=yaml.ansible | endif") vim.cmd("au BufRead *.yaml,*.yml if search('hosts:\\|tasks:\\|ansible.builtin', 'nw') | set ft=yaml.ansible | endif")
-- Spellcheck -- Spellcheck
@ -281,7 +284,6 @@ cmp.setup.cmdline({ '/', '?' }, {
} }
}) })
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline(':', { cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(), mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({ sources = cmp.config.sources({
@ -325,24 +327,17 @@ require('mkdnflow').setup({
} }
}) })
autocmd('FileType', { autocmd({ 'BufRead', 'BufNewFile' }, {
desc = 'Set auto write all for markdown files', desc = 'Set note taking settings for nvim in vimwiki directory',
pattern = { 'markdown' }, pattern = { '*/vimwiki/**' },
command = 'set awa' callback = function()
vim.cmd('set awa')
vim.wo.conceallevel = 2
vim.keymap.set('n', '<bs>', ':edit #<cr>', { silent = true })
map('n', '<Leader>wf', '<cmd>lua require("telescope_customs").find_wiki()<cr>', { noremap = true })
map('n', '<Leader>wg', '<cmd>lua require("telescope_customs").grep_wiki()<cr>', { noremap = true })
end
}) })
vim.wo.conceallevel = 2
vim.keymap.set('n', '<bs>', ':edit #<cr>', { silent = true })
map('n', '<Leader>wf', '<cmd>lua require("telescope_customs").find_wiki()<cr>', { noremap = true })
map('n', '<Leader>wg', '<cmd>lua require("telescope_customs").grep_wiki()<cr>', { noremap = true })
-- Markdown Live Preview
vim.g.nvim_markdown_preview_format = 'markdown'
map('n', '<leader>mlp', '<cmd>MarkdownPreview<cr>', { noremap = true })
-- Latex Live Preview
vim.g.livepreview_previewer = 'zathura'
vim.g.livepreview_use_biber = 1
map('n', '<leader>llp', '<cmd>LLPStartPreview<cr>', { noremap = true })
-- Lir Filebrowser -- Lir Filebrowser
local actions = require('lir.actions') local actions = require('lir.actions')

View File

@ -0,0 +1,34 @@
local M = {}
local pdf_viewer_pid = 0
local compile = function(file)
vim.fn.jobstart({ "compiledoc", file }, {
on_exit = function() print("Finished compiling.") end
})
end
M.open_document_preview = function()
local filename = vim.api.nvim_buf_get_name(0)
compile(filename)
vim.api.nvim_create_augroup("compileDoc", {})
vim.api.nvim_create_autocmd("BufWritePost", {
group = "compileDoc",
pattern = { "*.tex", "*.md" },
callback = function() compile(filename) end
})
local pdf_filename = string.gsub(filename, "%..+$", ".pdf")
pdf_viewer_pid = vim.fn.jobstart({ "zathura", pdf_filename })
end
M.close_document_preview = function()
vim.api.nvim_del_augroup_by_name("compileDoc")
if (pdf_viewer_pid ~= 0) then
vim.fn.jobstop(pdf_viewer_pid)
end
end
return M

View File

@ -0,0 +1,23 @@
local ls = require("luasnip")
local s = ls.snippet
local sn = ls.snippet_node
local t = ls.text_node
local i = ls.insert_node
local f = ls.function_node
local c = ls.choice_node
local d = ls.dynamic_node
local l = require("luasnip.extras").lambda
local r = require("luasnip.extras").rep
local p = require("luasnip.extras").partial
local m = require("luasnip.extras").match
local n = require("luasnip.extras").nonempty
local dl = require("luasnip.extras").dynamic_lambda
local types = require("luasnip.util.types")
return {
s({ trig = "date", dscr = "Print current date"},
f(function(args)
return os.date("%F")
end, {})
)
}

View File

@ -0,0 +1,54 @@
local ls = require("luasnip")
local s = ls.snippet
local sn = ls.snippet_node
local t = ls.text_node
local i = ls.insert_node
local f = ls.function_node
local c = ls.choice_node
local d = ls.dynamic_node
local l = require("luasnip.extras").lambda
local r = require("luasnip.extras").rep
local p = require("luasnip.extras").partial
local m = require("luasnip.extras").match
local n = require("luasnip.extras").nonempty
local dl = require("luasnip.extras").dynamic_lambda
local types = require("luasnip.util.types")
local rec_ls
rec_ls = function()
return sn(
nil,
c(1, {
-- Order is important, sn(...) first would cause infinite loop of expansion.
t(""),
sn(nil, { t({ "", "\t\\item " }), i(1), d(2, rec_ls, {}) }),
})
)
end
return {
s({trig = "ul", dscr = "Itemize with endless items"}, {
t({ "\\begin{itemize}", "\t\\item " }),
i(1),
d(2, rec_ls, {}),
t({ "", "\\end{itemize}" }),
}),
s({trig = "ol", dscr = "Enumerate with endless items"}, {
t({ "\\begin{enumerate}", "\t\\item " }),
i(1),
d(2, rec_ls, {}),
t({ "", "\\end{enumerate}" }),
}),
s({trig = "sec", dscr = "Section" }, {
c(1, {
t '\\section{',
t '\\subsection{',
t '\\subsubsection{'
}), i(2), t '}', i(0)
}),
s({trig = "bf", dscr = "textbf"}, { t({"\\textbf{"}), i(1), t({"}"}), i(0) }),
s({trig = "it", dscr = "textit"}, { t({"\\textit{"}), i(1), t({"}"}), i(0) }),
s({trig = "rm", dscr = "textrm"}, { t({"\\textrm{"}), i(1), t({"}"}), i(0) }),
s({trig = "verb", dscr = "verb"}, { t({"\\verb|"}), i(1), t({"|"}), i(0) }),
s({trig = "frame", dscr="New frame"}, {t {'\\begin{frame}', '\t'}, i(0), t {'', '\\end{frame}'}})
}

View File

@ -0,0 +1,17 @@
local M = {}
local wiki_opts = {
search_dirs = {
[1] = "~/.local/share/vimwiki"
}
}
M.find_wiki = function()
require'telescope.builtin'.find_files(wiki_opts)
end
M.grep_wiki = function()
require'telescope.builtin'.live_grep(wiki_opts)
end
return M

View File

@ -48,6 +48,12 @@
dest: ~/.config/nvim/init.lua dest: ~/.config/nvim/init.lua
mode: '0755' mode: '0755'
- name: Copy over lua modules
ansible.builtin.copy:
src: lua
dest: ~/.config/nvim/
mode: '0755'
- name: Install language servers - name: Install language servers
become: true become: true
ansible.builtin.package: ansible.builtin.package:

View File

@ -10,12 +10,13 @@ ext="${file##*.}"
cd "$dir" || exit 1 cd "$dir" || exit 1
compile_tex() { \ compile_tex() { \
if [ -e "$dir/Tectonic.toml"]; then if [ -e "$dir/../Tectonic.toml" -o -e "$dir/../../Tectonic.toml" ]; then
tectonic -X build tectonic -X build
else else
params="" params=""
( grep -q minted $file) && params="$params -Z shell-escape" ( grep -q minted $file) && params="$params -Z shell-escape-cwd=$dir"
tectonic -X compile "$params" $file tectonic -X compile$params $file
rm "$base.aux" "$base.bbl" "$base.bcf" "$base.blg" "$base.log" "$base.out" "$base.run.xml" "$base.toc" "$base.xdv"
fi fi
} }
@ -29,5 +30,5 @@ case "$ext" in
-V mainfont="Liberation Sans" \ -V mainfont="Liberation Sans" \
-V monofont="Liberation Mono" \ -V monofont="Liberation Mono" \
-o "$base".pdf "$file" ;; -o "$base".pdf "$file" ;;
tex) textype "$file" ;; tex) compile_tex ;;
esac esac