chore: initial commit

This commit is contained in:
Dustin Stiles 2024-08-07 10:45:13 -04:00
commit b49ac71743
Signed by: wqtt
GPG Key ID: 65BAF32B4F4C2D0B
52 changed files with 1210 additions and 0 deletions

22
bin/bin/t Executable file
View File

@ -0,0 +1,22 @@
#!/bin/bash
# Ask zoxide which directory matches the query.
ZOXIDE_RESULT=$(zoxide query $1)
if [ -z "$ZOXIDE_RESULT" ]; then
exit 0
fi
FOLDER=$(basename $ZOXIDE_RESULT)
SESSION=$(tmux list-sessions | grep $FOLDER)
if [[ -z "${TMUX}" ]]; then
echo "not in tmux"
cd "$ZOXIDE_RESULT" && tmux new -t $1
else
cd $ZOXIDE_RESULT
tmux new-session -d -s $1
tmux switch-client -t $1
fi

11
bin/setup.sh Executable file
View File

@ -0,0 +1,11 @@
#!/bin/bash
if [ -d "~/bin" ]; then
echo "detected existing ~/bin"
echo "please backup, remove, and try again"
exit 1
fi
mkdir ~/bin
stow -t ~/bin bin

4
nvim/nvim/init.lua Normal file
View File

@ -0,0 +1,4 @@
require("wqtt.core.remap")
require("wqtt.lazy")
require("wqtt.core.options")
require("theme")

60
nvim/nvim/lazy-lock.json Normal file
View File

@ -0,0 +1,60 @@
{
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
"conform.nvim": { "branch": "master", "commit": "25d48271e3d4404ba017cb92a37d3a681c1ad149" },
"everforest": { "branch": "master", "commit": "b49ba81e79b20d2b47bb71e98fa984bae90731be" },
"friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" },
"github-nvim-theme": { "branch": "main", "commit": "80b7f448d7f7fa36070ffbe2a43458e57058bb72" },
"gitsigns.nvim": { "branch": "main", "commit": "58bd9e98d8e3c5a1c98af312e85247ee1afd3ed2" },
"gruvbox.nvim": { "branch": "main", "commit": "7a1b23e4edf73a39642e77508ee6b9cbb8c60f9e" },
"harpoon": { "branch": "master", "commit": "ccae1b9bec717ae284906b0bf83d720e59d12b91" },
"hop.nvim": { "branch": "v2", "commit": "90db1b2c61b820e230599a04fedcd2679e64bd07" },
"lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
"lazygit.nvim": { "branch": "main", "commit": "dc56df433bfbf107fee0139e187eb9750878fa84" },
"lspkind.nvim": { "branch": "master", "commit": "cff4ae321a91ee3473a92ea1a8c637e3a9510aec" },
"lua-utils.nvim": { "branch": "main", "commit": "e565749421f4bbb5d2e85e37c3cef9d56553d8bd" },
"lualine.nvim": { "branch": "master", "commit": "544dd1583f9bb27b393f598475c89809c4d5e86b" },
"luarocks.nvim": { "branch": "main", "commit": "1db9093915eb16ba2473cfb8d343ace5ee04130a" },
"lush.nvim": { "branch": "main", "commit": "6a254139d077ad53be7e4f3602c8da0c84447fd9" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "62360f061d45177dda8afc1b0fd1327328540301" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "c5e07b8ff54187716334d585db34282e46fa2932" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
"neorg": { "branch": "main", "commit": "81ee90cb2d72ac43bfadb7dd276646f34c8f85be" },
"neoscroll.nvim": { "branch": "master", "commit": "532dcc8cea4287c4cad6bb77532989a8217cfc7b" },
"nightfox.nvim": { "branch": "main", "commit": "d3e8b1acc095baf57af81bb5e89fe7c4359eb619" },
"nord.nvim": { "branch": "master", "commit": "80c1e5321505aeb22b7a9f23eb82f1e193c12470" },
"nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
"nvim-autopairs": { "branch": "master", "commit": "e38c5d837e755ce186ae51d2c48e1b387c4425c6" },
"nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
"nvim-lint": { "branch": "master", "commit": "efc6fc83f0772283e064c53a8f9fb5645bde0bc0" },
"nvim-lsp-file-operations": { "branch": "master", "commit": "92a673de7ecaa157dd230d0128def10beb56d103" },
"nvim-lspconfig": { "branch": "master", "commit": "e6528f4613c8db2e04be908eb2b5886d63f62a98" },
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
"nvim-tree.lua": { "branch": "master", "commit": "48d0e82f9434691cc50d970898142a8c084a49d6" },
"nvim-treesitter": { "branch": "master", "commit": "d7353a6b72008b38aa873ace49aa97bea257941b" },
"nvim-ts-autotag": { "branch": "main", "commit": "dc5e1687ab76ee02e0f11c5ce137f530b36e98b3" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "6b5f95aa4d24f2c629a74f2c935c702b08dbde62" },
"nvim-web-devicons": { "branch": "master", "commit": "3722e3d1fb5fe1896a104eb489e8f8651260b520" },
"onedarkpro.nvim": { "branch": "main", "commit": "c825a3490dc3f6fb413607ed2602c1280a127756" },
"onenord.nvim": { "branch": "main", "commit": "70b716fd36a18284ad768402523b79ccdadafedf" },
"pathlib.nvim": { "branch": "main", "commit": "7a5a6facd29e306bc73a37719fa67c0d2226f852" },
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
"rose-pine": { "branch": "main", "commit": "e4b08d74b7272cb21e4e9c71b8b9e0830fd722fe" },
"seoul256.vim": { "branch": "master", "commit": "b21c9e63f7c2d543db8b34a393a0b42ec7e9b891" },
"solarized.nvim": { "branch": "main", "commit": "3a197875c76803e4a64d4b1491c6dd0d22b161cd" },
"sweetie.nvim": { "branch": "master", "commit": "4f0dc96ea3adeeac0507eb64cb7dc70fe0ddcecf" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" },
"telescope.nvim": { "branch": "master", "commit": "6312868392331c9c0f22725041f1ec2bef57c751" },
"todo-comments.nvim": { "branch": "main", "commit": "8f45f353dc3649cb9b44cecda96827ea88128584" },
"tokyonight.nvim": { "branch": "main", "commit": "b0e7c7382a7e8f6456f2a95655983993ffda745e" },
"transparent.nvim": { "branch": "main", "commit": "fd35a46f4b7c1b244249266bdcb2da3814f01724" },
"trouble.nvim": { "branch": "main", "commit": "6efc446226679fda0547c0fd6a7892fd5f5b15d8" },
"vscode.nvim": { "branch": "main", "commit": "f6c88cdf9d37d5c0bb1e492a13a3b4b4cc4dd13e" },
"which-key.nvim": { "branch": "main", "commit": "6c1584eb76b55629702716995cca4ae2798a9cca" },
"zenbones.nvim": { "branch": "main", "commit": "e9ba8305f65524f9355515cdd8704b2c6ba2def6" }
}

3
nvim/nvim/lua/theme.lua Normal file
View File

@ -0,0 +1,3 @@
vim.opt.background = "dark"
vim.cmd("colorscheme dawnfox")

View File

@ -0,0 +1,35 @@
-- Line Numbers
vim.opt.number = true
vim.opt.relativenumber = true
-- Tabs & Indentation
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.autoindent = true
-- No line wraps
vim.opt.wrap = false
-- Search Settings
vim.opt.ignorecase = true
vim.opt.smartcase = true
-- Higlight the line the cursor is currently on
vim.opt.cursorline = true
-- Tell neovim that our terminal is true color
vim.opt.termguicolors = true
vim.opt.signcolumn = "yes"
-- Allow backspace to work as you would expect
vim.opt.backspace = "indent,eol,start"
-- Use system clipboard as default register
vim.opt.clipboard:append("unnamedplus")
vim.cmd([[
set nobackup "no backup files
set nowritebackup "only in case you don't want a backup file while editing
set noswapfile "no swap files
]])

View File

@ -0,0 +1,22 @@
vim.g.mapleader = " "
vim.keymap.set("i", "jj", "<Esc>", { desc = "Exit insert mode with jj" })
vim.keymap.set("n", "nh", ":nohl<CR>", { desc = "Clear highlights with nh" })
vim.keymap.set("n", "<leader>wc", ":w<CR>", { desc = "Write the current buffer" })
vim.keymap.set("n", "<leader>wa", ":wa<CR>", { desc = "Write all open buffers" })
vim.keymap.set("n", "<leader>q", ":q<CR>", { desc = "Quit" })
vim.keymap.set("n", "<leader>ns", ":source ~/.config/nvim/init.lua<CR>", { desc = "Source the nvim configuration" })
vim.keymap.set("v", "<leader>fmt", ":!column -t -s '|' -o '|'<CR>", { desc = "format the selected markdown table" })
vim.keymap.set("n", "<leader>rgm", ":! go run main.go<CR>", { desc = "Run the main.go file" })
vim.keymap.set("n", "<leader>fc", ":foldclose<CR>", { desc = "Close a fold" })
vim.keymap.set("n", "<leader>fo", ":foldopen<CR>", { desc = "Open a fold" })
vim.cmd([[
vnoremap <C-k> :m '<-2<CR>gv=gv
vnoremap <C-j> :m '>+1<CR>gv=gv
]])

View File

@ -0,0 +1,23 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or 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)
require("lazy").setup({
{ import = "wqtt.plugins" },
{ import = "wqtt.plugins.lsp" },
{ import = "wqtt.plugins.themes" },
}, {
change_detection = {
enabled = true,
notify = true,
},
})

View File

@ -0,0 +1,25 @@
return {
"windwp/nvim-autopairs",
event = { "InsertEnter" },
dependencies = {
"hrsh7th/nvim-cmp",
},
config = function()
local autopairs = require("nvim-autopairs")
autopairs.setup({
check_ts = true,
ts_config = {
lua = { "string" },
javascript = { "template_string" },
java = false,
},
})
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
local cmp = require("cmp")
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
end,
}

View File

@ -0,0 +1,16 @@
return {
"numToStr/Comment.nvim",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"JoosepAlviste/nvim-ts-context-commentstring",
},
config = function()
local comment = require("Comment")
local ts_context_contextstring = require("ts_context_commentstring.integrations.comment_nvim")
comment.setup({
pre_hook = ts_context_contextstring.create_pre_hook(),
})
end,
}

View File

@ -0,0 +1,37 @@
return {
"stevearc/conform.nvim",
event = { "BufReadPre", "BufNewFile" },
config = function()
local conform = require("conform")
conform.setup({
formatters_by_ft = {
javascript = { "prettier" },
typescript = { "prettier" },
javascriptreact = { "prettier" },
typescriptreact = { "prettier" },
css = { "prettier" },
html = { "prettier" },
json = { "prettier" },
yaml = { "prettier" },
markdown = { "prettier" },
graphql = { "prettier" },
lua = { "stylua" },
elm = { "elm-format" },
},
format_on_save = {
lsp_fallback = true,
async = false,
timeout_ms = 1000,
},
})
vim.keymap.set({ "n", "v" }, "<leader>mp", function()
conform.format({
lsp_fallback = true,
async = false,
timeout_ms = 1000,
})
end, { desc = "Format file or range" })
end,
}

View File

@ -0,0 +1,6 @@
return {
"lewis6991/gitsigns.nvim",
config = function()
require("gitsigns").setup()
end,
}

View File

@ -0,0 +1,10 @@
return {
"ThePrimeagen/harpoon",
config = function()
local mark = require("harpoon.mark")
local ui = require("harpoon.ui")
vim.keymap.set("n", "<leader>a", function() mark.add_file() end, { desc = "Add the current file to harpoon" })
vim.keymap.set("n", "<leader>h", function() ui.toggle_quick_menu() end, { desc = "Show the harpoon quick menu" })
end
}

View File

@ -0,0 +1,9 @@
return {
"phaazon/hop.nvim",
branch = "v2", -- optional but strongly recommended
config = function()
require("hop").setup()
vim.keymap.set("n", "<leader>gw", "<cmd>HopWord<CR>", { desc = "Activate word jumping" })
end,
}

View File

@ -0,0 +1,7 @@
return {
"nvim-lua/plenary.nvim",
{
'nvim-lualine/lualine.nvim',
requires = { 'nvim-tree/nvim-web-devicons', opt = true },
},
}

View File

@ -0,0 +1,19 @@
return {
"kdheepak/lazygit.nvim",
cmd = {
"LazyGit",
"LazyGitConfig",
"LazyGitCurrentFile",
"LazyGitFilter",
"LazyGitFilterCurrentFile",
},
-- optional for floating window border decoration
dependencies = {
"nvim-lua/plenary.nvim",
},
-- setting the keybinding for LazyGit with 'keys' is recommended in
-- order to load the plugin when the command is run for the first time
keys = {
{ "<leader>lg", "<cmd>LazyGit<cr>", desc = "LazyGit" },
},
}

View File

@ -0,0 +1,25 @@
return {
"mfussenegger/nvim-lint",
event = { "BufReadPre", "BufNewFile" },
config = function()
local lint = require("lint")
lint.linters_by_ft = {
python = { "pylint" },
go = { "revive" },
}
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
group = lint_augroup,
callback = function()
lint.try_lint()
end,
})
vim.keymap.set("n", "<leader>l", function()
lint.try_lint()
end, { desc = "Trigger linting for current file" })
end,
}

View File

@ -0,0 +1,96 @@
return {
"neovim/nvim-lspconfig",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"hrsh7th/cmp-nvim-lsp",
{ "antosha417/nvim-lsp-file-operations", config = true },
{ "folke/neodev.nvim", opts = {} },
},
config = function()
local lspconfig = require("lspconfig")
local mason_lspconfig = require("mason-lspconfig")
local cmp_nvim_lsp = require("cmp_nvim_lsp")
lspconfig.gleam.setup({})
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
callback = function(ev)
local opts = { buffer = ev.buf, silent = true }
opts.desc = "Show LSP references"
vim.keymap.set("n", "gR", "<cmd>Telescope lsp_references<CR>", opts)
opts.desc = "Go to declaration"
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
opts.desc = "Show LSP definitions"
vim.keymap.set("n", "gi", "<cmd>Telescope lsp_definitions<CR>", opts)
opts.desc = "Show LSP type definitions"
vim.keymap.set("n", "gt", "<cmd>Telescope lsp_type_definitions<CR>", opts)
opts.desc = "See available code actions"
vim.keymap.set({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, opts)
opts.desc = "Smart rename"
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
opts.desc = "Show buffer diagnostics"
vim.keymap.set("n", "<leader>D", "<cmd>Telescope diagnostics bufnr=0<CR>", opts)
opts.desc = "Show line diagnostics"
vim.keymap.set("n", "<leader>d", vim.diagnostic.open_float, opts)
opts.desc = "Go to previous diagnostic"
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts)
opts.desc = "Go to next diagnostic"
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts)
opts.desc = "Show documentation for current symbol"
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
opts.desc = "Restart LSP"
vim.keymap.set("n", "<leader>rs", ":LspRestart<CR>", opts)
end,
})
local capabilities = cmp_nvim_lsp.default_capabilities()
mason_lspconfig.setup_handlers({
function(server_name)
lspconfig[server_name].setup({
capabilities = capabilities,
})
end,
["tailwindcss"] = function()
lspconfig["tailwindcss"].setup({
capabilities = capabilities,
filetypes = { "html", "ts", "tsx", "js", "jsx", "elm", "gleam" },
})
end,
["clangd"] = function()
lspconfig["clangd"].setup({
capabilities = capabilities,
filetypes = { "c", "cpp" },
})
end,
["lua_ls"] = function()
lspconfig["lua_ls"].setup({
capabilities = capabilities,
settings = {
Lua = {
diagnostics = {
globals = { "vim" },
},
completion = {
callSnippet = "Replace",
},
},
},
})
end,
})
end,
}

View File

@ -0,0 +1,48 @@
return {
"williamboman/mason.nvim",
dependencies = {
"williamboman/mason-lspconfig.nvim",
"WhoIsSethDaniel/mason-tool-installer.nvim",
},
config = function()
local mason = require("mason")
local mason_lspconfig = require("mason-lspconfig")
mason.setup()
mason_lspconfig.setup({
ensure_installed = {
"tsserver",
"html",
"cssls",
"tailwindcss",
"lua_ls",
"graphql",
"prismals",
"pyright",
"elmls",
"golangci_lint_ls",
"gopls",
"yamlls",
"terraformls",
"rust_analyzer",
"marksman",
"elixirls",
"docker_compose_language_service",
"cypher_ls",
"clangd",
"bashls",
},
})
local mason_tool_installer = require("mason-tool-installer")
mason_tool_installer.setup({
ensure_installed = {
"prettier",
"stylua",
"elm-format",
},
})
end,
}

View File

@ -0,0 +1,12 @@
return {
"nvim-lualine/lualine.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
require("lualine").setup({
options = {
component_separators = { left = "", right = "" },
section_separators = { left = "", right = "" },
},
})
end,
}

View File

@ -0,0 +1,5 @@
return {
"vhyrro/luarocks.nvim",
priority = 1000, -- Very high priority is required, luarocks.nvim should run as the first plugin in your config.
config = true,
}

View File

@ -0,0 +1,31 @@
return {
"nvim-neorg/neorg",
lazy = false, -- Disable lazy loading as some `lazy.nvim` distributions set `lazy = true` by default
version = "*", -- Pin Neorg to the latest stable release
config = function()
require("neorg").setup({
load = {
["core.defaults"] = {},
["core.dirman"] = {
config = {
workspaces = {
stablekernel = "~/repos/notes/stablekernel",
},
},
},
["core.concealer"] = {},
["core.summary"] = {},
["core.completion"] = {
config = {
engine = "nvim-cmp",
},
},
["core.integrations.nvim-cmp"] = {},
},
})
vim.keymap.set("n", "<leader>ni", ":Neorg inject-metadata<cr>", { desc = "Inject neorg metadata" })
vim.keymap.set("n", "<leader>nu", ":Neorg update-metadata<cr>", { desc = "Update neorg metadata" })
vim.keymap.set("n", "<leader>nt", ":Neorg toc<cr>", { desc = "Update neorg metadata" })
end,
}

View File

@ -0,0 +1,6 @@
return {
"karb94/neoscroll.nvim",
config = function()
require("neoscroll").setup({})
end,
}

View File

@ -0,0 +1,57 @@
return {
"hrsh7th/nvim-cmp",
event = "InsertEnter",
dependencies = {
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
{
"L3MON4D3/LuaSnip",
version = "v2.*",
build = "make install_jsregexp",
},
"saadparwaiz1/cmp_luasnip",
"rafamadriz/friendly-snippets",
"onsails/lspkind.nvim",
"hrsh7th/cmp-nvim-lsp",
},
config = function()
local cmp = require("cmp")
local luasnip = require("luasnip")
local lspkind = require("lspkind")
require("luasnip.loaders.from_vscode").lazy_load()
cmp.setup({
completion = {
completeopt = "menu,menuone,preview,noselect",
},
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert({
["<C-k>"] = cmp.mapping.select_prev_item(),
["<C-j>"] = cmp.mapping.select_next_item(),
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.abort(),
["<CR>"] = cmp.mapping.confirm({ select = false }),
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" },
{ name = "luasnip" },
{ name = "buffer" },
{ name = "path" },
{ name = "neorg" },
}),
formatting = {
format = lspkind.cmp_format({
maxwidth = 50,
ellipsis_char = "...",
}),
},
})
end,
}

View File

@ -0,0 +1,283 @@
return {
"nvim-tree/nvim-tree.lua",
dependencies = "nvim-tree/nvim-web-devicons",
config = function()
require("nvim-tree").setup({ -- BEGIN_DEFAULT_OPTS
on_attach = "default",
hijack_cursor = false,
auto_reload_on_write = true,
disable_netrw = false,
hijack_netrw = true,
hijack_unnamed_buffer_when_opening = false,
root_dirs = {},
prefer_startup_root = false,
sync_root_with_cwd = false,
reload_on_bufenter = false,
respect_buf_cwd = false,
select_prompts = false,
sort = {
sorter = "name",
folders_first = true,
files_first = false,
},
view = {
centralize_selection = false,
cursorline = true,
debounce_delay = 15,
side = "right",
preserve_window_proportions = false,
number = false,
relativenumber = false,
signcolumn = "yes",
width = 30,
float = {
enable = false,
quit_on_focus_loss = true,
open_win_config = {
relative = "editor",
border = "rounded",
width = 30,
height = 30,
row = 1,
col = 1,
},
},
},
renderer = {
add_trailing = false,
group_empty = false,
full_name = false,
root_folder_label = ":~:s?$?/..?",
indent_width = 2,
special_files = { "Cargo.toml", "Makefile", "README.md", "readme.md" },
symlink_destination = true,
highlight_git = "none",
highlight_diagnostics = "none",
highlight_opened_files = "none",
highlight_modified = "none",
highlight_hidden = "none",
highlight_bookmarks = "none",
highlight_clipboard = "name",
indent_markers = {
enable = false,
inline_arrows = true,
icons = {
corner = "",
edge = "",
item = "",
bottom = "",
none = " ",
},
},
icons = {
web_devicons = {
file = {
enable = true,
color = true,
},
folder = {
enable = false,
color = true,
},
},
git_placement = "before",
modified_placement = "after",
hidden_placement = "after",
diagnostics_placement = "signcolumn",
bookmarks_placement = "signcolumn",
padding = " ",
symlink_arrow = "",
show = {
file = true,
folder = true,
folder_arrow = true,
git = true,
modified = true,
hidden = false,
diagnostics = true,
bookmarks = true,
},
glyphs = {
default = "",
symlink = "",
bookmark = "󰆤",
modified = "",
hidden = "󰜌",
folder = {
arrow_closed = "",
arrow_open = "",
default = "",
open = "",
empty = "",
empty_open = "",
symlink = "",
symlink_open = "",
},
git = {
unstaged = "",
staged = "",
unmerged = "",
renamed = "",
untracked = "",
deleted = "",
ignored = "",
},
},
},
},
hijack_directories = {
enable = true,
auto_open = true,
},
update_focused_file = {
enable = false,
update_root = {
enable = false,
ignore_list = {},
},
exclude = false,
},
system_open = {
cmd = "",
args = {},
},
git = {
enable = true,
show_on_dirs = true,
show_on_open_dirs = true,
disable_for_dirs = {},
timeout = 400,
cygwin_support = false,
},
diagnostics = {
enable = false,
show_on_dirs = false,
show_on_open_dirs = true,
debounce_delay = 50,
severity = {
min = vim.diagnostic.severity.HINT,
max = vim.diagnostic.severity.ERROR,
},
icons = {
hint = "",
info = "",
warning = "",
error = "",
},
},
modified = {
enable = false,
show_on_dirs = true,
show_on_open_dirs = true,
},
filters = {
enable = true,
git_ignored = true,
dotfiles = false,
git_clean = false,
no_buffer = false,
no_bookmark = false,
custom = {},
exclude = {},
},
live_filter = {
prefix = "[FILTER]: ",
always_show_folders = true,
},
filesystem_watchers = {
enable = true,
debounce_delay = 50,
ignore_dirs = {},
},
actions = {
use_system_clipboard = true,
change_dir = {
enable = true,
global = false,
restrict_above_cwd = false,
},
expand_all = {
max_folder_discovery = 300,
exclude = {},
},
file_popup = {
open_win_config = {
col = 1,
row = 1,
relative = "cursor",
border = "shadow",
style = "minimal",
},
},
open_file = {
quit_on_open = false,
eject = true,
resize_window = true,
window_picker = {
enable = true,
picker = "default",
chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
exclude = {
filetype = { "notify", "packer", "qf", "diff", "fugitive", "fugitiveblame" },
buftype = { "nofile", "terminal", "help" },
},
},
},
remove_file = {
close_window = true,
},
},
trash = {
cmd = "gio trash",
},
tab = {
sync = {
open = false,
close = false,
ignore = {},
},
},
notify = {
threshold = vim.log.levels.INFO,
absolute_path = true,
},
help = {
sort_by = "key",
},
ui = {
confirm = {
remove = true,
trash = true,
default_yes = false,
},
},
experimental = {
actions = {
open_file = {
relative_path = false,
},
},
},
log = {
enable = false,
truncate = false,
types = {
all = false,
config = false,
copy_paste = false,
dev = false,
diagnostics = false,
git = false,
profile = false,
watcher = false,
},
},
}) -- END_DEFAULT_OPTS
local api = require("nvim-tree.api")
vim.keymap.set("n", "<leader>e", function()
api.tree.toggle()
end, { desc = "Toggle the file explorer" })
end,
}

View File

@ -0,0 +1,34 @@
return {
"nvim-telescope/telescope.nvim",
tag = "0.1.6",
dependencies = {
"nvim-lua/plenary.nvim",
{ "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
"folke/todo-comments.nvim",
},
config = function()
local telescope = require("telescope")
local builtin = require("telescope.builtin")
telescope.load_extension("fzf")
vim.keymap.set("n", "<C-p>", builtin.git_files, { desc = "Show all files in git" })
vim.keymap.set("n", "<leader>fr", builtin.oldfiles, { desc = "Show recent files" })
vim.keymap.set("n", "<leader>ff", builtin.find_files, { desc = "show all files in the current directory" })
vim.keymap.set("n", "<leader>fg", builtin.live_grep, { desc = "live grep" })
vim.keymap.set("n", "<leader>fb", builtin.buffers, { desc = "show all open buffers" })
vim.keymap.set("n", "<leader>ft", "<cmd>TodoTelescope<cr>", { desc = "find todos" })
vim.keymap.set(
"n",
"<leader>fs",
"<cmd>Telescope lsp_document_symbols query=searchTerm<CR>",
{ desc = "Search the document for symbols" }
)
vim.keymap.set(
"n",
"<leader>fws",
"<cmd>Telescope lsp_workspace_symbols query=searchTerm<CR>",
{ desc = "Search the workspace for symbols" }
)
end,
}

View File

@ -0,0 +1,3 @@
return {
"sainnhe/everforest",
}

View File

@ -0,0 +1 @@
return { "projekt0n/github-nvim-theme" }

View File

@ -0,0 +1,3 @@
return {
"ellisonleao/gruvbox.nvim",
}

View File

@ -0,0 +1,3 @@
return {
"EdenEast/nightfox.nvim",
}

View File

@ -0,0 +1 @@
return { "shaunsingh/nord.nvim" }

View File

@ -0,0 +1,4 @@
return {
"olimorris/onedarkpro.nvim",
priority = 1000, -- Ensure it loads first
}

View File

@ -0,0 +1 @@
return { "rmehri01/onenord.nvim" }

View File

@ -0,0 +1,4 @@
return {
"rose-pine/neovim",
name = "rose-pine",
}

View File

@ -0,0 +1,3 @@
return {
"junegunn/seoul256.vim",
}

View File

@ -0,0 +1,10 @@
return {
"maxmx03/solarized.nvim",
lazy = false,
priority = 1000,
setup = function()
require("solarized").setup({
transparent = true,
})
end,
}

View File

@ -0,0 +1,3 @@
return {
{ "NTBBloodbath/sweetie.nvim" },
}

View File

@ -0,0 +1,3 @@
return {
"folke/tokyonight.nvim",
}

View File

@ -0,0 +1,3 @@
return {
"Mofiqul/vscode.nvim",
}

View File

@ -0,0 +1,7 @@
return {
"zenbones-theme/zenbones.nvim",
-- Optionally install Lush. Allows for more configuration or extending the colorscheme
-- If you don't want to install lush, make sure to set g:zenbones_compat = 1
-- In Vim, compat mode is turned on as Lush only works in Neovim.
dependencies = { "rktjmp/lush.nvim" },
}

View File

@ -0,0 +1,10 @@
return {
"folke/todo-comments.nvim",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"nvim-lua/plenary.nvim",
},
config = function()
require("todo-comments").setup()
end,
}

View File

@ -0,0 +1,50 @@
return {
"xiyaowong/transparent.nvim",
config = function()
require("transparent").setup({ -- Optional, you don't have to run setup.
groups = { -- table: default groups
"Normal",
"NormalNC",
"Comment",
"Constant",
"Special",
"Identifier",
"Statement",
"PreProc",
"Type",
"Underlined",
"Todo",
"String",
"Function",
"Conditional",
"Repeat",
"Operator",
"Structure",
"LineNr",
"NonText",
"SignColumn",
"CursorLine",
"CursorLineNr",
"StatusLine",
"StatusLineNC",
"EndOfBuffer",
"NormalFloat",
"NvimTreeNormal",
"TelescopeNormal",
"TelescopeSelection",
"TelescopePromptTitle",
"TelescopePromptNormal",
"TelescopePromptBorder",
"TelescopeResultsTitle",
"TelescopeResultsNormal",
"TelescopeResultsBorder",
"TelescopePreviewTitle",
"TelescopePreviewNormal",
"TelescopePreviewBorder",
"TelescopePromptCounter",
},
extra_groups = {}, -- table: additional groups that should be cleared
exclude_groups = {}, -- table: groups you don't want to clear
})
end,
}

View File

@ -0,0 +1,39 @@
return {
"nvim-treesitter/nvim-treesitter",
event = { "BufReadPre", "BufNewFile" },
build = ":TSUpdate",
dependencies = {
"windwp/nvim-ts-autotag",
},
config = function()
local treesitter = require("nvim-treesitter.configs")
treesitter.setup({
highlight = { enable = true },
indent = { enable = true },
autotag = { enable = true },
ensure_installed = {
"json",
"javascript",
"typescript",
"tsx",
"yaml",
"html",
"css",
"prisma",
"markdown",
"markdown_inline",
"graphql",
"bash",
"lua",
"vim",
"dockerfile",
"gitignore",
"c",
"rust",
"elm",
"go",
},
})
end,
}

View File

@ -0,0 +1,37 @@
return {
"folke/trouble.nvim",
opts = {}, -- for default options, refer to the configuration section for custom setup.
cmd = "Trouble",
keys = {
{
"<leader>xx",
"<cmd>Trouble diagnostics toggle<cr>",
desc = "Diagnostics (Trouble)",
},
{
"<leader>xw",
"<cmd>Trouble diagnostics toggle filter.buf=0<cr>",
desc = "Buffer Diagnostics (Trouble)",
},
{
"<leader>xd",
"<cmd>Trouble symbols toggle focus=false<cr>",
desc = "Symbols (Trouble)",
},
{
"<leader>xq",
"<cmd>Trouble lsp toggle focus=false win.position=right<cr>",
desc = "LSP Definitions / references / ... (Trouble)",
},
{
"<leader>xl",
"<cmd>Trouble loclist toggle<cr>",
desc = "Location List (Trouble)",
},
{
"<leader>xt",
"<cmd>Trouble qflist toggle<cr>",
desc = "Quickfix List (Trouble)",
},
},
}

View File

@ -0,0 +1,13 @@
return {
"folke/which-key.nvim",
event = "VeryLazy",
init = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
end,
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
}
}

7
nvim/setup.sh Executable file
View File

@ -0,0 +1,7 @@
#!/bin/bash
if ! [ -d ~/.config/nvim ]; then
mkdir -p ~/.config/nvim
fi
stow -t ~/.config/nvim nvim

12
tmux/setup.sh Executable file
View File

@ -0,0 +1,12 @@
#!/bin/bash
if [ -f "$HOME/.tmux.conf" ]; then
echo "detected existing ~/.tmux.conf, exiting"
echo "please backup, remove, and try again"
exit 1
fi
echo "installing tmux plugin manager"
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
stow -t ~ tmux

20
tmux/tmux/.tmux.conf Normal file
View File

@ -0,0 +1,20 @@
set -g base-index 1 # start indexing windows at 1 instead of 0
set -g detach-on-destroy off # don't exit from tmux when closing a session
set -g escape-time 0 # zero-out escape time delay
set -g history-limit 1000000 # increase history size (from 2,000)
set -g mouse on # enable mouse support
set -g renumber-windows on # renumber all windows when any window is closed
set -g set-clipboard on # use system clipboard
set -g status-interval 3 # update the status bar every 3 seconds
# Persist sessions across machine shutdowns
set -g @plugin 'tmux-plugins/tmux-resurrect'
# SessionX session management
set -g @plugin 'omerxx/tmux-sessionx'
# Tmux Plugin Manager
set -g @plugin 'tmux-plugins/tpm'
run '~/.tmux/plugins/tpm/tpm'

3
wezterm/setup.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
stow -t $HOME wezterm

View File

@ -0,0 +1,16 @@
local wezterm = require("wezterm")
local config = wezterm.config_builder()
config.font = wezterm.font("Monofur Nerd Font Mono")
config.font_size = 20
config.line_height = 1.2
config.enable_tab_bar = false
config.window_background_opacity = 0.7
config.window_decorations = "TITLE"
config.color_scheme = "nord"
return config

16
zsh/setup.sh Executable file
View File

@ -0,0 +1,16 @@
#!/bin/bash
if [ -f "$HOME/.zshrc" ]; then
echo "detected existing .zshrc, exiting."
echo "please backup, remove, and try again"
exit 1
fi
echo "Beginning ohmyzsh installation..."
sleep 1
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
echo "Deleting default ohmyzsh .zshrc"
rm ~/.zshrc
stow . -t zsh

32
zsh/zsh/.zshrc Normal file
View File

@ -0,0 +1,32 @@
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="alanpeabody"
plugins=(git)
source $ZSH/oh-my-zsh.sh
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
alias vi="nvim"
alias vim="nvim"
alias c="clear"
alias lg="lazygit"
alias ldr="lazydocker"
alias ls="eza --icons always --git-repos"
alias cat=bat
alias tml="tmux list-sessions"
alias tma="tmux attach-session -t"
alias tmn="tmux new -s"
export BAT_THEME=ansi
export EDITOR=nvim
export PATH=$PATH:~/bin
export PATH=$PATH:~/go/bin
export PATH=$PATH:~/.local/bin
export PATH=$PATH:~/.cargo/bin
export PATH=$PATH:~/.config/emacs/bin
export PATH=$PATH:/home/linuxbrew/.linuxbrew/bin
export GOFLAGS="-tags=unit,integration,mage"
eval "$(zoxide init zsh)"
eval "$(direnv hook zsh)"