update README, include compiledoc script and integration into nvim
This commit is contained in:
parent
d3b2d0f9e6
commit
e1ba15f5f9
14
README.md
14
README.md
@ -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
|
@ -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')
|
||||||
|
34
roles/nvim/files/lua/compileDoc.lua
Normal file
34
roles/nvim/files/lua/compileDoc.lua
Normal 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
|
23
roles/nvim/files/lua/snippets/all.lua
Normal file
23
roles/nvim/files/lua/snippets/all.lua
Normal 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, {})
|
||||||
|
)
|
||||||
|
}
|
54
roles/nvim/files/lua/snippets/tex.lua
Normal file
54
roles/nvim/files/lua/snippets/tex.lua
Normal 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}'}})
|
||||||
|
}
|
17
roles/nvim/files/lua/telescope_customs.lua
Normal file
17
roles/nvim/files/lua/telescope_customs.lua
Normal 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
|
@ -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:
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user