commit 1a2f66c37487dac9429eb647117f0ad45375f60d Author: Norm Rasmussen Date: Wed Feb 15 11:15:29 2023 -0500 First Consolidation of dotfiles diff --git a/nvim/.config/nvim/data/.DS_Store b/nvim/.config/nvim/data/.DS_Store new file mode 100644 index 0000000..e56a20e Binary files /dev/null and b/nvim/.config/nvim/data/.DS_Store differ diff --git a/nvim/.config/nvim/data/lsp_servers/bash.lua b/nvim/.config/nvim/data/lsp_servers/bash.lua new file mode 100644 index 0000000..4011d9a --- /dev/null +++ b/nvim/.config/nvim/data/lsp_servers/bash.lua @@ -0,0 +1,6 @@ +local lsp_config = require('nvim-lspconfig') +local on_attach = require('lsp/on_attach') + +lsp_config.bashls.setup({ + on_attach = on_attach +}) diff --git a/nvim/.config/nvim/data/lsp_servers/css.lua b/nvim/.config/nvim/data/lsp_servers/css.lua new file mode 100644 index 0000000..78aad55 --- /dev/null +++ b/nvim/.config/nvim/data/lsp_servers/css.lua @@ -0,0 +1,21 @@ +local lsp_config = require('nvim-lspconfig') +local on_attach = require('lsp/on_attach') + +lsp_config.cssls.setup({ + filetypes = { 'css', 'sass', 'scss' }, + settings = { + css = { + validate = true + }, + sass = { + validate = true + }, + scss = { + validate = true + } + }, + on_attach = function(client) + client.resolved_capabilities.document_formatting = false + on_attach(client) + end +}) diff --git a/nvim/.config/nvim/data/lsp_servers/html.lua b/nvim/.config/nvim/data/lsp_servers/html.lua new file mode 100644 index 0000000..92b35a4 --- /dev/null +++ b/nvim/.config/nvim/data/lsp_servers/html.lua @@ -0,0 +1,9 @@ +local lsp_config = require('plugins/nvim-lspconfig') +local on_attach = require('lsp/on_attach') + +lsp_config.html.setup({ + on_attach = function(client) + client.resolved_capabilities.document_formatting = false + on_attach(client) + end +}) diff --git a/nvim/.config/nvim/data/lsp_servers/init.lua b/nvim/.config/nvim/data/lsp_servers/init.lua new file mode 100644 index 0000000..91b4a8c --- /dev/null +++ b/nvim/.config/nvim/data/lsp_servers/init.lua @@ -0,0 +1,37 @@ +vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with( + vim.lsp.diagnostic.on_publish_diagnostics, + { + underline = true, + virtual_text = { + prefix = "●", + spacing = 2, + }, + update_in_insert = true, + severity_sort = true, + } +) + +vim.fn.sign_define("LspDiagnosticsSignError", { + text = "✖", + numhl = "LspDiagnosticsDefaultError", +}) +vim.fn.sign_define("LspDiagnosticsSignWarning", { + text = "▲", + numhl = "LspDiagnosticsDefaultWarning", +}) +vim.fn.sign_define("LspDiagnosticsSignInformation", { + text = "●", + numhl = "LspDiagnosticsDefaultInformation", +}) +vim.fn.sign_define("LspDiagnosticsSignHint", { + text = "✱", + numhl = "LspDiagnosticsDefaultHint", +}) + +require "lsp/bash" +require "lsp/css" +require "lsp/html" +require "lsp/json" +require "lsp/typescript" +require "lsp/vim" +require "lsp/vim" diff --git a/nvim/.config/nvim/data/lsp_servers/json.lua b/nvim/.config/nvim/data/lsp_servers/json.lua new file mode 100644 index 0000000..2e65e73 --- /dev/null +++ b/nvim/.config/nvim/data/lsp_servers/json.lua @@ -0,0 +1,9 @@ +local lsp_config = require('plugins/nvim-lspconfig') +local on_attach = require('lsp/on_attach') + +lsp_config.jsonls.setup({ + on_attach = function(client) + client.resolved_capabilities.document_formatting = false + on_attach(client) + end +}) diff --git a/nvim/.config/nvim/data/lsp_servers/lua.lua b/nvim/.config/nvim/data/lsp_servers/lua.lua new file mode 100644 index 0000000..c5c9a0c --- /dev/null +++ b/nvim/.config/nvim/data/lsp_servers/lua.lua @@ -0,0 +1,29 @@ +local lsp_config = require('nvim-lspconfig') +local on_attach = require('lsp/on_attach') + +lsp_config.sumneko_lua.setup({ + on_attach = on_attach, + settings = { + Lua = { + runtime = { + version = 'LuaJIT', + }, + diagnostics = { + enable = true, + globals = { + "vim", + "describe", + "it", + "before_each", + "after_each" + } + }, + workspace = { + library = { + [vim.fn.expand('$VIMRUNTIME/lua')] = true, + [vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true + }, + }, + } + } +}) diff --git a/nvim/.config/nvim/data/lsp_servers/prosemd.lua b/nvim/.config/nvim/data/lsp_servers/prosemd.lua new file mode 100644 index 0000000..93a4fb2 --- /dev/null +++ b/nvim/.config/nvim/data/lsp_servers/prosemd.lua @@ -0,0 +1,16 @@ +local lsp_configs = require('plugins/nvim-lspconfig') + +lsp_configs.prosemd = { + default_config = { + -- Update the path to prosemd-lsp + cmd = { "/usr/local/bin/prosemd-lsp", "--stdio" }, + filetypes = { "markdown" }, + root_dir = function(fname) + return lsp_util.find_git_ancestor(fname) or vim.fn.getcwd() + end, + settings = {}, + } +} + +-- Use your attach function here +lsp.prosemd.setup{ on_attach = on_attach } diff --git a/nvim/.config/nvim/data/lsp_servers/theme_check.lua b/nvim/.config/nvim/data/lsp_servers/theme_check.lua new file mode 100644 index 0000000..260c416 --- /dev/null +++ b/nvim/.config/nvim/data/lsp_servers/theme_check.lua @@ -0,0 +1,9 @@ +local lsp_config = require('plugins/nvim-lspconfig') +local on_attach = require('lsp/on_attach') + +lsp_config.tsserver.setup({ + on_attach = function(client) + client.resolved_capabilities.document_formatting = false + on_attach(client) + end +}) diff --git a/nvim/.config/nvim/data/lsp_servers/typescript.lua b/nvim/.config/nvim/data/lsp_servers/typescript.lua new file mode 100644 index 0000000..a19f53e --- /dev/null +++ b/nvim/.config/nvim/data/lsp_servers/typescript.lua @@ -0,0 +1,9 @@ +local lsp_config = require('nvim-lspconfig') +local on_attach = require('lsp/on_attach') + +lsp_config.tsserver.setup({ + on_attach = function(client) + client.resolved_capabilities.document_formatting = false + on_attach(client) + end +}) diff --git a/nvim/.config/nvim/data/lsp_servers/vim.lua b/nvim/.config/nvim/data/lsp_servers/vim.lua new file mode 100644 index 0000000..83ffc55 --- /dev/null +++ b/nvim/.config/nvim/data/lsp_servers/vim.lua @@ -0,0 +1,6 @@ +local lsp_config = require('nvim-lspconfig') +local on_attach = require('lsp/on_attach') + +lsp_config.vimls.setup({ + on_attach = on_attach +}) diff --git a/nvim/.config/nvim/git-sim_media/images/git-sim-commit_01-25-23_21-57-35.jpg b/nvim/.config/nvim/git-sim_media/images/git-sim-commit_01-25-23_21-57-35.jpg new file mode 100644 index 0000000..92eaca5 Binary files /dev/null and b/nvim/.config/nvim/git-sim_media/images/git-sim-commit_01-25-23_21-57-35.jpg differ diff --git a/nvim/.config/nvim/git-sim_media/texts/3bed7bee5fe42828.svg b/nvim/.config/nvim/git-sim_media/texts/3bed7bee5fe42828.svg new file mode 100644 index 0000000..9a60155 --- /dev/null +++ b/nvim/.config/nvim/git-sim_media/texts/3bed7bee5fe42828.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nvim/.config/nvim/git-sim_media/texts/46c35ae919141cc2.svg b/nvim/.config/nvim/git-sim_media/texts/46c35ae919141cc2.svg new file mode 100644 index 0000000..03afa90 --- /dev/null +++ b/nvim/.config/nvim/git-sim_media/texts/46c35ae919141cc2.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nvim/.config/nvim/git-sim_media/texts/5a6f0f06eb6a1abb.svg b/nvim/.config/nvim/git-sim_media/texts/5a6f0f06eb6a1abb.svg new file mode 100644 index 0000000..818004c --- /dev/null +++ b/nvim/.config/nvim/git-sim_media/texts/5a6f0f06eb6a1abb.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nvim/.config/nvim/git-sim_media/texts/642cbb1c7323e76e.svg b/nvim/.config/nvim/git-sim_media/texts/642cbb1c7323e76e.svg new file mode 100644 index 0000000..9031d13 --- /dev/null +++ b/nvim/.config/nvim/git-sim_media/texts/642cbb1c7323e76e.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nvim/.config/nvim/git-sim_media/texts/681ce5f174caeabc.svg b/nvim/.config/nvim/git-sim_media/texts/681ce5f174caeabc.svg new file mode 100644 index 0000000..051360c --- /dev/null +++ b/nvim/.config/nvim/git-sim_media/texts/681ce5f174caeabc.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nvim/.config/nvim/git-sim_media/texts/6f00958f534de993.svg b/nvim/.config/nvim/git-sim_media/texts/6f00958f534de993.svg new file mode 100644 index 0000000..6dca218 --- /dev/null +++ b/nvim/.config/nvim/git-sim_media/texts/6f00958f534de993.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nvim/.config/nvim/git-sim_media/texts/80bbc0773fb10e54.svg b/nvim/.config/nvim/git-sim_media/texts/80bbc0773fb10e54.svg new file mode 100644 index 0000000..d370c6f --- /dev/null +++ b/nvim/.config/nvim/git-sim_media/texts/80bbc0773fb10e54.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nvim/.config/nvim/git-sim_media/texts/8b0da23037d9f0e8.svg b/nvim/.config/nvim/git-sim_media/texts/8b0da23037d9f0e8.svg new file mode 100644 index 0000000..cc2b642 --- /dev/null +++ b/nvim/.config/nvim/git-sim_media/texts/8b0da23037d9f0e8.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nvim/.config/nvim/git-sim_media/texts/8df45b86b51cd32f.svg b/nvim/.config/nvim/git-sim_media/texts/8df45b86b51cd32f.svg new file mode 100644 index 0000000..ac0e587 --- /dev/null +++ b/nvim/.config/nvim/git-sim_media/texts/8df45b86b51cd32f.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nvim/.config/nvim/git-sim_media/texts/9b9b19c2a3d0710b.svg b/nvim/.config/nvim/git-sim_media/texts/9b9b19c2a3d0710b.svg new file mode 100644 index 0000000..0c77e8a --- /dev/null +++ b/nvim/.config/nvim/git-sim_media/texts/9b9b19c2a3d0710b.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nvim/.config/nvim/git-sim_media/texts/b38e922aa28be0da.svg b/nvim/.config/nvim/git-sim_media/texts/b38e922aa28be0da.svg new file mode 100644 index 0000000..b2e0c97 --- /dev/null +++ b/nvim/.config/nvim/git-sim_media/texts/b38e922aa28be0da.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nvim/.config/nvim/git-sim_media/texts/ce81cb859f00de63.svg b/nvim/.config/nvim/git-sim_media/texts/ce81cb859f00de63.svg new file mode 100644 index 0000000..8ad763e --- /dev/null +++ b/nvim/.config/nvim/git-sim_media/texts/ce81cb859f00de63.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nvim/.config/nvim/git-sim_media/texts/d5cbfecb417a84e6.svg b/nvim/.config/nvim/git-sim_media/texts/d5cbfecb417a84e6.svg new file mode 100644 index 0000000..f7d2d14 --- /dev/null +++ b/nvim/.config/nvim/git-sim_media/texts/d5cbfecb417a84e6.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nvim/.config/nvim/git-sim_media/texts/dd04ffabe02505eb.svg b/nvim/.config/nvim/git-sim_media/texts/dd04ffabe02505eb.svg new file mode 100644 index 0000000..efcae9a --- /dev/null +++ b/nvim/.config/nvim/git-sim_media/texts/dd04ffabe02505eb.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nvim/.config/nvim/git-sim_media/texts/eb86629d54dd331d.svg b/nvim/.config/nvim/git-sim_media/texts/eb86629d54dd331d.svg new file mode 100644 index 0000000..c849fae --- /dev/null +++ b/nvim/.config/nvim/git-sim_media/texts/eb86629d54dd331d.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nvim/.config/nvim/git-sim_media/videos/1080p60/GitSim.mp4 b/nvim/.config/nvim/git-sim_media/videos/1080p60/GitSim.mp4 new file mode 100644 index 0000000..0bfd1bb Binary files /dev/null and b/nvim/.config/nvim/git-sim_media/videos/1080p60/GitSim.mp4 differ diff --git a/nvim/.config/nvim/git-sim_media/videos/1080p60/partial_movie_files/GitSim/3168721105_51972775_2708716386.mp4 b/nvim/.config/nvim/git-sim_media/videos/1080p60/partial_movie_files/GitSim/3168721105_51972775_2708716386.mp4 new file mode 100644 index 0000000..39ee5f0 Binary files /dev/null and b/nvim/.config/nvim/git-sim_media/videos/1080p60/partial_movie_files/GitSim/3168721105_51972775_2708716386.mp4 differ diff --git a/nvim/.config/nvim/git-sim_media/videos/1080p60/partial_movie_files/GitSim/partial_movie_file_list.txt b/nvim/.config/nvim/git-sim_media/videos/1080p60/partial_movie_files/GitSim/partial_movie_file_list.txt new file mode 100644 index 0000000..0558034 --- /dev/null +++ b/nvim/.config/nvim/git-sim_media/videos/1080p60/partial_movie_files/GitSim/partial_movie_file_list.txt @@ -0,0 +1,2 @@ +# This file is used internally by FFMPEG. +file 'file:/Users/normrasmussen/.config/nvim/git-sim_media/videos/1080p60/partial_movie_files/GitSim/3168721105_51972775_2708716386.mp4' diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua new file mode 100755 index 0000000..89a4ae1 --- /dev/null +++ b/nvim/.config/nvim/init.lua @@ -0,0 +1,158 @@ +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not vim.loop.fs_stat(lazypath) then + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", -- latest stable release + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) + +vim.g.mapleader = ',' +vim.g.localmapleader = ',' + +require('lazy').setup('plugins') +require('keymaps') + +-- General Neovim settings and configuration +----------------------------------------------------------- + +----------------------------------------------------------- +-- Neovim API aliases +----------------------------------------------------------- +local fn = vim.fn -- Call Vim functions +local cmd = vim.cmd -- Execute Vim commands +local exec = vim.api.nvim_exec -- Execute Vimscript +local g = vim.g -- Global variables +local opt = vim.opt -- Set options (global/buffer/windows-scoped) +local o = vim.o + +----------------------------------------------------------- +-- General +----------------------------------------------------------- +g.mapleader = ',' -- Change leader to a comma +opt.mouse = 'a' -- Enable mouse support +opt.clipboard = 'unnamedplus' -- Copy/paste to system clipboard +opt.swapfile = false -- Don't use swapfile +opt.shadafile = "NONE" +opt.shadafile = "" +opt.shell = "/bin/zsh" +opt.updatetime = 200 +opt.cursorline = true +g.markdown_folding = 1 +opt.spell=true +opt.spelllang = 'en_us' +cmd [[ autocmd BufWritePre * :%s/\s\+$//e ]] +vim.api.nvim_set_hl(0, "ColorColumn", {guibg=lightmagenta}) +----------------------------------------------------------- +-- Neovim UI +----------------------------------------------------------- +opt.number = true -- Show line number +opt.relativenumber = true -- Show Current Line with Relative numbers above and below cursor. +opt.showmatch = true -- Highlight matching parenthesis +opt.foldmethod = 'syntax' -- Enable folding (default 'foldmarker') +opt.colorcolumn = '120' -- Line length marker at 80 columns +opt.textwidth = 120 +opt.splitright = true -- Vertical split to the right +opt.splitbelow = true -- Horizontal split to the bottom +opt.ignorecase = true -- Ignore case letters when search +opt.smartcase = true -- Ignore lowercase for the whole pattern +opt.linebreak = true -- Wrap on word boundary +opt.signcolumn = 'yes:2' -- Signs column always on, minimum 2. +opt.wrap = true + +----------------------------------------------------------- +-- Memory, CPU +----------------------------------------------------------- +opt.hidden = true -- Enable background buffers +opt.history = 100 -- Remember N lines in historma:y +opt.lazyredraw = true -- Faster scrolling +opt.synmaxcol = 240 -- Max column for syntax highlight +----------------------------------------------------------- +-- Colorscheme +----------------------------------------------------------- +opt.termguicolors = true -- Enable 24-bit RGB colors +----------------------------------------------------------- +-- Tabs, indent +----------------------------------------------------------- +opt.expandtab = true -- Use spaces instead of tabs +opt.shiftwidth = 1 -- Shift 4 spaces when tab +opt.tabstop = 1 -- 1 tab == 4 spaces +opt.smartindent = true -- Autoindent new lines +----------------------------------------------------------- +-- Glow Settings +----------------------------------------------------------- +g.glow_binary_path = '/bin' +g.glow_border = 'rounded' +g.glow_width = 120 +g.glow_use_pager = true +g.glow_style = 'dark' +----------------------------------------------------------- +-- MKDX Settings, mkdx#settings. +----------------------------------------------------------- +-- 2 spaces for selected filetypes +cmd [[ + autocmd FileType md,liquid,xml,html,xhtml,css,scss,javascript,lua,yaml setlocal shiftwidth=2 tabstop=8 noexpandtab +]] + + +local disabled_built_ins = { + "netrw", + "netrwPlugin", + "netrwSettings", + "netrwFileHandlers", + "gzip", + "zip", + "zipPlugin", + "tar", + "tarPlugin", + "getscript", + "getscriptPlugin", + "vimball", + "vimballPlugin", + "2html_plugin", + "logipat", + "rrhelper", + "spellfile_plugin", + "matchit" +} + +for _, plugin in pairs(disabled_built_ins) do + vim.g["loaded_" .. plugin] = 1 +end + +--[[ +Deletes all trailing whitespaces in a file if it's not binary nor a diff. +]]-- +function _G.trim_trailing_whitespaces() + if not o.binary and o.filetype ~= 'diff' then + local current_view = fn.winsaveview() + cmd([[keeppatterns %s/\s\+$//e]]) + fn.winrestview(current_view) + end +end + +-- see https://github.com/hrsh7th/nvim-cmp/wiki/Menu-Appearance#how-to-add-visual-studio-code-dark-theme-colors-to-the-menu +vim.cmd[[ + highlight! link CmpItemMenu Comment + " gray + highlight! CmpItemAbbrDeprecated guibg=NONE gui=strikethrough guifg=#808080 + " blue + highlight! CmpItemAbbrMatch guibg=NONE guifg=#569CD6 + highlight! CmpItemAbbrMatchFuzzy guibg=NONE guifg=#569CD6 + " light blue + highlight! CmpItemKindVariable guibg=NONE guifg=#9CDCFE + highlight! CmpItemKindInterface guibg=NONE guifg=#9CDCFE + highlight! CmpItemKindText guibg=NONE guifg=#9CDCFE + " pink + highlight! CmpItemKindFunction guibg=NONE guifg=#C586C0 + highlight! CmpItemKindMethod guibg=NONE guifg=#C586C0 + " front + highlight! CmpItemKindKeyword guibg=NONE guifg=#D4D4D4 + highlight! CmpItemKindProperty guibg=NONE guifg=#D4D4D4 + highlight! CmpItemKindUnit guibg=NONE guifg=#D4D4D4 + ]] + diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json new file mode 100644 index 0000000..4ec457a --- /dev/null +++ b/nvim/.config/nvim/lazy-lock.json @@ -0,0 +1,63 @@ +{ + "LuaSnip": { "branch": "master", "commit": "563827f00bb4fe43269e3be653deabc0005f1302" }, + "alpha-nvim": { "branch": "main", "commit": "d35b99e36e32040ba06c48a25b5bd3e75be2a566" }, + "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "cmp-cmdline": { "branch": "main", "commit": "23c51b2a3c00f6abc4e922dbd7c3b9aca6992063" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "0e6b2ed705ddcff9738ec4ea838141654f12eeef" }, + "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "3d8912ebeb56e5ae08ef0906e3a54de1c66b92f1" }, + "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, + "cmp-spell": { "branch": "master", "commit": "60584cb75e5e8bba5a0c9e4c3ab0791e0698bffa" }, + "cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" }, + "colorschemes": { "branch": "master", "commit": "e29f32990d6e2c7c3a4763326194fbd847b49dac" }, + "dracula.nvim": { "branch": "main", "commit": "798274ba3c454a9aa3cd71f95a86ea55cbbbb142" }, + "feline.nvim": { "branch": "master", "commit": "d48b6f92c6ccdd6654c956f437be49ea160b5b0c" }, + "friendly-snippets": { "branch": "main", "commit": "1645e7cd98ed99e766c84ab3cf13a1612c77dcee" }, + "gitsigns.nvim": { "branch": "main", "commit": "4bd5d7702c17643ff40c035b6b936757b99743c7" }, + "glow.nvim": { "branch": "main", "commit": "2bb4afb6e9dbc93993a1d7d4168dac08c74590ac" }, + "headlines.nvim": { "branch": "master", "commit": "1cd93a641c03419bb255f8b3fe734451517763b1" }, + "indent-blankline.nvim": { "branch": "master", "commit": "8299fe7703dfff4b1752aeed271c3b95281a952d" }, + "lazy.nvim": { "branch": "main", "commit": "c249ea376bcd3e5d121b79eac595837b7d0c73a4" }, + "lazygit.nvim": { "branch": "main", "commit": "32bffdebe273e571588f25c8a708ca7297928617" }, + "lsp-colors.nvim": { "branch": "main", "commit": "d0b245232aeb197bbd097111d8b69621b0671edb" }, + "markdown-preview.nvim": { "branch": "master", "commit": "02cc3874738bc0f86e4b91f09b8a0ac88aef8e96" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "93e58e100f37ef4fb0f897deeed20599dae9d128" }, + "mason.nvim": { "branch": "main", "commit": "eb6010ac97e9b510ddce8d28b6925ff6b046eab2" }, + "mini.fuzzy": { "branch": "stable", "commit": "e8faf897330eadb1b1b76da67eeff04be85cbd8b" }, + "mini.move": { "branch": "main", "commit": "a0c5930e33e55467b0a9f3bca93d8f6fdbfac2e4" }, + "mini.pairs": { "branch": "stable", "commit": "4ebc1ff8d77fe75e8f219432302800ca29e17614" }, + "mini.surround": { "branch": "main", "commit": "6a4f31e2a380439315729f561d7e7898bde1fd52" }, + "mini.trailspace": { "branch": "main", "commit": "8566ae0cf1524b263e489b6771d339025773189e" }, + "mkdnflow.nvim": { "branch": "main", "commit": "51cf944514e49662cca8a075b1a8f485c2c39d0f" }, + "monokai.nvim": { "branch": "master", "commit": "b8bd44d5796503173627d7a1fc51f77ec3a08a63" }, + "neoscroll.nvim": { "branch": "master", "commit": "d7601c26c8a183fa8994ed339e70c2d841253e93" }, + "neovim": { "branch": "main", "commit": "845a6ad5443e3559dde42910c4523a5835c9233b" }, + "nord.nvim": { "branch": "main", "commit": "70df2b61de21b953fd577f292a973cd22e0ca686" }, + "null-ls.nvim": { "branch": "main", "commit": "9d811bb6ed44cf766f4bda8a47fd65fdfbdcaa7d" }, + "nvim": { "branch": "main", "commit": "a5f3ed5d3b1d9ea21183718a8a89a6653bd6ea48" }, + "nvim-cmp": { "branch": "main", "commit": "c4128bcd131fb7152bda8f8dd2b5e41d2fefa88c" }, + "nvim-dap": { "branch": "master", "commit": "401f5f22b2d7f9bdbb9294d0235136091458816a" }, + "nvim-dap-python": { "branch": "master", "commit": "d4400d075c21ed8fb8e8ac6a5ff56f58f6e93531" }, + "nvim-lspconfig": { "branch": "master", "commit": "9b8f5260f3e793e2dcb2899e0a5b944667a95cb2" }, + "nvim-mapper": { "branch": "main", "commit": "7585479199ad7c3fdfed47ae79d26198f948cfc5" }, + "nvim-notify": { "branch": "master", "commit": "bdd647f61a05c9b8a57c83b78341a0690e9c29d7" }, + "nvim-tree.lua": { "branch": "master", "commit": "4222bb875d86a2a53069c75c4833e27f58e26d90" }, + "nvim-treesitter": { "branch": "master", "commit": "6cdaf3f15ecf2495d890715723686abfb667cb7a" }, + "nvim-web-devicons": { "branch": "master", "commit": "bb6d4fd1e010300510172b173ab5205d37af084f" }, + "plenary.nvim": { "branch": "master", "commit": "9a0d3bf7b832818c042aaf30f692b081ddd58bd9" }, + "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, + "prettier.nvim": { "branch": "main", "commit": "918b99f5ddd7a56395fd393767ab6a3c15a50789" }, + "sidebar.nvim": { "branch": "main", "commit": "990ce5f562c9125283ccac5473235b1a56fea6dc" }, + "symbols-outline.nvim": { "branch": "master", "commit": "512791925d57a61c545bc303356e8a8f7869763c" }, + "telescope-file-browser.nvim": { "branch": "master", "commit": "a18f78121d74c4fae9edd29e138a918a8ede2a70" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "580b6c48651cabb63455e97d7e131ed557b8c7e2" }, + "telescope-live-grep-args.nvim": { "branch": "master", "commit": "7de3baef1ec4fb77f7a8195fe87bebd513244b6a" }, + "telescope.nvim": { "branch": "master", "commit": "b79cd6c88b3d96b0f49cb7d240807cd59b610cd8" }, + "tmux.nvim": { "branch": "main", "commit": "feafcf8f48c49c720ee64e745648d69d42cb9c5a" }, + "todo-comments.nvim": { "branch": "main", "commit": "74c7d28cb50b0713c881ef69bcb6cdd77d8907d1" }, + "tokyonight.nvim": { "branch": "main", "commit": "a0abe53df53616d13da327636cb0bcac3ea7f5af" }, + "trouble.nvim": { "branch": "main", "commit": "556ef3089709a6e253df1e500381fec5eb48e48a" }, + "vem-tabline": { "branch": "master", "commit": "8399cf77603b6c2110a39ea3efe1053f64b057aa" }, + "vim-wakatime": { "branch": "master", "commit": "ee4ab57adf62a309aeef383a2da23b6e48e5ae50" }, + "vista.vim": { "branch": "master", "commit": "33774aff5d8b224f24c2e4c6015c613c1a17bf74" }, + "which-key.nvim": { "branch": "main", "commit": "5224c261825263f46f6771f1b644cae33cd06995" } +} \ No newline at end of file diff --git a/nvim/.config/nvim/lua/.DS_Store b/nvim/.config/nvim/lua/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/nvim/.config/nvim/lua/.DS_Store differ diff --git a/nvim/.config/nvim/lua/interface/popup.lua b/nvim/.config/nvim/lua/interface/popup.lua new file mode 100644 index 0000000..a34bd26 --- /dev/null +++ b/nvim/.config/nvim/lua/interface/popup.lua @@ -0,0 +1,64 @@ +local Popup = {} + +--- Create a new floating window +-- @param config The configuration passed to vim.api.nvim_open_win +-- @param win_opts The options registered with vim.api.nvim_win_set_option +-- @param buf_opts The options registered with vim.api.nvim_buf_set_option +-- @return A new popup +function Popup:new(opts) + opts = opts or {} + opts.layout = opts.layout or {} + opts.win_opts = opts.win_opts or {} + opts.buf_opts = opts.buf_opts or {} + + Popup.__index = Popup + + local editor_layout = { + height = vim.o.lines - vim.o.cmdheight - 2, -- Add margin for status and buffer line + width = vim.o.columns, + } + local popup_layout = { + relative = "editor", + height = math.floor(editor_layout.height * 0.9), + width = math.floor(editor_layout.width * 0.8), + style = "minimal", + border = "rounded", + } + popup_layout.row = math.floor((editor_layout.height - popup_layout.height) / 2) + popup_layout.col = math.floor((editor_layout.width - popup_layout.width) / 2) + + local obj = { + buffer = im.api.nvim_create_buf(false, true), + layout = vim.tbl_deep_extend("force", popup_layout, opts.layout), + win_opts = opts.win_opts, + buf_opts = opts.buf_opts, + } + + setmetatable(obj, Popup) + + return obj +end + +--- Display the popup with the provided content +-- @param content_provider A function accepting the popup's layout and returning the content to display +function Popup:display(content_provider) + self.win_id = vim.api.nvim_open_win(self.buffer, true, self.layout) + vim.api.nvim_command( + string.format("autocmd BufHidden,BufLeave ++once lua pcall(vim.api.nvim_win_close, %d, true)", self.win_id) + ) + + local lines = content_provider(self.layout) + vim.api.nvim_buf_set_lines(self.bufnr or 0, 0, -1, false, lines) + + -- window options + for key, value in pairs(self.win_opts) do + vim.api.nvim_win_set_option(self.win_id or 0, key, value) + end + + -- buffer options + for key, value in pairs(self.buf_opts) do + vim.api.nvim_buf_set_option(self.buffer, key, value) + end +end + +return Popup diff --git a/nvim/.config/nvim/lua/interface/text.lua b/nvim/.config/nvim/lua/interface/text.lua new file mode 100644 index 0000000..03e706e --- /dev/null +++ b/nvim/.config/nvim/lua/interface/text.lua @@ -0,0 +1,95 @@ +local M = {} + +local function max_len_line(lines) + local max_len = 0 + + for _, line in ipairs(lines) do + local line_len = line:len() + if line_len > max_len then + max_len = line_len + end + end + + return max_len +end + +--- Left align lines relatively to the parent container +-- @param container The container where lines will be displayed +-- @param lines The text to align +-- @param alignment The alignment value, range: [0-1] +function M.align_left(container, lines, alignment) + local max_len = max_len_line(lines) + local indent_amount = math.ceil(math.max(container.width - max_len, 0) * alignment) + return M.shift_right(lines, indent_amount) +end + +--- Center align lines relatively to the parent container +-- @param container The container where lines will be displayed +-- @param lines The text to align +-- @param alignment The alignment value, range: [0-1] +function M.align_center(container, lines, alignment) + local output = {} + local max_len = max_len_line(lines) + + for _, line in ipairs(lines) do + local padding = string.rep(" ", (math.max(container.width, max_len) - line:len()) * alignment) + table.insert(output, padding .. line) + end + + return output +end + +--- Shift lines by a given amount +-- @params lines The lines the shift +-- @param amount The amount of spaces to add +function M.shift_right(lines, amount) + local output = {} + local padding = string.rep(" ", amount) + + for _, line in ipairs(lines) do + table.insert(output, padding .. line) + end + + return output +end + +--- Pretty format tables +-- @param entries The table to format +-- @param col_count The number of column to span the table on +-- @param col_sep The separator between each column, default: " " +function M.format_table(entries, col_count, col_sep) + col_sep = col_sep or " " + + local col_rows = math.ceil(vim.tbl_count(entries) / col_count) + local cols = {} + local count = 0 + + for i, entry in ipairs(entries) do + if ((i - 1) % col_rows) == 0 then + table.insert(cols, {}) + count = count + 1 + end + table.insert(cols[count], entry) + end + + local col_max_len = {} + for _, col in ipairs(cols) do + table.insert(col_max_len, max_len_line(col)) + end + + local output = {} + for i, col in ipairs(cols) do + for j, entry in ipairs(col) do + if not output[j] then + output[j] = entry + else + local padding = string.rep(" ", col_max_len[i - 1] - cols[i - 1][j]:len()) + output[j] = output[j] .. padding .. col_sep .. entry + end + end + end + + return output +end + +return M diff --git a/nvim/.config/nvim/lua/keymaps.lua b/nvim/.config/nvim/lua/keymaps.lua new file mode 100644 index 0000000..3251e40 --- /dev/null +++ b/nvim/.config/nvim/lua/keymaps.lua @@ -0,0 +1,121 @@ +----------------------------------------------------------- + +-- Keymaps of Neovim and installed plugins +----------------------------------------------------------- + +local map = vim.api.nvim_set_keymap +local default_opts = { noremap = true, silent = true } + +-- Fast saving with and s +map('n', 's', ':w', default_opts) +map('n', 'a', ':w|:luafile %', default_opts) +map('n', 'aa', ':w|:luafile % |:PackerSync', default_opts) +map('i', 's', ':w', default_opts) +-- Python Script that saves the file & moves Todos to my Todolist. +map('n', 'sd', ':w|:! python3 ~/Documents/Northpass/Scripts/TodoMD/todo.py %', default_opts) + +-- Neovim Tab Navgation via Vem-Tabline +map('n', 't', ':tabnew', default_opts) +map('n', 'e', ':bnext', default_opts) +map('n', 'w', ':bprev', default_opts) +map('n', 'd', ':bdelete', default_opts) +map('n', 'r', 'vem_move_buffer_right', default_opts) +map('n', 'q', 'vem_move_buffer_left', default_opts) + +----------------------------------------------------------- + +-- Applications and Plugins shortcuts +----------------------------------------------------------- + +----------------------------------------------------------- + +-- Telescope Keymaps +----------------------------------------------------------- + +-- For Neovim >= 0.7.0 +Mapper = require("nvim-mapper") +local M = Mapper.map +local default_opts = {noremap=true, silent=true} + +-- Sidebar +M('n', 'n', ':SidebarNvimToggle', default_opts, + "Sidebar Toggle", "sidebar-toggle", "Open or Close Sidebar" +) +M('n', 'q', ':SidebarNvimUpdate', default_opts, + "Sidebar Update", "sidebar-update", "Refresh the Sidebar" +) + +--[[ Sidebar Resize +M('n', '=', ':SidebarNvimResize +1', default_opts, + "Sidebar +1", "sidebar-plus1", "Sidebar Bigger by one" +) +M('n', '-', ':SidebarNvimResize -1', default_opts, + "Sidebar -1", "sidebar-minus1", "Sidebar Smaller by one" +) +M('n', '==', ':SidebarNvimResize +10', default_opts, + "Sidebar +10", "sidebar-plus10", "Sidebar Bigger by 10" +) +M('n', '--', ':SidebarNvimResize -10', default_opts, + "Sidebar -10", "sidebar-minus10", "Sidebar Smaller by 10" +)--]] + +-- Markdown Preview Toggle +M('n', 'P', ":MarkdownPreview", default_opts, + "Markdown Preview", "md_preview", "Display Markdown preview in Qutebrowser" +) + +-- Telescope Options +M('n', 'ff', ':Telescope find_files', default_opts, + "Find Files", "find-files", "Find Files in Telescope pop-up" +) +M('n', 'fg', ':Telescope live_grep', default_opts, + "Live Grep", "live-grep", "Grep Files in Telescope pop-up" +) +M('n', 'fb', ':Telescope buffers', default_opts, + "Buffers", "buffers", "See Buffers in Telescope pop-up" +) +M('n', 'fe', ":Telescope file_browser", default_opts, + "Telescope Files", "telescope-file-browser", "Find files and directories in telescope" +) + +M('n', '', "@t", default_opts, + "Add Todo", "todo_todo", "Add To-do/Task to the beginning of the line" +) + +M('n', '', "@s", default_opts, + "Add Solutions Engineering", "todo_seng", "Add Solutions Engineering to the beginning of the line" +) + +M('n', '', "@f", default_opts, + "Add Feature", "add_feat", "Add Feature Request tag to the beginning of the line. " +) + +M( 'n', '', "@c", default_opts, + "Replace with Complete", "add_complete", "Replace tag with Complete tag at beginning of the line." + ) + +M('n', '', "@w", default_opts, + "Add Warning/Error", "add_error", "Add Warning/Error tag at the beginning of the line." + ) + +M('n', 'ce', ":TodoTrouble keywords=TODO | :resize +10", default_opts, + "Show Todo Tags", "show_todos", "Show Todo Tags." + ) + +M('n', 'cf', ":TodoTrouble keywords=FEAT", default_opts, + "Show Feature Tags", "show_features", "Show Feature Requests." + ) + +M('n', 'cq', ":TodoTrouble keywords=ERROR, WARN", default_opts, + "Show Warning Tags", "show_warnings", "Show Errors Tags." + ) + +M('n', 'b', ":! black %", default_opts, + "Black Formatting", "black_current_file", "Use Black Formatting on Current File." +) +M('n', 'm', ":! markdownlint -f %", default_opts, + "Markdownlint", "md_lint_format", "Use mdlint Formatting on Current File." +) +M('n', 'r30', ":resize 30", default_opts, + "Resize30", "resize_30", "Resize Window to #30" +) diff --git a/nvim/.config/nvim/lua/plugins/alpha.lua b/nvim/.config/nvim/lua/plugins/alpha.lua new file mode 100644 index 0000000..e4b9477 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/alpha.lua @@ -0,0 +1,74 @@ +----------------------------------------------------------- +-- startify configuration file +----------------------------------------------------------- +return { + "goolord/alpha-nvim", + dependencies = { + 'kyazdani42/nvim-web-devicons', + }, + config = function () + local alpha = require'alpha' + local startify = require'alpha.themes.startify' + + startify.section.header.val = { + " ", + " █████ █████ ██████ █████ ███ ", + "░░███ ░░███ ░░██████ ░░███ ░███ ", + " ░███ ░███ ██████ █████ ████ ░███░███ ░███ ██████ ████████ █████████████ ░███ ", + " ░███████████ ███░░███░░███ ░███ ░███░░███░███ ███░░███░░███░░███░░███░░███░░███░███ ", + " ░███░░░░░███ ░███████ ░███ ░███ ░███ ░░██████ ░███ ░███ ░███ ░░░ ░███ ░███ ░███░███ ", + " ░███ ░███ ░███░░░ ░███ ░███ ░███ ░░█████ ░███ ░███ ░███ ░███ ░███ ░███░░░ ", + " █████ █████░░██████ ░░███████ █████ ░░█████░░██████ █████ █████░███ ████████ ", + "░░░░░ ░░░░░ ░░░░░░ ░░░░░███ ░░░░░ ░░░░░ ░░░░░░ ░░░░░ ░░░░░ ░░░ ░░░░░░░░ ", + " ███ ░███ ", + " ░░██████ ", + " ░░░░░░ ", + } + + + --[[ startify.section.mru.val = { + { type = "text", + val = findtodos, + opts = { + position = "left", + hl = {{"hl_group", 0, -2}} + } + } + }--]] + startify.section.mru_cwd.val = { { type = "padding", val = 0 } } + + -- Devicons - Not sure what this doe + startify.nvim_web_devicons.enabled = false + startify.nvim_web_devicons.highlight = false + startify.nvim_web_devicons.highlight = 'Number' + + -- Top Menu + startify.section.top_buttons.val = { + startify.button('e', ' New file', ':ene startinsert'), + startify.button('f', ' Find file', ':Telescope file_browser'), + startify.button('s', '⋅Find Word', ':Telescope live_grep'), + startify.button('t', '& Todo List', ':TodoTrouble keywords=TODO'), + startify.button('r', ' ' .. ' Recent files', ':Telescope oldfiles '), + startify.button('u', ' Show plugins', ':Lazy'), + startify.button('q', ' Quit', ':qa'), + } + + -- Bottom Menu + startify.section.bottom_buttons.val = { + -- Show Empty Space + } + +--[[ local function footer() + local version = vim.version() + local print_version = "v" .. version.major .. '.' .. version.minor .. '.' .. version.patch + local datetime = os.date('%Y/%m/%d %H:%M:%S') + return print_version .. ' ' .. datetime + end + --]] + + startify.section.footer.val = { + + } + alpha.setup(startify.config) + end + } diff --git a/nvim/.config/nvim/lua/plugins/gitsigns.lua b/nvim/.config/nvim/lua/plugins/gitsigns.lua new file mode 100644 index 0000000..a109509 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/gitsigns.lua @@ -0,0 +1,48 @@ +return -- Signs for Git Status Information + { + 'lewis6991/gitsigns.nvim', + config = function() + require('gitsigns').setup { + signs = { + add = {hl = 'GitSignsAdd' , text = '│', numhl='GitSignsAddNr' , linehl='GitSignsAddLn'}, + change = {hl = 'GitSignsChange', text = '│', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'}, + delete = {hl = 'GitSignsDelete', text = '_', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'}, + topdelete = {hl = 'GitSignsDelete', text = '‾', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'}, + changedelete = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'}, + }, + signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` + numhl = false, -- Toggle with `:Gitsigns toggle_numhl` + linehl = false, -- Toggle with `:Gitsigns toggle_linehl` + word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` + watch_gitdir = { + interval = 1000, + follow_files = true + }, + attach_to_untracked = true, + current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame` + current_line_blame_opts = { + virt_text = true, + virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align' + delay = 1000, + ignore_whitespace = false, + }, + current_line_blame_formatter = ', - ', + sign_priority = 1, + update_debounce = 100, + status_formatter = nil, -- Use default + max_file_length = 40000, + preview_config = { + -- Options passed to nvim_open_win + border = 'double', + style = 'normal', + relative = 'cursor', + row = 0, + col = 2 + }, + yadm = { + enable = false + }, + } + end +} + diff --git a/nvim/.config/nvim/lua/plugins/headlines.lua b/nvim/.config/nvim/lua/plugins/headlines.lua new file mode 100644 index 0000000..a0b9a99 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/headlines.lua @@ -0,0 +1,38 @@ +return { + 'lukas-reineke/headlines.nvim', + } + --[[ config = function() + require("headlines").setup { + markdown = { + query = vim.treesitter.parse_query( + "markdown", + [[ + (atx_heading [ + (atx_h1_marker) + (atx_h2_marker) + (atx_h3_marker) + (atx_h4_marker) + (atx_h5_marker) + (atx_h6_marker) + ] @headline) + + (thematic_break) @dash + + (fenced_code_block) @codeblock + + (block_quote_marker) @quote + (block_quote (paragraph (inline (block_continuation) @quote))) + + ), + headline_highlights = { "Headline" }, + codeblock_highlight = "CodeBlock", + dash_highlight = "Dash", + dash_string = "-", + quote_highlight = "Quote", + quote_string = "┃", + fat_headlines = true, + }, +} +end +} +--]] diff --git a/nvim/.config/nvim/lua/plugins/init.lua b/nvim/.config/nvim/lua/plugins/init.lua new file mode 100755 index 0000000..3797b21 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/init.lua @@ -0,0 +1,250 @@ +return { + +---------------------------------------------------------------- +-- LSP and Autocomplete Plugins +-- They should be pulled first! +----------------------------------------------------------------- + + -- Manage all your Keymaps! + { + "gregorias/nvim-mapper", + config = function() require("nvim-mapper").setup{} end, + before = "telescope.nvim" + }, + + -- Neovim Autocomplete with LSP + { + 'L3MON4D3/LuaSnip', tag = "v1.1.0", + wants = { "friendly-snippets", "vim-snippets" }, + }, + +------------------------------------------------------------ +-- General Functionality +------------------------------------------------------------ + 'kdheepak/lazygit.nvim', + -- Tmux Navigation + { + "aserowy/tmux.nvim", + config = function() require("tmux").setup() end + }, + -- Find & Search LSP Tags + 'liuchengxu/vista.vim', + + -- Snippets + 'rafamadriz/friendly-snippets', + + -- Rename and Work with Buffer & Tabs + 'pacha/vem-tabline', + + -- Nvim Tree File Manager on the Left + 'nvim-tree/nvim-tree.lua', + + -- Trouble Shows Errors with Files. + { + "folke/trouble.nvim", + dependencies = { 'kyazdani42/nvim-web-devicons' }, + config = function() + require("trouble").setup { + } + end + }, + +-- Which Key + { + "folke/which-key.nvim", + config = function() + require("which-key").setup { + } + end + }, + +-- Top Right Notify Pop Up + 'rcarriga/nvim-notify', + +-- echasnovski Mini Modules (Selected) + { + 'echasnovski/mini.move', + config = function() + require('mini.move').setup({ + mappings = { + left = '', + right = '', + down = '', + up = '', + + line_left = '', + line_right = '', + line_down = '', + line_up = '', + } + }) + end + }, + { + 'echasnovski/mini.trailspace', + config = function() + require('mini.trailspace').setup() + end + }, + { + 'echasnovski/mini.surround', version = '*', + config = function() + require('mini.surround').setup() + end + }, + { + 'echasnovski/mini.pairs', branch = 'stable', + config = function() + require('mini.pairs').setup() + end + }, + { + 'echasnovski/mini.fuzzy', branch = 'stable', + config = function() + require('mini.fuzzy').setup() + end + }, + +----------------------------------------------------------- +-- Markdown Plugins +------------------------------------------------------------ + + { + 'jakewvincent/mkdnflow.nvim', + config = function() + require('mkdnflow').setup({ + mappings = { + MkdnToggleToDo = {{'i', 'n'}, ''}, + MkdnNewListItem = {{'i'}, ''}, + MkdnEnter = {{'n'}, ''}, + MkdnTableNextCell = false, + MkdnTab = {{'i',}, ''}, + MkdnSTab = {{'i'}, ''}, + MkdnFollowLink = {'n', 'p'} + }, + wrap = true + }) + end + }, + +{ "iamcco/markdown-preview.nvim", build = "cd app && npm install", setup = function() vim.g.mkdp_filetypes = { + "markdown" } end, ft = { "markdown" }, }, + + -- Prettier Plugin for Neovim specifically + 'MunifTanjim/prettier.nvim', + + -- DAP (Debug adaptor Protocol) + 'mfussenegger/nvim-dap', + + { + 'mfussenegger/nvim-dap-python', + config = function() + require('dap-python').setup( + '~/.virtualenvs/debugpy/bin/python' + ) + end + }, + -- Sidebar + { + 'sidebar-nvim/sidebar.nvim', + config = function() + require("sidebar-nvim").setup({ + sections = { + "symbols", + "git", + "diagnostics", + "todos", + }, + initial_width = 45, + hide_statusline = true, + todos = { + initially_closed = false, -- whether the groups should be initially closed on start. You can manually open/close groups later. + } + }) + end +}, + +--------------------------------------------------------- +-- Text, Icons, Symbols +---------------------------------------------------------- + 'lukas-reineke/indent-blankline.nvim', + 'simrat39/symbols-outline.nvim', +-- 'nvim-tree/nvim-web-devicons', + 'folke/lsp-colors.nvim', + 'karb94/neoscroll.nvim', + + -- Allow Popups for Telescope etc + 'nvim-lua/popup.nvim', + 'nvim-lua/plenary.nvim', + + -- Todo & Comments for Organization + { + 'folke/todo-comments.nvim', + dependencies = "nvim-lua/plenary.nvim", + config = function() + require("todo-comments").setup { + keywords = { + FIX = { + icon = " ", -- icon used for the sign, and in search results + color = "error", -- can be a hex color, or a named color (see below) + alt = { "FIXME", "BUG", "FIXIT", "ISSUE" }, -- a set of other keywords that all map to this FIX keywords + -- signs = false, -- configure signs for some keywords individually + }, + DONE = { icon = " ", color = "info" }, + FEAT = { icon = " ", color = "warning", alt = { "NEED", "REQUEST" } }, + WARN = { icon = " ", color = "error", alt = { "WARNING", "ERROR" } }, + TODO = { icon = " ", color = "hint", alt = { "TASK", "TBD" } }, + NOTE = { icon = " ", color = "hint", alt = { "INFO" } }, + SENG = { icon = " ", color = "test", alt = { "SOLUTIONS", "SE", "WORKAROUND" } }, + }, + highlight = { + comments_only = false, + }, + colors = { + error = { "DiagnosticError", "ErrorMsg", "#DC2626" }, + warning = { "DiagnosticWarning", "WarningMsg", "#FBBF24" }, + info = { "DiagnosticInfo", "#2563EB" }, + hint = { "DiagnosticHint", "#10B981" }, + default = { "Identifier", "#7C3AED" }, + test = { "Identifier", "#FF00FF" } + }, + } + end + }, + -- Various telescopes + 'nvim-telescope/telescope-file-browser.nvim', + + { + 'nvim-telescope/telescope-fzf-native.nvim', + build = 'make' + }, + +----------------------------------------------------------- +-- Various Color Schemes, Dashboard, etc +----------------------------------------------------------- + 'tanvirtin/monokai.nvim', + 'gbprod/nord.nvim', + 'Mofiqul/dracula.nvim', + 'lunarvim/colorschemes', + 'rose-pine/neovim', + 'catppuccin/nvim', + { + "folke/tokyonight.nvim", + lazy = false, -- make sure we load this during startup if it is your main colorscheme + priority = 1000, -- make sure to load this before all the other start plugins + config = function() + -- load the colorscheme here + vim.cmd([[colorscheme tokyonight]]) + end, + }, + { + 'feline-nvim/feline.nvim', + dependencies = { 'kyazdani42/nvim-web-devicons' }, + }, + 'ellisonleao/glow.nvim', + -- Plugin that causes your code to crumble >:) + -- 'eandrju/cellular-automaton.nvim', + +-- Wakatime Tracking + 'wakatime/vim-wakatime' + } diff --git a/nvim/.config/nvim/lua/plugins/mason.lua b/nvim/.config/nvim/lua/plugins/mason.lua new file mode 100644 index 0000000..6e667e2 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/mason.lua @@ -0,0 +1,22 @@ +return { + -- Easy Way to install Language Servers + { 'williamboman/mason.nvim', + }, + 'williamboman/mason-lspconfig.nvim', + 'neovim/nvim-lspconfig', + + config = function() + require("mason").setup() + local lsp_installer = require("mason-lspconfig").setup({ + automatic_instalsation = true, + ui = { + icons = { + server_installed = "✓", + server_pending = "➜", + server_uninstalled = "✗" + } + } + }) + end + +} diff --git a/nvim/.config/nvim/lua/plugins/null-ls.lua b/nvim/.config/nvim/lua/plugins/null-ls.lua new file mode 100644 index 0000000..e91ddba --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/null-ls.lua @@ -0,0 +1,20 @@ +return { + 'jose-elias-alvarez/null-ls.nvim', + dependencies = { + 'nvim-lua/plenary.nvim', + }, + config = function () + local null_ls = require'null-ls' + null_ls.setup({ + debug = true, + sources = { + null_ls.builtins.completion.spell, + null_ls.builtins.diagnostics.codespell, + null_ls.builtins.diagnostics.markdownlint.with({ extra_args = { "--disable", "MD013", "MD024", "--" } + ,}), + null_ls.builtins.diagnostics.pycodestyle.with({ extra_args = { "--max-line-length=150" }}), + null_ls.builtins.formatting.black.with({ extra_args = { "--fast" }}), + }, + }) + end +} diff --git a/nvim/.config/nvim/lua/plugins/nvim-cmp.lua b/nvim/.config/nvim/lua/plugins/nvim-cmp.lua new file mode 100644 index 0000000..867836d --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/nvim-cmp.lua @@ -0,0 +1,83 @@ +return { + 'hrsh7th/nvim-cmp', + dependencies = { + 'neovim/nvim-lspconfig', + 'L3MON4D3/LuaSnip', + 'hrsh7th/cmp-nvim-lsp', + 'hrsh7th/cmp-path', + 'hrsh7th/cmp-buffer', + 'hrsh7th/cmp-cmdline', + 'hrsh7th/nvim-cmp', + 'saadparwaiz1/cmp_luasnip', + 'hrsh7th/cmp-nvim-lsp-signature-help', + 'f3fora/cmp-spell', + }, + config = function () + local cmp_status_ok, cmp = pcall(require, 'cmp') + if not cmp_status_ok then + return + end + + local luasnip_status_ok, luasnip = pcall(require, 'luasnip') + if not luasnip_status_ok then + return + end + --cmp.setup { + -- Load snippet support + --snippet = { + -- expand = function(args) + -- luasnip.lsp_expand(args.body) + -- }, + + -- Completion settings + completion = { + --completeopt = 'menu,menuone,noselect' + keyword_length = 2 + } + + -- Key mapping + mapping = { + [''] = cmp.mapping.select_next_item(), + [''] = cmp.mapping.select_prev_item(), + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + [""] = cmp.mapping({ + i = cmp.mapping.abort(), + c = cmp.mapping.close(), + }), + [""] = cmp.config.disable, + [''] = cmp.mapping.confirm { + select = false, + }, + -- Tab mapping + [''] = function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, + [''] = function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end + } + + -- Load sources, see: https://github.com/topics/nvim-cmp + sources = { + { name = 'nvim-lsp' }, + { name = 'luasnip' }, + { name = 'path' }, + { name = 'buffer' }, + { name = 'zsh' }, + } + end +} diff --git a/nvim/.config/nvim/lua/plugins/nvim-treesitter.lua b/nvim/.config/nvim/lua/plugins/nvim-treesitter.lua new file mode 100644 index 0000000..ac3f910 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/nvim-treesitter.lua @@ -0,0 +1,24 @@ +--local status_ok, nvim_treesitter = pcall(require, 'nvim-treesitter.configs') +--if not status_ok then +-- return +--end + +return { + -- Treesitter interface + 'nvim-treesitter/nvim-treesitter', + --build = ":TSUpdate" + config = function () + require('nvim-treesitter.install').update({ with_sync = true }) + -- A list of parser names, or "all" + ensure_installed = { + 'bash', 'css', 'html', 'javascript', 'json', 'lua', 'python', + 'vim', 'yaml', 'typescript', 'markdown', + } + sync_install = true + highlight = { + -- `false` will disable the whole extension + enable = true, + additional_vim_regex_highlighting = true, + } + end + } diff --git a/nvim/.config/nvim/lua/plugins/telescope.lua b/nvim/.config/nvim/lua/plugins/telescope.lua new file mode 100644 index 0000000..a0de994 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/telescope.lua @@ -0,0 +1,160 @@ +return { + { + 'nvim-telescope/telescope.nvim', tag = '0.1.0', + dependencies = { + 'nvim-lua/plenary.nvim', + 'nvim-telescope/telescope-live-grep-args.nvim', + }, + + config = function () + local g = vim.g + local fb_actions = require "telescope".extensions.file_browser.actions + local themes = { + popup_list = { + theme = 'popup_list', + border = true, + preview = false, + prompt_title = false, + results_title = false, + sorting_strategy = 'ascending', + layout_strategy = 'center', + borderchars = { + prompt = { '─', '│', '─', '│', '┌', '┐', '┤', '└' }, + results = { '─', '│', '─', '│', '├', '┤', '┘', '└' }, + preview = { '─', '│', '─', '│', '┌', '┐', '┘', '└' }, + }, + }, + popup_extended = { + theme = 'popup_extended', + prompt_title = false, + results_title = false, + layout_strategy = 'center', + layout_config = { + width = 0.7, + height = 0.3, + mirror = true, + preview_cutoff = 1, + }, + borderchars = { + prompt = { '─', '│', ' ', '│', '┌', '┐', '│', '│' }, + results = { '─', '│', '─', '│', '├', '┤', '┘', '└' }, + preview = { '─', '│', '─', '│', '┌', '┐', '┘', '└' }, + }, + }, + command_pane = { + theme = 'command_pane', + preview = false, + prompt_title = false, + results_title = false, + sorting_strategy = 'descending', + layout_strategy = 'bottom_pane', + layout_config = { + height = 13, + preview_cutoff = 1, + prompt_position = 'bottom' + }, + }, + ivy_plus = { + theme = 'ivy_plus', + preview = false, + prompt_title = false, + results_title = false, + layout_strategy = 'bottom_pane', + layout_config = { + height = 13, + preview_cutoff = 120, + prompt_position = 'bottom' + }, + borderchars = { + prompt = { '─', '│', '─', '│', '┌', '┐', '┘', '└' }, + results = { '─', '│', '─', '│', '┌', '┬', '┴', '└' }, + preview = { '─', '│', ' ', ' ', '─', '┐', '│', ' ' }, + }, + }, + } + local telescope_installer = require('telescope').setup({ + defaults = { + border = true, + prompt_title = false, + results_title = false, + color_devicons = false, + layout_strategy = 'horizontal', + borderchars = { + prompt = { '─', '│', '─', '│', '┌', '┐', '┘', '└' }, + results = { '─', '│', '─', '│', '┌', '┐', '┘', '└' }, + preview = { '─', '│', '─', '│', '┌', '┐', '┘', '└' }, + }, + layout_config = { + bottom_pane = { + height = 20, + preview_cutoff = 120, + prompt_position = 'top' + }, + center = { + height = 0.4, + preview_cutoff = 40, + prompt_position = 'top', + width = 0.7 + }, + horizontal = { + prompt_position = 'top', + preview_cutoff = 40, + height = 0.9, + width = 0.8 + } + }, + sorting_strategy = 'ascending', + prompt_prefix = ' ', + selection_caret = ' → ', + entry_prefix = ' ', + file_ignore_patterns = {'node_modules'}, + path_display = { 'truncate' }, + results_title = false, + prompt_title =false, + preview = { + treesitter = { + enable = { + 'css', 'dockerfile', 'elixir', 'erlang', 'fish', + 'html', 'http', 'javascript', 'json', 'lua', 'php', + 'python', 'regex', 'ruby', 'rust', 'scss', 'svelte', + 'typescript', 'vue', 'yaml', 'markdown', 'bash', 'c', + 'cmake', 'comment', 'cpp', 'dart', 'go', 'jsdoc', + 'json5', 'jsonc', 'llvm', 'make', 'ninja', 'prisma', + 'proto', 'pug', 'swift', 'todotxt', 'toml', 'tsx', + } + } + }, + mappings = { + i = { + [''] = require('telescope.actions').close, + }, + } + }, + extensions = { + file_browser = { + mappings = { + ["i"] = { + [""] = fb_actions.create, + [""] = fb_actions.copy, + [""] = fb_actions.rename, + [""] = fb_actions.goto_cwd, + [""] = fb_actions.open + }, + }, + }, + fzf = { + fuzzy = true, -- false will only do exact matching + override_generic_sorter = true, -- override the generic sorter + override_file_sorter = true, -- override the file sorter + case_mode = 'smart_case', -- other options: 'ignore_case' or 'respect_case' + } + } + }) + require("telescope").load_extension "file_browser" + require("telescope").load_extension "mapper" + require("telescope").load_extension "live_grep_args" + require("telescope").load_extension "fzf" + end + + }} + diff --git a/nvim/.config/nvim/lua/settings/init.lua b/nvim/.config/nvim/lua/settings/init.lua new file mode 100755 index 0000000..516a229 --- /dev/null +++ b/nvim/.config/nvim/lua/settings/init.lua @@ -0,0 +1,117 @@ +-- General Neovim settings and configuration +----------------------------------------------------------- + +----------------------------------------------------------- +-- Neovim API aliases +----------------------------------------------------------- +local fn = vim.fn -- Call Vim functions +local cmd = vim.cmd -- Execute Vim commands +local exec = vim.api.nvim_exec -- Execute Vimscript +local g = vim.g -- Global variables +local opt = vim.opt -- Set options (global/buffer/windows-scoped) +local o = vim.o + +----------------------------------------------------------- +-- General +----------------------------------------------------------- +g.mapleader = ',' -- Change leader to a comma +opt.mouse = 'a' -- Enable mouse support +opt.clipboard = 'unnamedplus' -- Copy/paste to system clipboard +opt.swapfile = false -- Don't use swapfile +opt.shadafile = "NONE" +opt.shadafile = "" +opt.shell = "/bin/zsh" +opt.updatetime = 200 +opt.cursorline = true +g.markdown_folding = 1 +opt.spell=true +opt.spelllang = 'en_us' +cmd [[ autocmd BufWritePre * :%s/\s\+$//e ]] +vim.api.nvim_set_hl(0, "ColorColumn", {guibg=lightmagenta}) +----------------------------------------------------------- +-- Neovim UI +----------------------------------------------------------- +opt.number = true -- Show line number +opt.relativenumber = true -- Show Current Line with Relative numbers above and below cursor. +opt.showmatch = true -- Highlight matching parenthesis +opt.foldmethod = 'syntax' -- Enable folding (default 'foldmarker') +opt.colorcolumn = '120' -- Line length marker at 80 columns +opt.textwidth = 120 +opt.splitright = true -- Vertical split to the right +opt.splitbelow = true -- Horizontal split to the bottom +opt.ignorecase = true -- Ignore case letters when search +opt.smartcase = true -- Ignore lowercase for the whole pattern +opt.linebreak = true -- Wrap on word boundary +opt.signcolumn = 'yes:2' -- Signs column always on, minimum 2. +opt.wrap = true + +----------------------------------------------------------- +-- Memory, CPU +----------------------------------------------------------- +opt.hidden = true -- Enable background buffers +opt.history = 100 -- Remember N lines in historma:y +opt.lazyredraw = true -- Faster scrolling +opt.synmaxcol = 240 -- Max column for syntax highlight +----------------------------------------------------------- +-- Colorscheme +----------------------------------------------------------- +opt.termguicolors = true -- Enable 24-bit RGB colors +----------------------------------------------------------- +-- Tabs, indent +----------------------------------------------------------- +opt.expandtab = true -- Use spaces instead of tabs +opt.shiftwidth = 1 -- Shift 4 spaces when tab +opt.tabstop = 1 -- 1 tab == 4 spaces +opt.smartindent = true -- Autoindent new lines +----------------------------------------------------------- +-- Glow Settings +----------------------------------------------------------- +g.glow_binary_path = '/bin' +g.glow_border = 'rounded' +g.glow_width = 120 +g.glow_use_pager = true +g.glow_style = 'dark' +----------------------------------------------------------- +-- MKDX Settings, mkdx#settings. +----------------------------------------------------------- +-- 2 spaces for selected filetypes +cmd [[ + autocmd FileType md,liquid,xml,html,xhtml,css,scss,javascript,lua,yaml setlocal shiftwidth=2 tabstop=8 noexpandtab +]] + + +local disabled_built_ins = { + "netrw", + "netrwPlugin", + "netrwSettings", + "netrwFileHandlers", + "gzip", + "zip", + "zipPlugin", + "tar", + "tarPlugin", + "getscript", + "getscriptPlugin", + "vimball", + "vimballPlugin", + "2html_plugin", + "logipat", + "rrhelper", + "spellfile_plugin", + "matchit" +} + +for _, plugin in pairs(disabled_built_ins) do + vim.g["loaded_" .. plugin] = 1 +end + +--[[ +Deletes all trailing whitespaces in a file if it's not binary nor a diff. +]]-- +function _G.trim_trailing_whitespaces() + if not o.binary and o.filetype ~= 'diff' then + local current_view = fn.winsaveview() + cmd([[keeppatterns %s/\s\+$//e]]) + fn.winrestview(current_view) + end +end diff --git a/nvim/.config/nvim/plugin/packer_complied.lua b/nvim/.config/nvim/plugin/packer_complied.lua new file mode 100644 index 0000000..e69de29 diff --git a/nvim/.config/nvim/spell/en.utf-8.add b/nvim/.config/nvim/spell/en.utf-8.add new file mode 100644 index 0000000..f1d4c62 --- /dev/null +++ b/nvim/.config/nvim/spell/en.utf-8.add @@ -0,0 +1,288 @@ +recert +gravatar +TODO +gravatars +webhook +Neovim +accomplished +accomplished +Talkspace +Northpass +CEU +th +B2B +Integrations +NPP +CSV +BBHR +onboarding +Kai +scorms +QMC +trainings +cancelled +Ummey +Ummey's +prev +Kaitlyn +CYA +programmatically +Wistia +iOS +PPT +Kaitlyn's +OneTrust +JS +Analytics +KPI +param +UUID +Pipedrive +pipedrive +Lukasz +Bjorn +webhooks +trackable +Pipedrive's +boolean +Kaisa +SSO +XP +DW +Chołodecki +Łukasz +Kotkas +Patrycja +Q1 +Vidyard +badging +Flink +S3 +Unclickable +DataDog +wistia +https +https +wifi +autoplaying +tbd +G2 +SMEs +CSM +AEs +ZoomInfo's +linkedin +Enablement +enablement +DIY +Zoominfo +G2M +Carli +LevelJump +LMS +CMS +Lessonly +Katlin +nd +LT +EVP's +UX +Schoology +Pendo +Salesforce +ILTs +SFDC +ROI +NPS +roadmap +BigIdeasMath +Hubspot +analytics +SCORM +AWS +JnJ +DSAR +ons +Zapier +Accredible +LPs +Shopify +Callum +Chek +Chek +Chek +Chek +Chek +Chek +prereg +OpenAccess +Camila +SAP +SAP +Workato +Soner +Okta +Auth0 +flink +goflink +backfill +Marek +KJ +Canva +Customizable +GoFlink +Cami +auth +Litmos +infographic +Nino's +Flink's +Crowdin +Joonas +QBR +UID +versioning +GDPR +Edume +something +something +AppCues +appcues +Skuad +Skuid +COO +Nergis +pdf +FiveTran +BigQuery +COO +NDA +lifecycle +PALs +LTV +Articulate's +Comms +ILT +Mockup +iFrame +Froala +html +css +resize +customizable +OpenSesame +timestamp +comms +Audrius +Youtube +Omnisend +northpass +Omnisend's +url +Hoc +exisiting +subdomains +iFrame +iFrame +iFrame +gifs +webview +Skuid's +reachs +JJSV +Todos +Phaco +Garg +codeblock +Aleksandr +Sten +v10 +TOC +Nitty +KPIs +MAL +walmart +Segura +Luminate +gif +OneDrive +EOC +legistlation +todo +SCA +V2 +Rock22 +Figma +Foundational +Iorad +ish +Credly +Ritu +Kumar +Deeksha +Prajwal +Praveen +Rakesh +integrations +recomendations +personalization +SLAs +Devanathan +productize +accesss +devs +Sandipan +Kayla +discoverable +Trei +aways +Chronotype +zapier +WildHealth +dev +Shopify's +ProductIDs +Flupdates +availble +enrollees +automations +hoc +Baeligh +Moburley +Baeleigh +Gmail +WHAcademy +www +wildhealth +www +www +transformative +impactful +positivity +CSMs +Basecamp +PSRs +PSR +TSU +ChurnZero +Neste +SEO +oAuth +sso +learning +pre +Margus +pipedive +http +iFrame +learn +OM +duolingo +gamification +CIP +typeform +Trello +repo +Unific +AIIM +FOMO diff --git a/nvim/.config/nvim/spell/en.utf-8.add.spl b/nvim/.config/nvim/spell/en.utf-8.add.spl new file mode 100644 index 0000000..1dc6023 Binary files /dev/null and b/nvim/.config/nvim/spell/en.utf-8.add.spl differ diff --git a/starship/.config/starship.toml b/starship/.config/starship.toml new file mode 100644 index 0000000..7f5d3e5 --- /dev/null +++ b/starship/.config/starship.toml @@ -0,0 +1,74 @@ +# ~/.config/starship.toml + +format = """ +$character\ +$directory\ +$username\ +$hostname\ +$python\ +$os\ +$shell\ +$fill\ +$git_branch$git_commit$git_state$git_status +[>... ](fg:purple) +""" + +#right_format = "$memory_usage$git_metrics" +scan_timeout = 10 +add_newline = false +palette = 'dracula' + +[character] +error_symbol = '[\(ಠ_ಠ\)](fg:red)' +success_symbol = '[¯\\_\(ツ\)_/¯](fg:green)' + +[directory] +truncation_length = 8 + +[fill] +symbol = '-' +style = 'bold grey' + +[python] +format = '$symbol ($virtualenv)($style)' + +[git_branch] +symbol = '🌱 ' +truncation_length = 4 +truncation_symbol = '' +always_show_remote = true +format = '[$symbol$branch(:$remote_branch)]($style) ' + +[git_status] +style = 'bold white' +#conflicted = '🏳' +#ahead = '🏎💨' +#behind = '😰' +#diverged = '😵' +#up_to_date = grey'✓' +#untracked = '🤷' +#stashed = '📦' +#modified = '📝' +staged = '[++\($count\)](green)' +#renamed = '👅' +#deleted = '🗑' + +[memory_usage] +disabled = false +format = ' $symbol [${ram_pct}](${style})' +threshold = -1 +symbol = '🧙' +style = 'bold green' + +[palettes.dracula] +black = '#282a36' +grey ='#44475a' +white = '#f8f8f2' +blue ='#6272a4' +cyan = '#8be9fd' +green = '#50fa7b' +orange = '#ffb86c' +pink = '#ff79c6' +purple = '#bd93f9' +red = '#ff5555' +yellow = '#f1fa8c' diff --git a/tmux/.config/tmux/plugins/.DS_Store b/tmux/.config/tmux/plugins/.DS_Store new file mode 100644 index 0000000..809d590 Binary files /dev/null and b/tmux/.config/tmux/plugins/.DS_Store differ diff --git a/tmux/.config/tmux/plugins/tmux b/tmux/.config/tmux/plugins/tmux new file mode 160000 index 0000000..a966029 --- /dev/null +++ b/tmux/.config/tmux/plugins/tmux @@ -0,0 +1 @@ +Subproject commit a966029b9938badd9ed945b634b917e574c0c322 diff --git a/tmux/.config/tmux/plugins/tmux-autoreload b/tmux/.config/tmux/plugins/tmux-autoreload new file mode 160000 index 0000000..e98aa3b --- /dev/null +++ b/tmux/.config/tmux/plugins/tmux-autoreload @@ -0,0 +1 @@ +Subproject commit e98aa3b74cfd5f2df2be2b5d4aa4ddcc843b2eba diff --git a/tmux/.config/tmux/plugins/tmux-colortag b/tmux/.config/tmux/plugins/tmux-colortag new file mode 160000 index 0000000..72ef717 --- /dev/null +++ b/tmux/.config/tmux/plugins/tmux-colortag @@ -0,0 +1 @@ +Subproject commit 72ef7174f63dcf8e2809376f8f8a39ca1d910efc diff --git a/tmux/.config/tmux/plugins/tmux-continuum b/tmux/.config/tmux/plugins/tmux-continuum new file mode 160000 index 0000000..fc2f31d --- /dev/null +++ b/tmux/.config/tmux/plugins/tmux-continuum @@ -0,0 +1 @@ +Subproject commit fc2f31d79537a5b349f55b74c8ca69abaac1ddbb diff --git a/tmux/.config/tmux/plugins/tmux-fuzzback b/tmux/.config/tmux/plugins/tmux-fuzzback new file mode 160000 index 0000000..6031244 --- /dev/null +++ b/tmux/.config/tmux/plugins/tmux-fuzzback @@ -0,0 +1 @@ +Subproject commit 6031244ae09e60cfdcb5271a8e7f72cbc8c5c3c3 diff --git a/tmux/.config/tmux/plugins/tmux-net-speed b/tmux/.config/tmux/plugins/tmux-net-speed new file mode 160000 index 0000000..58abb61 --- /dev/null +++ b/tmux/.config/tmux/plugins/tmux-net-speed @@ -0,0 +1 @@ +Subproject commit 58abb615971cb617821e2e7e41c660334f55a92d diff --git a/tmux/.config/tmux/plugins/tmux-network-bandwidth b/tmux/.config/tmux/plugins/tmux-network-bandwidth new file mode 160000 index 0000000..63c6b32 --- /dev/null +++ b/tmux/.config/tmux/plugins/tmux-network-bandwidth @@ -0,0 +1 @@ +Subproject commit 63c6b3283d537d9b86489c13b99ba0c65e0edac8 diff --git a/tmux/.config/tmux/plugins/tmux-nova b/tmux/.config/tmux/plugins/tmux-nova new file mode 160000 index 0000000..7bd3bce --- /dev/null +++ b/tmux/.config/tmux/plugins/tmux-nova @@ -0,0 +1 @@ +Subproject commit 7bd3bceb99ad0dda88defb301a4cf30aa317757a diff --git a/tmux/.config/tmux/plugins/tmux-open-nvim b/tmux/.config/tmux/plugins/tmux-open-nvim new file mode 160000 index 0000000..2f4818d --- /dev/null +++ b/tmux/.config/tmux/plugins/tmux-open-nvim @@ -0,0 +1 @@ +Subproject commit 2f4818d0d295fa5a99887c8e262e3c02d6b9dee6 diff --git a/tmux/.config/tmux/plugins/tmux-peacock b/tmux/.config/tmux/plugins/tmux-peacock new file mode 160000 index 0000000..b9bce7e --- /dev/null +++ b/tmux/.config/tmux/plugins/tmux-peacock @@ -0,0 +1 @@ +Subproject commit b9bce7e817caedef6943a8c5640e4c26aa6fd441 diff --git a/tmux/.config/tmux/plugins/tmux-resurrect b/tmux/.config/tmux/plugins/tmux-resurrect new file mode 160000 index 0000000..027960a --- /dev/null +++ b/tmux/.config/tmux/plugins/tmux-resurrect @@ -0,0 +1 @@ +Subproject commit 027960ad25895701a8fbc0a1eb4a8cb477452d20 diff --git a/tmux/.config/tmux/plugins/tmux-sensible b/tmux/.config/tmux/plugins/tmux-sensible new file mode 160000 index 0000000..5d089e4 --- /dev/null +++ b/tmux/.config/tmux/plugins/tmux-sensible @@ -0,0 +1 @@ +Subproject commit 5d089e418efb1a00f47654014ed085deb3d0c878 diff --git a/tmux/.config/tmux/plugins/tmux-sidebar b/tmux/.config/tmux/plugins/tmux-sidebar new file mode 160000 index 0000000..aacbdb4 --- /dev/null +++ b/tmux/.config/tmux/plugins/tmux-sidebar @@ -0,0 +1 @@ +Subproject commit aacbdb45bc5ab69db448a72de4155d0b8dbac677 diff --git a/tmux/.config/tmux/plugins/tmux-ssh-status b/tmux/.config/tmux/plugins/tmux-ssh-status new file mode 160000 index 0000000..5d786c6 --- /dev/null +++ b/tmux/.config/tmux/plugins/tmux-ssh-status @@ -0,0 +1 @@ +Subproject commit 5d786c676f1bad6bdc1d9be5074859ba7e00427d diff --git a/tmux/.config/tmux/plugins/tmux-themepack b/tmux/.config/tmux/plugins/tmux-themepack new file mode 160000 index 0000000..7c59902 --- /dev/null +++ b/tmux/.config/tmux/plugins/tmux-themepack @@ -0,0 +1 @@ +Subproject commit 7c59902f64dcd7ea356e891274b21144d1ea5948 diff --git a/tmux/.config/tmux/plugins/tmux-weather b/tmux/.config/tmux/plugins/tmux-weather new file mode 160000 index 0000000..28a5fbe --- /dev/null +++ b/tmux/.config/tmux/plugins/tmux-weather @@ -0,0 +1 @@ +Subproject commit 28a5fbe75bb25a408193d454304e28ddd75e9338 diff --git a/tmux/.config/tmux/plugins/tokyo-night-tmux b/tmux/.config/tmux/plugins/tokyo-night-tmux new file mode 160000 index 0000000..26617ca --- /dev/null +++ b/tmux/.config/tmux/plugins/tokyo-night-tmux @@ -0,0 +1 @@ +Subproject commit 26617ca796c150e2db381b165a63e6d08694be94 diff --git a/tmux/.config/tmux/plugins/tpm b/tmux/.config/tmux/plugins/tpm new file mode 160000 index 0000000..b699a7e --- /dev/null +++ b/tmux/.config/tmux/plugins/tpm @@ -0,0 +1 @@ +Subproject commit b699a7e01c253ffb7818b02d62bce24190ec1019 diff --git a/tmux/.config/tmux/plugins/vim-tmux-navigator b/tmux/.config/tmux/plugins/vim-tmux-navigator new file mode 160000 index 0000000..9ca5bfe --- /dev/null +++ b/tmux/.config/tmux/plugins/vim-tmux-navigator @@ -0,0 +1 @@ +Subproject commit 9ca5bfe5bd274051b5dd796cc150348afc993b80 diff --git a/tmux/.config/tmux/resurrect/last b/tmux/.config/tmux/resurrect/last new file mode 100644 index 0000000..fce6761 --- /dev/null +++ b/tmux/.config/tmux/resurrect/last @@ -0,0 +1,17 @@ +pane 1 0 0 :- 0 :/Users/normrasmussen/Documents/Projects/nvim_plugin_mdtodo/lua/plugin 1 nvim :nvim init.lua +pane 1 1 1 :* 0 :/Users/normrasmussen 1 zsh : +pane 2 0 1 :* 0 :/Users/normrasmussen 1 ssh :ssh norm@192.168.200.11 +pane 2 1 0 :- 0 :/Users/normrasmussen 1 nvim :nvim .tmux.conf +pane Northpass 0 0 : 0 :/Users/normrasmussen/Documents/Northpass 1 nvim :nvim +pane Northpass 1 0 :- 0 :/Users/normrasmussen/Documents/Northpass 1 nvim :nvim +pane Northpass 1 0 :- 1 :/Users/normrasmussen/Documents/Northpass/Timetagger 0 zsh : +pane Northpass 2 1 :* 0 :/Users/normrasmussen/.config/nvim 1 nvim :nvim +pane Northpass 2 1 :* 1 :/Users/normrasmussen/.config/nvim 0 zsh : +window 1 0 :nvim 0 :- b981,106x62,0,0,4 : +window 1 1 :whiptailpy 1 :* b982,106x62,0,0,5 off +window 2 0 :ssh 1 :* cd44,119x57,0,0,7 : +window 2 1 :nvim 0 :- cd45,119x57,0,0,8 : +window Northpass 0 :notes 0 : c13d,115x64,0,0,0 off +window Northpass 1 :templates 0 :- a804,136x64,0,0[136x46,0,0,1,136x17,0,47,3] off +window Northpass 2 :nvim-config 1 :* 4f08,136x64,0,0[136x47,0,0,2,136x16,0,48,6] off +state 2 diff --git a/tmux/.config/tmux/resurrect/tmux_resurrect_20220311T122826.txt b/tmux/.config/tmux/resurrect/tmux_resurrect_20220311T122826.txt new file mode 100644 index 0000000..0faf7c2 --- /dev/null +++ b/tmux/.config/tmux/resurrect/tmux_resurrect_20220311T122826.txt @@ -0,0 +1,16 @@ +pane 1 0 0 : 0 :/Users/normrasmussen 1 ssh :ssh norm@192.168.1.12 +pane 1 1 1 :* 0 :/Users/normrasmussen 1 nvim :nvim /Users/normrasmussen/.tmux.conf +pane 1 2 0 :- 0 :/Users/normrasmussen 1 nvim :nvim +pane Northpass 0 1 :* 0 :/Users/normrasmussen/Documents/Northpass/NP_Custom_Templates 0 nvim :nvim +pane Northpass 0 1 :* 1 :/Users/normrasmussen/Documents/Northpass 1 fish :fish +pane Northpass 1 0 : 0 :/Users/normrasmussen/Documents/Northpass/NP_Startpage 1 nvim :nvim +pane Northpass 2 0 :- 0 :/Users/normrasmussen/Documents/Northpass/Google_Scripts 1 fish : +pane Northpass 3 0 : 0 :/Users/normrasmussen/Documents/Northpass 1 fish :fish +window 1 0 :ssh 0 : b902,101x34,0,0,5 : +window 1 1 :tmux.conf 1 :* cd03,143x48,0,0,6 off +window 1 2 :nvim 0 :- cd04,143x48,0,0,7 : +window Northpass 0 :Templates 1 :* 13d7,148x49,0,0[148x34,0,0,0,148x14,0,35,4] off +window Northpass 1 :Start Page 0 : b25e,80x24,0,0,1 off +window Northpass 2 :Google Apps 0 :- d37f,148x49,0,0,2 off +window Northpass 3 :SSH 0 : b260,80x24,0,0,3 off +state 1 diff --git a/tmux/.config/tmux/resurrect/tmux_resurrect_20220311T125305.txt b/tmux/.config/tmux/resurrect/tmux_resurrect_20220311T125305.txt new file mode 100644 index 0000000..82be09e --- /dev/null +++ b/tmux/.config/tmux/resurrect/tmux_resurrect_20220311T125305.txt @@ -0,0 +1,16 @@ +pane 1 0 0 : 0 :/Users/normrasmussen 1 ssh :ssh norm@192.168.1.12 +pane 1 1 1 :* 0 :/Users/normrasmussen 1 nvim :nvim /Users/normrasmussen/.tmux.conf +pane 1 2 0 :- 0 :/Users/normrasmussen 1 ssh :ssh norm@192.168.1.7 +pane Northpass 0 1 :* 0 :/Users/normrasmussen/Documents/Northpass/NP_Custom_Templates 0 nvim :nvim +pane Northpass 0 1 :* 1 :/Users/normrasmussen/Documents/Northpass 1 fish :fish +pane Northpass 1 0 : 0 :/Users/normrasmussen/Documents/Northpass/NP_Startpage 1 nvim :nvim +pane Northpass 2 0 :- 0 :/Users/normrasmussen/Documents/Northpass/Google_Scripts 1 fish : +pane Northpass 3 0 : 0 :/Users/normrasmussen/Documents/Northpass 1 fish :fish +window 1 0 :ssh 0 : b902,101x34,0,0,5 : +window 1 1 :tmux.conf 1 :* cd03,143x48,0,0,6 off +window 1 2 :ssh 0 :- cd04,143x48,0,0,7 : +window Northpass 0 :Templates 1 :* 13d7,148x49,0,0[148x34,0,0,0,148x14,0,35,4] off +window Northpass 1 :Start Page 0 : b25e,80x24,0,0,1 off +window Northpass 2 :Google Apps 0 :- d37f,148x49,0,0,2 off +window Northpass 3 :SSH 0 : b260,80x24,0,0,3 off +state 1 diff --git a/tmux/.config/tmux/resurrect/tmux_resurrect_20220503T131033.txt b/tmux/.config/tmux/resurrect/tmux_resurrect_20220503T131033.txt new file mode 100644 index 0000000..d72556c --- /dev/null +++ b/tmux/.config/tmux/resurrect/tmux_resurrect_20220503T131033.txt @@ -0,0 +1,5 @@ +pane 0 0 1 :* 0 :/Users/normrasmussen 1 ssh :ssh norm@192.168.1.3 +pane 0 1 0 :- 0 :/Users/normrasmussen 1 fish : +window 0 0 :ssh 1 :* b09d,98x51,0,0,0 : +window 0 1 :fish 0 :- b09e,98x51,0,0,1 : +state 0 diff --git a/tmux/.config/tmux/resurrect/tmux_resurrect_20220707T162109.txt b/tmux/.config/tmux/resurrect/tmux_resurrect_20220707T162109.txt new file mode 100644 index 0000000..aeafe6c --- /dev/null +++ b/tmux/.config/tmux/resurrect/tmux_resurrect_20220707T162109.txt @@ -0,0 +1,3 @@ +pane 0 0 1 :* 0 :/Users/normrasmussen 1 zsh : +window 0 0 :zsh 1 :* bffd,107x54,0,0,0 : +state 0 diff --git a/tmux/.config/tmux/resurrect/tmux_resurrect_20220913T114203.txt b/tmux/.config/tmux/resurrect/tmux_resurrect_20220913T114203.txt new file mode 100644 index 0000000..fce6761 --- /dev/null +++ b/tmux/.config/tmux/resurrect/tmux_resurrect_20220913T114203.txt @@ -0,0 +1,17 @@ +pane 1 0 0 :- 0 :/Users/normrasmussen/Documents/Projects/nvim_plugin_mdtodo/lua/plugin 1 nvim :nvim init.lua +pane 1 1 1 :* 0 :/Users/normrasmussen 1 zsh : +pane 2 0 1 :* 0 :/Users/normrasmussen 1 ssh :ssh norm@192.168.200.11 +pane 2 1 0 :- 0 :/Users/normrasmussen 1 nvim :nvim .tmux.conf +pane Northpass 0 0 : 0 :/Users/normrasmussen/Documents/Northpass 1 nvim :nvim +pane Northpass 1 0 :- 0 :/Users/normrasmussen/Documents/Northpass 1 nvim :nvim +pane Northpass 1 0 :- 1 :/Users/normrasmussen/Documents/Northpass/Timetagger 0 zsh : +pane Northpass 2 1 :* 0 :/Users/normrasmussen/.config/nvim 1 nvim :nvim +pane Northpass 2 1 :* 1 :/Users/normrasmussen/.config/nvim 0 zsh : +window 1 0 :nvim 0 :- b981,106x62,0,0,4 : +window 1 1 :whiptailpy 1 :* b982,106x62,0,0,5 off +window 2 0 :ssh 1 :* cd44,119x57,0,0,7 : +window 2 1 :nvim 0 :- cd45,119x57,0,0,8 : +window Northpass 0 :notes 0 : c13d,115x64,0,0,0 off +window Northpass 1 :templates 0 :- a804,136x64,0,0[136x46,0,0,1,136x17,0,47,3] off +window Northpass 2 :nvim-config 1 :* 4f08,136x64,0,0[136x47,0,0,2,136x16,0,48,6] off +state 2 diff --git a/tmux/.config/tmux/sidebar/directory_widths.txt b/tmux/.config/tmux/sidebar/directory_widths.txt new file mode 100644 index 0000000..f288afb --- /dev/null +++ b/tmux/.config/tmux/sidebar/directory_widths.txt @@ -0,0 +1,4 @@ +/Users/normrasmussen 40 +/Users/normrasmussen/Documents/Liquid_Templates 40 +/Users/normrasmussen/Documents/Liquid_Templates/customer_templates 69 + 40 diff --git a/tmux/.config/tmux/tmux.conf b/tmux/.config/tmux/tmux.conf new file mode 100644 index 0000000..1793735 --- /dev/null +++ b/tmux/.config/tmux/tmux.conf @@ -0,0 +1,84 @@ +# Standard Plugins +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-sensible' + +# Continue Session on Startup +set -g @plugin 'tmux-plugins/tmux-resurrect' +set -g @plugin 'tmux-plugins/tmux-continuum' + +# synchronize panes toggle - literally typing at the same time in both panes! +# unbind C-s +# bind C-y set-window-option synchronize-panes + +# Search your Scrollback using fzf +set -g @plugin 'roosta/tmux-fuzzback' + +# Open files in Neovim from another pane +# Might not work on ZSH. Commenting out for now. +# set -g @plugin 'trevarj/tmux-open-nvim' + +# Allow Focus Events +set -g focus-events on + +# enable mouse support +set-option -g mouse on + +# Vim-Tmux-Navigator plugin/ +set -g @plugin 'christoomey/vim-tmux-navigator' + +# Navigating Vim & Tmux Panes +# Smart pane switching with awareness of Vim splits. +#is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ + | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" +#bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L' +#bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D' +#bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U' +#bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R' +#tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")' +#if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \ +# "bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'" +#if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \ + "bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'" + +#bind-key -T copy-mode-vi 'C-h' select-pane -L +#bind-key -T copy-mode-vi 'C-j' select-pane -D +#bind-key -T copy-mode-vi 'C-k' select-pane -U +#bind-key -T copy-mode-vi 'C-l' select-pane -R +#bind-key -T copy-mode-vi 'C-\' select-pane -l + +# Themes +# set -g @plugin 'o0th/tmux-nova' +#set -g @plugin "janoamaral/tokyo-night-tmux" + +# Dracula +set -g @plugin 'dracula/tmux' +set -g @dracula-plugins "git weather network-ping cpu-usage time" + +set -g @dracula-show-location false +set -g @dracula-fixed-location "Parsippany, NJ" +set -g @dracula-show-powerline true +set -g @dracula-show-flags true +set -g @dracula-show-left-icon window +set -g @dracula-border-contrast true + + +set -g @dracula-ping-server "overras.duckdns.org" +set -g @dracula-ping-rate 5 + +set -g @dracula-cpu-usage-label " " +set -g @dracula-cpu-usage-colors "pink dark_gray" + +set -g @dracula-git-show-current-symbol ✓ +set -g @dracula-git-show-diff-symbol ! +set -g @dracula-git-no-repo-message ⊚ + +set -g @dracula-show-timezone false +set -g @dracula-military-time true + + +run-shell ~/clone/path/continuum.tmux + +# Autoreload tmux.conf +set-option -g @plugin 'b0o/tmux-autoreload' +# Initiazlie TMUX plugin manager - kept at bottom of file +run '~/.config/tmux/plugins/tpm/tpm' diff --git a/tmuxinator/.config/tmuxinator/Work.yml b/tmuxinator/.config/tmuxinator/Work.yml new file mode 100644 index 0000000..e596a44 --- /dev/null +++ b/tmuxinator/.config/tmuxinator/Work.yml @@ -0,0 +1,24 @@ +# /Users/normrasmussen/.config/tmuxinator/NvimTemplates.yml + +name: Northpass +root: ~/ +windows: + - notes: + root: ~/Documents/Work/CustomerNotes + panes: + - nvim + - templates: + root: ~/Documents/Work/Custom_Templates/customer_templates/ + panes: + - nvim + - scripts: + root: ~/Documents/Work/Scripts + layout: main-horizontal + panes: + - nvim + - pyenv activate np_scripts + - dots: + root: ~/.config/nvim/ + panes: + - nvim + - tut-tut: tut