diff --git a/home/dot_config/lf/lfrc b/home/dot_config/lf/lfrc new file mode 100644 index 00000000..61bdbcac --- /dev/null +++ b/home/dot_config/lf/lfrc @@ -0,0 +1,74 @@ +# Basic Settings +set hidden true +set ignorecase true +set icons true + +# Custom Functions +cmd mkdir ${{ + printf "Directory Name: " + read ans + mkdir $ans +}} + +cmd mkfile ${{ + printf "File Name: " + read ans + $EDITOR $ans +}} + +# Trash bindings +cmd trash ${{ + files=$(printf "$fx" | tr '\n' ';') + while [ "$files" ]; do + file=${files%%;*} + + trash-put "$(basename "$file")" + if [ "$files" = "$file" ]; then + files='' + else + files="${files#*;}" + fi + done +}} + +cmd restore_trash ${{ + trash-restore +}} + +# use '' key for either 'trash' or 'delete' command +map m +map D trash +map mf mkfile +map md mkdir + +# extract the current file with the right command +# (xkcd link: https://xkcd.com/1168/) +cmd extract ${{ + set -f + case $f in + *.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;; + *.tar.gz|*.tgz) tar xzvf $f;; + *.tar.xz|*.txz) tar xJvf $f;; + *.zip) unzip $f;; + *.rar) unrar x $f;; + *.7z) 7z x $f;; + esac +}} + +# compress current file or selected files with tar and gunzip +cmd tar ${{ + set -f + mkdir $1 + cp -r $fx $1 + tar czf $1.tar.gz $1 + rm -rf $1 +}} + +# compress current file or selected files with zip +cmd zip ${{ + set -f + mkdir $1 + cp -r $fx $1 + zip -r $1.zip $1 + rm -rf $1 +}} diff --git a/home/dot_config/nvim/after/plugin/keymap/harpoon.lua b/home/dot_config/nvim/after/plugin/keymap/harpoon.lua index d39cfcbd..b56f5bba 100644 --- a/home/dot_config/nvim/after/plugin/keymap/harpoon.lua +++ b/home/dot_config/nvim/after/plugin/keymap/harpoon.lua @@ -1,5 +1,4 @@ -local nnoremap = require("tstarr.keymap").nnoremap -local silent = { silent = true } +local wk = require("which-key") require("harpoon").setup({ menu = { @@ -7,10 +6,14 @@ require("harpoon").setup({ } }) -nnoremap("qa", function() require("harpoon.mark").add_file() end, silent) -nnoremap("ql", function() require("harpoon.ui").toggle_quick_menu() end, silent) - -nnoremap("1", function() require("harpoon.ui").nav_file(1) end, silent) -nnoremap("2", function() require("harpoon.ui").nav_file(2) end, silent) -nnoremap("3", function() require("harpoon.ui").nav_file(3) end, silent) -nnoremap("4", function() require("harpoon.ui").nav_file(4) end, silent) +wk.register({ + q = { + name = "+harpoon", + ["1"] = { function() require("harpoon.ui").nav_file(1) end, "Harpoon 1" }, + ["2"] = { function() require("harpoon.ui").nav_file(2) end, "Harpoon 2" }, + ["3"] = { function() require("harpoon.ui").nav_file(3) end, "Harpoon 3" }, + ["4"] = { function() require("harpoon.ui").nav_file(4) end, "Harpoon 4" }, + a = { function() require("harpoon.mark").add_file() end, "Add File" }, + l = { function() require("harpoon.ui").toggle_quick_menu() end, "List Files" } + }, +}, { prefix = "" }) diff --git a/home/dot_config/nvim/after/plugin/keymap/lazygit.lua b/home/dot_config/nvim/after/plugin/keymap/lazygit.lua index 34a0cea1..1fcd3dce 100644 --- a/home/dot_config/nvim/after/plugin/keymap/lazygit.lua +++ b/home/dot_config/nvim/after/plugin/keymap/lazygit.lua @@ -1,5 +1,8 @@ -local Remap = require("tstarr.keymap") -local nnoremap = Remap.nnoremap -local silent = { silent = true } +local wk = require("which-key") -nnoremap("gg", "LazyGit", silent) +wk.register({ + g = { + name = "+git", + g = { "LazyGit", "Lazygit" }, + }, +}, { prefix = "" }) diff --git a/home/dot_config/nvim/after/plugin/keymap/remap.lua b/home/dot_config/nvim/after/plugin/keymap/remap.lua index 25d285ae..b0eb0565 100644 --- a/home/dot_config/nvim/after/plugin/keymap/remap.lua +++ b/home/dot_config/nvim/after/plugin/keymap/remap.lua @@ -1,14 +1,22 @@ -local nnoremap = require("tstarr.keymap").nnoremap +local wk = require("which-key") -nnoremap("pv", "Ex") - -nnoremap("tn", "tabnew") -nnoremap("th", "tabn") -nnoremap("tl", "tabp") -nnoremap("tc", "tabc") - -nnoremap("h", "h") -nnoremap("j", "j") -nnoremap("k", "k") -nnoremap("l", "l") -nnoremap("H", "wincmd p") +wk.register({ + -- netrw commands + n = { + name = "+netrw", + v = { "Ex", "Explorer" } + }, + -- tab commands + t = { + name = "+tab", + f = { "tabnew", "New" }, + g = { "tabn", "Next" }, + b = { "tabp","Previous" }, + h = { "tabc", "Close" } + }, + -- pane movement commands + h = { "h", "Pane Left" }, + j = { "j", "Pane Down" }, + k = { "k", "Pane Up" }, + l = { "l", "Pane Right" } +}, { prefix = "" }) diff --git a/home/dot_config/nvim/after/plugin/keymap/telescope.lua b/home/dot_config/nvim/after/plugin/keymap/telescope.lua index 1bcf4bf3..60af53be 100644 --- a/home/dot_config/nvim/after/plugin/keymap/telescope.lua +++ b/home/dot_config/nvim/after/plugin/keymap/telescope.lua @@ -1,20 +1,12 @@ -local Remap = require("tstarr.keymap") -local nnoremap = Remap.nnoremap - -nnoremap("ff", function () - require('telescope.builtin').find_files({hidden=true, no_ignore=true}) -end) -nnoremap("fg", function () - require('telescope.builtin').live_grep() -end) -nnoremap("fb", function () - require('telescope.builtin').buffers() -end) -nnoremap("fh", function () - require('telescope.builtin').help_tags() -end) - -nnoremap("p", function () - require('telescope').extensions.project.project() -end) +local wk = require("which-key") +wk.register({ + p = { function () require('telescope').extensions.project.project() end, "Project" }, + f = { + name = "+telescope", + f = { function () require('telescope.builtin').find_files() end, "Files" }, + g = { function () require('telescope.builtin').live_grep() end, "Ripgrep" }, + b = { function () require('telescope.builtin').buffers() end, "Buffers" }, + h = { function () require('telescope.builtin').help_tags() end, "Help" } + }, +}, { prefix = "" }) diff --git a/home/dot_config/nvim/after/plugin/keymap/undotree.lua b/home/dot_config/nvim/after/plugin/keymap/undotree.lua index 5a567324..cfb5ef20 100644 --- a/home/dot_config/nvim/after/plugin/keymap/undotree.lua +++ b/home/dot_config/nvim/after/plugin/keymap/undotree.lua @@ -1,4 +1,9 @@ -local nnoremap = require("tstarr.keymap").nnoremap +local wk = require("which-key") -nnoremap("u", "UndotreeFocus") -nnoremap("ut", "UndotreeToggle") +wk.register({ + q = { + name = "+undotree", + u = { "UndotreeFocus", "Focus Tree" }, + t = { "UndotreeToggle", "Toggle Tree" } + }, +}, { prefix = "" }) diff --git a/home/dot_config/nvim/after/plugin/keymap/vimwiki.lua b/home/dot_config/nvim/after/plugin/keymap/vimwiki.lua new file mode 100644 index 00000000..d62390b7 --- /dev/null +++ b/home/dot_config/nvim/after/plugin/keymap/vimwiki.lua @@ -0,0 +1,19 @@ +local wk = require("which-key") + +wk.register({ + w = { + name = "+vimwiki", + i = { "VimwikiDiaryIndex", "Diary Index" }, + s = { "VimwikiUISelect", "Select Index" }, + t = { "VimwikiTabIndex", "Index Tab" }, + w = { "VimwikiIndex", "Index" }, + [""] = { + name = "+diary", + i = { "VimwikiDiaryGenerateLinks", "Generate Links" }, + m = { "VimwikiMakeTomorrowDiaryNote", "Make Tomorrow Note" }, + t = { "VimwikiTabMakeDiaryNote", "Make Today Note" }, + w = { "VimwikiDiaryNote", "Today Note" }, + y = { "VimwikiMakeYesterdayDiaryNote", "Make Yesterday Note" } + } + }, +}, { prefix = "" }) diff --git a/home/dot_config/nvim/lua/tstarr/init.lua b/home/dot_config/nvim/lua/tstarr/init.lua index 7b5ca230..139790ab 100644 --- a/home/dot_config/nvim/lua/tstarr/init.lua +++ b/home/dot_config/nvim/lua/tstarr/init.lua @@ -1,3 +1,5 @@ require("tstarr.set") require("tstarr.packer") require("tstarr.telescope") +require("tstarr.vimwiki") +require("tstarr.which-key") diff --git a/home/dot_config/nvim/lua/tstarr/packer.lua b/home/dot_config/nvim/lua/tstarr/packer.lua index c73b5cd8..db34a312 100644 --- a/home/dot_config/nvim/lua/tstarr/packer.lua +++ b/home/dot_config/nvim/lua/tstarr/packer.lua @@ -35,5 +35,7 @@ return require('packer').startup(function(use) use ('saadparwaiz1/cmp_luasnip') use ('alker0/chezmoi.vim') use ('nathangrigg/vim-beancount') + use ('vimwiki/vimwiki') + use ('folke/which-key.nvim') end) diff --git a/home/dot_config/nvim/lua/tstarr/telescope.lua b/home/dot_config/nvim/lua/tstarr/telescope.lua index 8c5d72b9..18dadea7 100644 --- a/home/dot_config/nvim/lua/tstarr/telescope.lua +++ b/home/dot_config/nvim/lua/tstarr/telescope.lua @@ -1,5 +1,3 @@ ---require'telescope'.load_extension('project') - require('telescope').setup { extensions = { project = { diff --git a/home/dot_config/nvim/lua/tstarr/vimwiki.lua b/home/dot_config/nvim/lua/tstarr/vimwiki.lua new file mode 100644 index 00000000..69b1a831 --- /dev/null +++ b/home/dot_config/nvim/lua/tstarr/vimwiki.lua @@ -0,0 +1,16 @@ +vim.g.vimwiki_list = { + { + path = '~/documents/vimwiki/main', + syntax = 'markdown', + ext = '.md' + } +} + +vim.g.vimwiki_ext2syntax = { + ['.md'] = 'markdown', + ['.markdown'] = 'markdown', + ['.mdown'] = 'markdown', +} + +vim.g.vimwiki_global_ext = 0 -- don't treat all md files as vimwiki +vim.g.vimwiki_markdown_link_ext = 1 diff --git a/home/dot_config/nvim/lua/tstarr/which-key.lua b/home/dot_config/nvim/lua/tstarr/which-key.lua new file mode 100644 index 00000000..03793555 --- /dev/null +++ b/home/dot_config/nvim/lua/tstarr/which-key.lua @@ -0,0 +1,7 @@ +vim.o.timeout = true +vim.o.timeoutlen = 300 + +require('which-key').setup{ + +} + diff --git a/provision/tasks/terminal/packages.yml b/provision/tasks/terminal/packages.yml index 4f7a00c6..4e08a4f2 100644 --- a/provision/tasks/terminal/packages.yml +++ b/provision/tasks/terminal/packages.yml @@ -4,6 +4,7 @@ - neovim # Vim-fork focused on extensibility and agility - task # Command-line TODO list manager - timewarrior # Timewarrior tracks and reports time + - python3-tasklib # Library for interacting with taskwarrior databases (Python3) - vifm # Ncurses-based file manager with vi-like keybindings - zsh # Z SHell - tmux # Terminal Multiplexer @@ -17,6 +18,11 @@ state: present become: true +- name: Install terminal python packages + ansible.builtin.pip: + name: + - pynvim + - name: Install terminal xbps-src packages tags: ["src"] include_tasks: ../include/xbps-src.yml