Add all dotfiles

This commit is contained in:
Tanishq Dubey 2022-07-10 15:46:05 -04:00
commit 3506c21b8d
No known key found for this signature in database
GPG Key ID: 0D0F75C0132BFC41
26 changed files with 1940 additions and 0 deletions

21
git/.gitconfig Normal file
View File

@ -0,0 +1,21 @@
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true
[user]
signingkey = 0D0F75C0132BFC41
name = Tanishq Dubey
email = tdubey@clearstreet.io
[core]
editor = nvim
[init]
defaultBranch = develop
[color]
ui = auto
[push]
default = upstream
[commit]
gpgsign = true
[credential]
helper = store

View File

@ -0,0 +1,20 @@
require 'dubey.options'
require 'dubey.keymap'
require 'dubey.theme'
require 'dubey.plugins'
require 'dubey.plugins.whichkey'
require 'dubey.plugins.autopairs'
require 'dubey.plugins.term'
require 'dubey.plugins.notify'
require 'dubey.plugins.bufferline'
require 'dubey.plugins.nvimtree'
require 'dubey.plugins.lualine'
require 'dubey.plugins.complet'
require 'dubey.plugins.treesitter'
require 'dubey.plugins.lsp'
require 'dubey.plugins.telescope'
require 'dubey.plugins.folds'
require 'dubey.plugins.indent'
require 'dubey.plugins.scrollbar'
require 'dubey.plugins.session'
require 'dubey.plugins.session'

View File

@ -0,0 +1,27 @@
local opts = { noremap = true, silent = true }
vim.g.maplocalleader = ","
vim.g.mapleader = ","
local keymap = vim.api.nvim_set_keymap
vim.g.mapleader = ','
vim.g.maplocalleader = ','
-- Escape in terminal Mode
keymap('t', '<M-Esc>', '<C-\\><C-n>', {noremap = true})
-- Vim Tmux Keymaps
keymap('n', '<C-h>', ':TmuxNavigateLeft<CR>', { noremap = true, silent = true })
keymap('n', '<C-j>', ':TmuxNavigateDown<CR>', { noremap = true, silent = true })
keymap('n', '<C-l>', ':TmuxNavigateRight<CR>', { noremap = true, silent = true })
keymap('n', '<C-k>', ':TmuxNavigateUp<CR>', { noremap = true, silent = true })
keymap('n', '<Leader>vp', ':VimuxPromptCommand<CR>', {})
keymap('n', '<Leader>vl', ':VimuxRunLastCommand<CR>', {})
-- LSP Keymaps
keymap('n', 'gd', ':lua vim.lsp.buf.definition()<CR>', { noremap = true, silent = true })
keymap('n', 'gr', ':lua vim.lsp.buf.references()<CR>', { noremap = true, silent = true })
keymap('n', 'gi', ':lua vim.lsp.buf.implementation()<CR>', { noremap = true, silent = true })
keymap('n', 'gD', ':lua vim.lsp.buf.declaration()<CR>', { noremap = true, silent = true })

View File

@ -0,0 +1,35 @@
local options = {
mouse = "a", -- use the mouse
tabstop = 2, -- tabs are two spaces
wrap = false, -- don't wrap lines
cmdheight = 2, -- make bottom command size bigger
number = true, -- show numbers on the side
hlsearch = true, -- highlight search results
shiftwidth = 2, -- Nubmer of spaces to use for each step of (auto)indent
undofile = true, -- create and use a undo file
numberwidth = 4, -- how wide the number column is
swapfile = false, -- I don't like swap files
timeoutlen = 100, -- reduce waiting time
expandtab = true, -- tabs are spaces
smartcase = true, -- case insensitive unless there are caps characters
updatetime = 300, -- millis idle before vim saves state
ignorecase = true, -- case insensitive search
splitbelow = true, -- create splits below current window
splitright = true, -- create splits on right side of current window
sidescrolloff = 8, -- The minimal number of screen columns to keep to the left and to the right of the cursor
cursorline = true, -- show a line at the cursor position (highlight the line)
signcolumn = "yes", -- show a column next to numbers for signs (such as git)
smartindent = true, -- uhhhh...smartly try to indent text?
writebackup = true, -- Make a backup before overwriting a file
termguicolors = true, -- really pretty colors
foldmethod = "syntax", -- use syntax to fold code
fileencoding = "utf-8", -- the best encoding
relativenumber = false, -- who even uses relative numbers
clipboard = "unnamedplus", -- copy into register and system clipboard
completeopt = { "menuone", "noselect" }, -- how to show completion options
background = "dark", -- light backgrounds for light themes
}
for k, v in pairs(options) do
vim.opt[k] = v
end

View File

@ -0,0 +1,31 @@
local present, npairs = pcall(require, "nvim-autopairs")
if not present then
return
end
npairs.setup({
check_ts = true,
ts_config = {
lua = { "string", "source" },
javascript = { "string", "template_string" },
},
disable_filetype = { "TelescopePrompt" },
fast_wrap = {
map = "<M-e>",
chars = { "{", "[", "(", '"', "'", "<" },
pattern = string.gsub([[ [%'%"%)%>%]%)%}%,%>] ]], "%s+", ""),
offset = 0,
end_key = "$",
keys = "qwertyuiopzxcvbnmasdfghjkl",
check_comma = true,
highlight = "PmenuSel",
highlight_grey = "LineNr",
},
})
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
local cmp_present, cmp = pcall(require, "cmp")
if not cmp_present then
return
end
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done({ map_char = { tex = "" } }))

View File

@ -0,0 +1,90 @@
local present, bufferline = pcall(require, "bufferline")
if not present then
return
end
local _, theme = pcall(require, "afreidz.theme.colors")
local colors = theme
local highlights = {
indicator_selected = {
guifg = colors.sky,
guibg = colors.black2,
},
fill = {
guifg = colors.black4,
guibg = colors.black3,
},
background = {
guifg = colors.gray0,
guibg = colors.black3,
},
buffer_selected = {
guifg = colors.white,
guibg = colors.black2,
gui = "italic",
},
buffer_visible = {
guifg = colors.gray0,
guibg = colors.black2,
},
close_button = {
guifg = colors.black4,
guibg = colors.black3,
},
close_button_visible = {
guifg = colors.black4,
guibg = colors.black2,
},
close_button_selected = {
guifg = colors.gray0,
guibg = colors.black2,
},
separator = {
guifg = colors.black3,
guibg = colors.black3,
},
separator_visible = {
guifg = colors.black3,
guibg = colors.black3,
},
separator_selected = {
guifg = colors.black3,
guibg = colors.black3,
},
}
local setup = {
highlights = highlights,
options = {
tab_size = 21,
numbers = "none",
diagnostics = true,
diagnostics_indicator = function(count, level, diagnostics_dict, context)
return "("..count..")"
end,
modified_icon = "",
indicator_icon = "",
max_name_length = 30,
max_prefix_length = 30,
close_icon = '',
buffer_close_icon = '',
left_trunc_marker = '',
right_trunc_marker = '',
show_close_icon = false,
show_buffer_icons = true,
separator_style = "slant",
middle_mouse_command = nil,
show_tab_indicators = true,
persist_buffer_sort = true,
enforce_regular_tabs = true,
close_command = "bdelete! %d",
always_show_bufferline = true,
show_buffer_close_icons = true,
left_mouse_command = "buffer %d",
right_mouse_command = "bdelete! %d",
diagnostics_update_in_insert = false,
offsets = { { filetype = "NvimTree", text = " ", padding = 1, text_align = "left" } },
},
}
bufferline.setup(setup)

View File

@ -0,0 +1,108 @@
local present, cmp = pcall(require, "cmp")
if not present then
return
end
local check_backspace = function()
local col = vim.fn.col(".") - 1
return col == 0 or vim.fn.getline("."):sub(col, col):match("%s")
end
local kind_icons = {
Text = "",
Method = "m",
Function = "",
Constructor = "",
Field = "",
Variable = "",
Class = "",
Interface = "",
Module = "",
Property = "",
Unit = "",
Value = "",
Enum = "",
Keyword = "",
Snippet = "",
Color = "",
File = "",
Reference = "",
Folder = "",
EnumMember = "",
Constant = "",
Struct = "",
Event = "",
Operator = "",
TypeParameter = "",
}
local snp_present, luasnip = pcall(require, "luasnip")
if not snp_present then
return
end
require("luasnip.loaders.from_vscode").lazy_load()
cmp.setup({
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = {
["<CR>"] = cmp.mapping.confirm({ select = true }),
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expandable() then
luasnip.expand()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif check_backspace() then
fallback()
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { "i", "s" }),
},
formatting = {
fields = { "kind", "abbr", "menu" },
format = function(entry, vim_item)
vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
vim_item.menu = ({
nvim_lsp = "[LSP]",
luasnip = "[Snippet]",
buffer = "[Buffer]",
path = "[Path]",
})[entry.source.name]
return vim_item
end,
},
sources = {
{ name = "nvim_lsp" },
{ name = "buffer" },
{ name = "path" },
},
confirm_opts = {
behavior = cmp.ConfirmBehavior.Replace,
select = false,
},
window = {
documentation = {
border = { "", "", "", "", "", "", "", "" },
},
},
experimental = {
ghost_text = false,
native_menu = false,
},
})

View File

@ -0,0 +1,24 @@
local _fold, fold = pcall(require, "pretty-fold")
if not _fold then
return
end
local preview = require("pretty-fold.preview")
fold.setup({
keep_indentation = false,
fill_char = "",
sections = {
left = {
"",
function()
return string.rep("*", vim.v.foldlevel)
end,
" ━┫",
"content",
"",
},
right = { "", "number_of_folded_lines", " ┣━━" },
},
})

View File

@ -0,0 +1,11 @@
local _indent, indent = pcall(require, "indent_blankline")
if not _indent then
return
end
indent.setup({
char = " ",
context_char = "",
show_current_context = true,
buftype_exclude = { "terminal" },
})

View File

@ -0,0 +1,133 @@
local fn = vim.fn
local dir = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
if fn.empty(fn.glob(dir)) > 0 then
bootstrap = fn.system({
"git",
"clone",
"--depth",
"1",
"https://github.com/wbthomason/packer.nvim",
dir,
})
print("Installing packer close and reopen Neovim...")
vim.cmd([[packadd packer.nvim]])
end
vim.cmd([[
augroup packer_user_config
autocmd!
autocmd BufWritePost plugins.lua source <afile> | PackerSync
augroup end
]])
local present, packer = pcall(require, "packer")
if not present then
return
end
packer.init({
display = {
open_fn = function()
return require("packer.util").float({ border = "rounded" })
end,
},
})
return packer.startup(function(use)
use("nvim-lua/plenary.nvim")
use("folke/which-key.nvim") -- Useful popup dialog when doing things
use("lambdalisue/suda.vim") -- Repoen files as sudo why not
use("rcarriga/nvim-notify") -- Send notifications like a regular program
use("windwp/nvim-autopairs") -- Good pairs for brackets and stuff
use("wbthomason/packer.nvim") -- Packer can manage itself
use{"akinsho/toggleterm.nvim", branch = 'main'} -- Terminal within vim
use("lukas-reineke/indent-blankline.nvim") -- Show lines on indents for aligning
use{"akinsho/bufferline.nvim", branch = 'main'} -- Snazzy buffer line (aka the tab bar at the top)
use("kyazdani42/nvim-tree.lua") -- Tree explorer
use("nvim-lualine/lualine.nvim") -- Status line (bottom bar)
use("kyazdani42/nvim-web-devicons") -- Better icons for status line, tab bar, and tree explorer
use("hrsh7th/nvim-cmp") -- Completion engine
use("hrsh7th/cmp-buffer") -- Current buffers as a completion source
use("hrsh7th/cmp-path") -- Machine paths as a completion source
use("hrsh7th/cmp-cmdline") -- Vim command mode completions
use("hrsh7th/cmp-nvim-lsp") -- The big daddy, use the LSP
use("L3MON4D3/LuaSnip") -- Snippet engine for completion
use("rafamadriz/friendly-snippets") -- Lots of useful snippets
use({
"nvim-treesitter/nvim-treesitter", -- The best syntax highlighting and context plugin
run = ":TSUpdate",
})
use("onsails/lspkind-nvim") -- Pretty pictures when doing completions
use("neovim/nvim-lspconfig") -- THE configurations for LSPs
-- note: https://github.com/neovim/nvim-lspconfig#quickstart
-- servers here: https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
use("williamboman/nvim-lsp-installer") -- Installs LSP servers for us
use("jose-elias-alvarez/null-ls.nvim") -- Neovim as a LSP (I don't really know what this does, but lots of people have it)
use("ray-x/lsp_signature.nvim") -- Signature hints as you type
use("kosayoda/nvim-lightbulb") -- VSCode like lightbulb
use("stevearc/aerial.nvim") -- Code structure window
use("nvim-telescope/telescope.nvim") -- Find files fast
use("nvim-telescope/telescope-ui-select.nvim") -- Make the telescope ui Better
use("nvim-telescope/telescope-media-files.nvim") -- Preview media (like images) in telescope
use({ "nvim-telescope/telescope-fzf-native.nvim", run = "make" }) -- Use builtin fzf to make searching even better
use({ "AckslD/nvim-neoclip.lua", requires = { "nvim-telescope/telescope.nvim" } }) -- Search the clipboard
use("airblade/vim-gitgutter") -- Git symbols in the side
use({
"numToStr/Comment.nvim", -- Better commenting
config = function()
require("Comment").setup()
end,
})
use({
"folke/zen-mode.nvim", -- Zen mode (hide everything)
config = function()
require("zen-mode").setup({})
end,
})
use({
"folke/twilight.nvim", -- dim parts of code that are out of focus
config = function()
require("twilight").setup({})
end,
})
use("anuvyklack/pretty-fold.nvim") -- Nicer folds
use("goolord/alpha-nvim") -- Cool start page
use({
"Shatur/neovim-session-manager", -- Save a session for later
requires = { "nvim-telescope/telescope.nvim" },
})
use("petertriho/nvim-scrollbar") -- Put a scrollbar on the side
use({
"catppuccin/nvim", -- The theme I like
as = "catppuccin"
})
use("christoomey/vim-tmux-navigator") -- Use TMUX and Vim as one
use("preservim/vimux") -- Send commands from vim to TMUX
use("lifepillar/vim-gruvbox8") -- Another theme I like
use("github/copilot.vim") -- Something that will obslete my job one day
if bootstrap then
require("packer").sync()
end
end)

View File

@ -0,0 +1,110 @@
local _kind, kind = pcall(require, "lspkind")
if _kind then
kind.init()
end
local _lsp, lspconfig = pcall(require, "lspconfig")
if not _lsp then
return
end
local _null, null_ls = pcall(require, "null-ls")
if not _null then
return
end
-- Auto-installed LSPs here
local _lspinstaller, lspinstaller = pcall(require, "nvim-lsp-installer")
if not _lspinstaller then
return
end
lspinstaller.on_server_ready(function(server)
local opts = {}
server:setup(opts)
end)
-- Individual LSP Configs here
--
-- End Individual LSP configs
local _aerial, aerial = pcall(require, "aerial")
local _bulb, bulb = pcall(require, "nvim-lightbulb")
vim.cmd [[autocmd CursorHold,CursorHoldI * lua require('nvim-lightbulb').update_lightbulb()]]
if _aerial then
aerial.setup({
min_width = 30,
show_guides = true,
default_direction = "right",
open_automatic = true,
close_behavior = 'global',
placement_editor_edge = true,
backends = { "lsp", "treesitter" },
})
end
local signs = {
{ name = "DiagnosticSignError", text = "" },
{ name = "DiagnosticSignWarn", text = "" },
{ name = "DiagnosticSignHint", text = "" },
{ name = "DiagnosticSignInfo", text = "" },
}
local config = {
virtual_text = true,
signs = {
active = signs,
},
update_in_insert = true,
underline = true,
severity_sort = true,
float = {
focusable = false,
style = "minimal",
border = "rounded",
source = "always",
header = "",
prefix = "",
},
}
for _, sign in ipairs(signs) do
vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" })
end
vim.diagnostic.config(config)
local on_attach = function(client, bufnr)
if client.resolved_capabilities.document_highlight then
vim.api.nvim_exec(
[[
augroup lsp_document_highlight
autocmd! * <buffer>
autocmd CursorHold <buffer> lua vim.lsp.buf.document_highlight()
autocmd CursorMoved <buffer> lua vim.lsp.buf.clear_references()
augroup END
]],
false
)
vim.cmd([[
autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, { focus = false, scope = "cursor", header = "Diagnostics:" })
]])
end
if _bulb then
vim.cmd([[ autocmd CursorHold,CursorHoldI * lua require'nvim-lightbulb'.update_lightbulb() ]])
end
if _aerial then
aerial.on_attach(client, bufnr)
end
end
null_ls.setup({
on_attach = on_attach,
})

View File

@ -0,0 +1,71 @@
local present, lualine = pcall(require, "lualine")
if not present then
return
end
local mode = {
"mode",
fmt = function(str)
if str == "NORMAL" then
return " normal"
end
if str == "INSERT" then
return " insert"
end
if str == "COMMAND" then
return " command"
end
if str == "VISUAL" then
return "濾 visual"
end
if str == "REPLACE" then
return "﯒ replace"
end
return str
end,
}
local location = {
"location",
padding = 0,
}
local filename = {
"filename",
path = 1,
file_status = false,
}
local branch = {
"branch",
padding = 0,
}
lualine.setup({
options = {
icons_enabled = true,
component_separators = { left = "", right = "" },
section_separators = { left = "", right = "" },
disabled_filetypes = { "alpha", "dashboard", "NvimTree", "Outline" },
always_divide_middle = true,
},
sections = {
lualine_a = { mode },
lualine_b = { location },
lualine_c = {},
lualine_x = {},
lualine_y = { branch },
lualine_z = { filename },
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = {},
lualine_x = {},
lualine_y = { branch },
lualine_z = { filename },
},
tabline = {},
extensions = {},
})

View File

@ -0,0 +1,12 @@
local present, notify = pcall(require, "notify")
if not present then
return
end
notify.setup({
minimum_width = 40,
stages = "fade_in_slide_out",
background_colour = "NormalFloat",
})
vim.notify = notify

View File

@ -0,0 +1,106 @@
local icons = {
git = {
staged = "",
renamed = "",
deleted = "",
ignored = "",
unstaged = "",
unmerged = "",
untracked = "",
},
folder = {
open = "",
empty = "",
default = "",
symlink = "",
empty_open = "",
symlink_open = "",
},
}
local g = vim.g
local present, tree = pcall(require, "nvim-tree")
if not present then
return
end
local cb = require("nvim-tree.config").nvim_tree_callback
local mappings = {
{ key = "q", cb = cb("close") },
{ key = "d", cb = cb("remove") },
{ key = "R", cb = cb("rename") },
{ key = "c", cb = cb("create") },
{ key = "r", cb = cb("refresh") },
{ key = ".", cb = cb("dir_up") },
{ key = "y", cb = cb("copy_path") },
{ key = "yn", cb = cb("copy_name") },
{ key = "<bs>", cb = cb("close_node") },
{ key = "h", cb = cb("toggle_ignored") },
{ key = "h", cb = cb("toggle_dotfiles") },
{ key = { "<RightMouse>" }, cb = cb("cd") },
{ key = "yy", cb = cb("copy_absolute_path") },
{ key = { "<cr>", "<2-LeftMouse>" }, cb = cb("edit") },
}
tree.setup({
hijack_directories = {
enable = true,
auto_open = true,
},
renderer = {
highlight_opened_files = "all",
indent_markers = {
enable = true
},
icons = {
show = {
folder_arrow = true,
folder = true,
file = true,
git = true,
},
},
},
actions = {
open_file = {
resize_window = true,
window_picker = {
enable = true,
},
},
},
open_on_setup = true,
update_cwd = true,
auto_reload_on_write = true,
disable_netrw = true,
hijack_cursor = true,
diagnostics = {
enable = false,
},
git = {
enable = true,
ignore = false,
},
update_focused_file = {
enable = false,
update_cwd = false,
},
view = {
hide_root_folder = false,
mappings = {
custom_only = true,
list = mappings,
},
},
})
vim.api.nvim_create_autocmd("BufEnter", {
nested = true,
callback = function()
if #vim.api.nvim_list_wins() == 1 and vim.api.nvim_buf_get_name(0):match("NvimTree_") ~= nil then
vim.cmd "quit"
end
end
})

View File

@ -0,0 +1,20 @@
local _scrollbar, scrollbar = pcall(require, "scrollbar")
if not _scrollbar then
return
end
local handle = { text = " ", color = "white" }
local marks = {
Error = { color = "red" },
Info = { color = "blue" },
Hint = { color = "green" },
Warn = { color = "yellow" },
Misc = { color = "purple" },
Search = { color = "orange" },
}
scrollbar.setup({
marks = marks,
handle = handle,
excluded_filetypes = { "nvimtree", "NvimTree" },
})

View File

@ -0,0 +1,11 @@
local _ssm, ssm = pcall(require, "session_manager")
if not _ssm then
return
end
ssm.setup({
autoload_mode = "Disabled",
autosave_last_session = true,
autosave_ignore_not_normal = true,
autosave_only_in_session = false,
})

View File

@ -0,0 +1,80 @@
local _alpha, alpha = pcall(require, "alpha")
if not _alpha then
return
end
local header = {
type = "text",
val = {
[[ ]],
[[ ⠀⠀⠀⠀⠀⠀⠀⠀⡀⡢⢂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢄⢮⠀⠀⠀⠀⠀⠀]],
[[ ⠀⠀⠀⠀⠀⠀⡠⡂⣊⠢⡑⡐⠄⠀⠀⠀⠀⠀⠀⢀⢔⡕⣕⢗⠀⠀⠀⠀⠀⠀]],
[[ ⠀⠀⠀⠀⠀⠢⠨⢢⠢⡃⡪⡐⡑⢄⠀⠀⠀⠀⢰⢱⡣⣫⢪⢮⠀⠀⠀⠀⠀⠀]],
[[ ⠀⠀⠀⠀⠀⡑⠅⢅⠣⡊⡢⡊⢌⠢⡂⡀⠀⠀⢐⢧⢳⢕⢧⢳⠀⠀⠀⠀⠀⠀]],
[[ ⠀⠀⠀⠀⠀⠪⡨⠢⠡⡑⠰⡘⡌⡪⡂⡆⠄⠀⢐⡕⣗⢕⡗⡵⠀⠀⠀⠀⠀⠀]],
[[ ⠀⠀⠀⠀⠀⠕⢌⠪⡨⢌⠀⠘⡰⡑⡌⡪⡊⣂⠀⡯⣪⡳⣹⡪⠀⠀⠀⠀⠀⠀]],
[[ ⠀⠀⠀⠀⠀⠕⡅⠕⢌⠢⠀⠀⠀⢕⢅⢇⢕⢒⢬⢺⢕⢽⢜⢮⠀⠀⠀⠀⠀⠀]],
[[ ⠀⠀⠀⠀⠀⢕⢘⠜⢌⠪⠀⠀⠀⠀⠪⡢⡣⡣⡣⡳⣹⢕⢯⡳⠀⠀⠀⠀⠀⠀]],
[[ ⠀⠀⠀⠀⠀⢕⢅⢣⢑⠕⠀⠀⠀⠀⠀⠘⢜⢌⢎⢞⢎⢯⡳⡝⠀⠀⠀⠀⠀⠀]],
[[ ⠀⠀⠀⠀⠀⢕⢌⠆⠁⠀⠀⠀⠀⠀⠀⠀⠈⢎⢎⣗⢽⠑⠉⠀⠀⠀⠀⠀⠀⠀]],
[[ ⠀⠀⠀⠀⠀⠕⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠣⠓⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
[[ ]],
[[ neovim]],
},
opts = { position = "center", hl = "String" },
}
local function button(sc, txt, keybind, keybind_opts)
local sc_ = sc:gsub("%s", ""):gsub("SPC", "<leader>")
local opts = {
cursor = 5,
width = 50,
shortcut = sc,
position = "center",
hl_shortcut = "Keyword",
align_shortcut = "right",
}
if keybind then
keybind_opts = vim.F.if_nil(keybind_opts, { noremap = true, silent = true, nowait = true })
opts.keymap = { "n", sc_, keybind, keybind_opts }
end
local function on_press()
local key = vim.api.nvim_replace_termcodes(sc_ .. "<Ignore>", true, false, true)
vim.api.nvim_feedkeys(key, "normal", false)
end
return {
val = txt,
opts = opts,
type = "button",
on_press = on_press,
}
end
local buttons = {
type = "group",
val = {
button("s", " search sessions", "<cmd>SessionManager load_session<cr>"),
button("f", " search files", "<cmd>Telescope find_files<cr>"),
button("n", " new file", "<cmd>ene <cr>"),
},
opts = { spacing = 0 },
}
local section = {
header = header,
buttons = buttons,
}
local opts = {
layout = {
{ type = "padding", val = 2 },
section.header,
{ type = "padding", val = 2 },
section.buttons,
},
opts = { margin = 5 },
}
alpha.setup(opts)

View File

@ -0,0 +1,98 @@
local _telescope, telescope = pcall(require, "telescope")
local _clip, clip = pcall(require, "neoclip")
if not _telescope then
return
end
local actions = require("telescope.actions")
telescope.setup({
defaults = {
prompt_prefix = "",
selection_caret = " ",
entry_prefix = " ",
selection_strategy = "reset",
sorting_strategy = "ascending",
layout_strategy = "horizontal",
layout_config = {
horizontal = {
prompt_position = "top",
preview_width = 0.55,
results_width = 0.8,
},
vertical = {
mirror = false,
},
width = 0.87,
height = 0.80,
preview_cutoff = 120,
},
file_ignore_patterns = { "node_modules" },
path_display = { "smart" },
mappings = {
i = {
["<C-n>"] = actions.cycle_history_next,
["<C-p>"] = actions.cycle_history_prev,
["<C-j>"] = actions.move_selection_next,
["<C-k>"] = actions.move_selection_previous,
["<C-c>"] = actions.close,
["<Down>"] = actions.move_selection_next,
["<Up>"] = actions.move_selection_previous,
["<CR>"] = actions.select_default,
["<C-x>"] = actions.select_horizontal,
["<C-v>"] = actions.select_vertical,
["<C-t>"] = actions.select_tab,
["<C-u>"] = actions.preview_scrolling_up,
["<C-d>"] = actions.preview_scrolling_down,
["<PageUp>"] = actions.results_scrolling_up,
["<PageDown>"] = actions.results_scrolling_down,
["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
["<C-l>"] = actions.complete_tag,
["<C-_>"] = actions.which_key,
},
n = {
["<esc>"] = actions.close,
["<CR>"] = actions.select_default,
["<C-x>"] = actions.select_horizontal,
["<C-v>"] = actions.select_vertical,
["<C-t>"] = actions.select_tab,
["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
["j"] = actions.move_selection_next,
["k"] = actions.move_selection_previous,
["H"] = actions.move_to_top,
["M"] = actions.move_to_middle,
["L"] = actions.move_to_bottom,
["<Down>"] = actions.move_selection_next,
["<Up>"] = actions.move_selection_previous,
["gg"] = actions.move_to_top,
["G"] = actions.move_to_bottom,
["<C-u>"] = actions.preview_scrolling_up,
["<C-d>"] = actions.preview_scrolling_down,
["<PageUp>"] = actions.results_scrolling_up,
["<PageDown>"] = actions.results_scrolling_down,
["?"] = actions.which_key,
},
},
},
pickers = {
find_files = { preview = true },
},
extensions = {
["ui-select"] = {
require("telescope.themes").get_dropdown({
previewer = false,
layout_strategy = "horizontal",
}),
},
},
})
telescope.load_extension("fzf")
telescope.load_extension("ui-select")
telescope.load_extension("media_files")
if _clip then telescope.load_extension("neoclip") end

View File

@ -0,0 +1,15 @@
local present, term = pcall(require, "toggleterm")
if not present then
return
end
term.setup({
shade_terminals = false,
float_opts = {
winblend = 0,
highlights = {
border = "FloatBorder",
background = "NormalFloat",
},
},
})

View File

@ -0,0 +1,20 @@
local present, configs = pcall(require, "nvim-treesitter.configs")
if not present then
return
end
configs.setup({
ensure_installed = {"python", "go"},
sync_install = false,
autopairs = { enable = true },
highlight = {
enable = true,
disable = { "" },
additional_vim_regex_highlighting = true,
},
indent = { enable = true, disable = { "yaml" } },
context_commentstring = {
enable = true,
enable_autocmd = false,
},
})

View File

@ -0,0 +1,133 @@
local present, which_key = pcall(require, "which-key")
if not present then
return
end
local setup = {
plugins = {
marks = true,
registers = true,
spelling = {
enabled = true,
suggestions = 20,
},
presets = {
operators = true,
motions = true,
text_objects = true,
windows = true,
nav = true,
z = true,
g = true,
},
},
icons = {
breadcrumb = "»",
separator = "",
group = "+",
},
popup_mappings = {
scroll_down = "<c-d>",
scroll_up = "<c-u>",
},
window = {
border = "rounded",
position = "bottom",
margin = { 1, 0, 1, 0 },
padding = { 2, 2, 2, 2 },
winblend = 0,
},
layout = {
height = { min = 4, max = 25 },
width = { min = 20, max = 50 },
spacing = 3,
align = "left",
},
ignore_missing = true,
hidden = { "<silent>", "<cmd>", "<Cmd>", "<CR>", "call", "lua", "^:", "^ " },
show_help = true,
triggers = "auto",
triggers_blacklist = {
i = { "j", "k" },
v = { "j", "k" },
},
}
local leader_opts = {
mode = "n",
prefix = "<leader>",
buffer = nil,
silent = true,
noremap = true,
nowait = true,
}
local leader_mappings = {
w = {
"<esc>:w!<bar>:lua vim.notify(vim.fn.expand('%'), 'success', { title = 'Buffer Saved' })<cr>",
"Save Buffer",
},
W = {
"<esc>:SudaWrite<bar>:lua vim.notify(vim.fn.expand('%'), 'success', { title = 'Buffer saved with sudo' })<cr>",
"Sudo Save Buffer",
},
x = { "<cmd>:q<cr>", "Quit Buffer" },
z = { "<cmd>ZenMode<cr>", "Zen Mode" },
q = { "<cmd>conf qa<cr>", "Quit Nvim" },
c = { "<cmd>Bdelete!<cr>", "Close Buffer" },
h = { "<cmd>nohlsearch<cr>", "Clear Highlight" },
e = { "<cmd>NvimTreeToggle<cr>", "File Explorer" },
s = { "<cmd>SessionManager save_current_session<cr>", "Save Session" },
f = {
name = "Find",
y = { "<cmd>Telescope neoclip<cr>", "Yanks" },
h = { "<cmd>Telescope help_tags<cr>", "Help" },
k = { "<cmd>Telescope keymaps<cr>", "Keymaps" },
t = { "<cmd>Telescope live_grep<cr>", "Text" },
b = { "<cmd>Telescope buffers<cr>", "Buffers" },
f = { "<cmd>Telescope find_files<cr>", "Files" },
o = { "<cmd>Telescope oldfiles<cr>", "Recents" },
c = { "<cmd>Telescope commands<cr>", "Commands" },
m = { "<cmd>Telescope man_pages<cr>", "Manuals" },
r = { "<cmd>Telescope registers<cr>", "Registers" },
s = { "<cmd>SessionManager load_session<cr>", "Sessions" },
},
p = {
name = "Packer",
s = { "<cmd>PackerSync<cr>", "Sync" },
S = { "<cmd>PackerStatus<cr>", "Status" },
u = { "<cmd>PackerUpdate<cr>", "Update" },
c = { "<cmd>PackerCompile<cr>", "Compile" },
i = { "<cmd>PackerInstall<cr>", "Install" },
},
g = {
name = "Git",
s = { "<cmd>Telescope git_status<cr>", "File Git Status" },
c = { "<cmd>Telescope git_commits<cr>", "Checkout commit" },
b = { "<cmd>Telescope git_branches<cr>", "Checkout branch" },
},
l = {
name = "LSP",
I = { "<cmd>LspInfo<cr>", "Info" },
i = { "<cmd>LspInstall<cr>", "Install" },
a = { "<cmd>AerialToggle<cr>", "Aerial" },
f = { "<cmd>lua vim.lsp.buf.formatting()<cr>", "Format" },
w = { "<cmd>Telescope diagnostics<cr>", "Workspace Diagnostics" },
d = { "<cmd>Telescope diagnostics bufnr=0<cr>", "Document Diagnostics" },
},
t = {
name = "Terminal",
f = { "<cmd>ToggleTerm direction=float<cr>", "Float" },
v = { "<cmd>ToggleTerm size=80 direction=vertical<cr>", "Vertical" },
h = { "<cmd>ToggleTerm size=10 direction=horizontal<cr>", "Horizontal" },
},
v = {
name = "ViMux",
r = { "<cmd>VimuxPromptCommand<CR>", "Run Command" },
l = { "<cmd>VimuxRunLastCommand<cr>", "Run Last" },
},
}
which_key.setup(setup)
which_key.register(leader_mappings, leader_opts)

View File

@ -0,0 +1 @@
vim.cmd[[colorscheme gruvbox8]]

View File

@ -0,0 +1,322 @@
-- Automatically generated packer.nvim plugin loader code
if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
return
end
vim.api.nvim_command('packadd packer.nvim')
local no_errors, error_msg = pcall(function()
local time
local profile_info
local should_profile = false
if should_profile then
local hrtime = vim.loop.hrtime
profile_info = {}
time = function(chunk, start)
if start then
profile_info[chunk] = hrtime()
else
profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
end
end
else
time = function(chunk, start) end
end
local function save_profiles(threshold)
local sorted_times = {}
for chunk_name, time_taken in pairs(profile_info) do
sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
end
table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
local results = {}
for i, elem in ipairs(sorted_times) do
if not threshold or threshold and elem[2] > threshold then
results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
end
end
_G._packer = _G._packer or {}
_G._packer.profile_output = results
end
time([[Luarocks path setup]], true)
local package_path_str = "/home/tdubey/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/tdubey/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/tdubey/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/tdubey/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua"
local install_cpath_pattern = "/home/tdubey/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so"
if not string.find(package.path, package_path_str, 1, true) then
package.path = package.path .. ';' .. package_path_str
end
if not string.find(package.cpath, install_cpath_pattern, 1, true) then
package.cpath = package.cpath .. ';' .. install_cpath_pattern
end
time([[Luarocks path setup]], false)
time([[try_loadstring definition]], true)
local function try_loadstring(s, component, name)
local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
if not success then
vim.schedule(function()
vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
end)
end
return result
end
time([[try_loadstring definition]], false)
time([[Defining packer_plugins]], true)
_G.packer_plugins = {
["Comment.nvim"] = {
config = { "\27LJ\2\n5\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\fComment\frequire\0" },
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/Comment.nvim",
url = "https://github.com/numToStr/Comment.nvim"
},
LuaSnip = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/LuaSnip",
url = "https://github.com/L3MON4D3/LuaSnip"
},
["aerial.nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/aerial.nvim",
url = "https://github.com/stevearc/aerial.nvim"
},
["alpha-nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/alpha-nvim",
url = "https://github.com/goolord/alpha-nvim"
},
["bufferline.nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/bufferline.nvim",
url = "https://github.com/akinsho/bufferline.nvim"
},
catppuccin = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/catppuccin",
url = "https://github.com/catppuccin/nvim"
},
["cmp-buffer"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/cmp-buffer",
url = "https://github.com/hrsh7th/cmp-buffer"
},
["cmp-cmdline"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/cmp-cmdline",
url = "https://github.com/hrsh7th/cmp-cmdline"
},
["cmp-nvim-lsp"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp",
url = "https://github.com/hrsh7th/cmp-nvim-lsp"
},
["cmp-path"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/cmp-path",
url = "https://github.com/hrsh7th/cmp-path"
},
["copilot.vim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/copilot.vim",
url = "https://github.com/github/copilot.vim"
},
["friendly-snippets"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/friendly-snippets",
url = "https://github.com/rafamadriz/friendly-snippets"
},
["indent-blankline.nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim",
url = "https://github.com/lukas-reineke/indent-blankline.nvim"
},
["lsp_signature.nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/lsp_signature.nvim",
url = "https://github.com/ray-x/lsp_signature.nvim"
},
["lspkind-nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/lspkind-nvim",
url = "https://github.com/onsails/lspkind-nvim"
},
["lualine.nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/lualine.nvim",
url = "https://github.com/nvim-lualine/lualine.nvim"
},
["neovim-session-manager"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/neovim-session-manager",
url = "https://github.com/Shatur/neovim-session-manager"
},
["null-ls.nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/null-ls.nvim",
url = "https://github.com/jose-elias-alvarez/null-ls.nvim"
},
["nvim-autopairs"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/nvim-autopairs",
url = "https://github.com/windwp/nvim-autopairs"
},
["nvim-cmp"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/nvim-cmp",
url = "https://github.com/hrsh7th/nvim-cmp"
},
["nvim-lightbulb"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/nvim-lightbulb",
url = "https://github.com/kosayoda/nvim-lightbulb"
},
["nvim-lsp-installer"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/nvim-lsp-installer",
url = "https://github.com/williamboman/nvim-lsp-installer"
},
["nvim-lspconfig"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/nvim-lspconfig",
url = "https://github.com/neovim/nvim-lspconfig"
},
["nvim-neoclip.lua"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/nvim-neoclip.lua",
url = "https://github.com/AckslD/nvim-neoclip.lua"
},
["nvim-notify"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/nvim-notify",
url = "https://github.com/rcarriga/nvim-notify"
},
["nvim-scrollbar"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/nvim-scrollbar",
url = "https://github.com/petertriho/nvim-scrollbar"
},
["nvim-tree.lua"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/nvim-tree.lua",
url = "https://github.com/kyazdani42/nvim-tree.lua"
},
["nvim-treesitter"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
url = "https://github.com/nvim-treesitter/nvim-treesitter"
},
["nvim-web-devicons"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/nvim-web-devicons",
url = "https://github.com/kyazdani42/nvim-web-devicons"
},
["packer.nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/packer.nvim",
url = "https://github.com/wbthomason/packer.nvim"
},
["plenary.nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/plenary.nvim",
url = "https://github.com/nvim-lua/plenary.nvim"
},
["pretty-fold.nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/pretty-fold.nvim",
url = "https://github.com/anuvyklack/pretty-fold.nvim"
},
["suda.vim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/suda.vim",
url = "https://github.com/lambdalisue/suda.vim"
},
["telescope-fzf-native.nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/telescope-fzf-native.nvim",
url = "https://github.com/nvim-telescope/telescope-fzf-native.nvim"
},
["telescope-media-files.nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/telescope-media-files.nvim",
url = "https://github.com/nvim-telescope/telescope-media-files.nvim"
},
["telescope-ui-select.nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/telescope-ui-select.nvim",
url = "https://github.com/nvim-telescope/telescope-ui-select.nvim"
},
["telescope.nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/telescope.nvim",
url = "https://github.com/nvim-telescope/telescope.nvim"
},
["toggleterm.nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/toggleterm.nvim",
url = "https://github.com/akinsho/toggleterm.nvim"
},
["twilight.nvim"] = {
config = { "\27LJ\2\n:\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\rtwilight\frequire\0" },
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/twilight.nvim",
url = "https://github.com/folke/twilight.nvim"
},
["vim-gitgutter"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/vim-gitgutter",
url = "https://github.com/airblade/vim-gitgutter"
},
["vim-gruvbox8"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/vim-gruvbox8",
url = "https://github.com/lifepillar/vim-gruvbox8"
},
["vim-tmux-navigator"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/vim-tmux-navigator",
url = "https://github.com/christoomey/vim-tmux-navigator"
},
vimux = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/vimux",
url = "https://github.com/preservim/vimux"
},
["which-key.nvim"] = {
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/which-key.nvim",
url = "https://github.com/folke/which-key.nvim"
},
["zen-mode.nvim"] = {
config = { "\27LJ\2\n:\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\rzen-mode\frequire\0" },
loaded = true,
path = "/home/tdubey/.local/share/nvim/site/pack/packer/start/zen-mode.nvim",
url = "https://github.com/folke/zen-mode.nvim"
}
}
time([[Defining packer_plugins]], false)
-- Config for: zen-mode.nvim
time([[Config for zen-mode.nvim]], true)
try_loadstring("\27LJ\2\n:\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\rzen-mode\frequire\0", "config", "zen-mode.nvim")
time([[Config for zen-mode.nvim]], false)
-- Config for: twilight.nvim
time([[Config for twilight.nvim]], true)
try_loadstring("\27LJ\2\n:\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\rtwilight\frequire\0", "config", "twilight.nvim")
time([[Config for twilight.nvim]], false)
-- Config for: Comment.nvim
time([[Config for Comment.nvim]], true)
try_loadstring("\27LJ\2\n5\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\fComment\frequire\0", "config", "Comment.nvim")
time([[Config for Comment.nvim]], false)
if should_profile then save_profiles() end
end)
if not no_errors then
error_msg = error_msg:gsub('"', '\\"')
vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
end

193
pl10k/.p10k.zsh Normal file
View File

@ -0,0 +1,193 @@
# Generated by Powerlevel10k configuration wizard on 2022-02-23 at 19:43 UTC.
# Based on romkatv/powerlevel10k/config/p10k-pure.zsh, checksum 13301.
# Wizard options: nerdfont-complete + powerline, small icons, pure, rprompt, 24h time,
# 1 line, compact, transient_prompt, instant_prompt=verbose.
# Type `p10k configure` to generate another config.
#
# Config file for Powerlevel10k with the style of Pure (https://github.com/sindresorhus/pure).
#
# Differences from Pure:
#
# - Git:
# - `@c4d3ec2c` instead of something like `v1.4.0~11` when in detached HEAD state.
# - No automatic `git fetch` (the same as in Pure with `PURE_GIT_PULL=0`).
#
# Apart from the differences listed above, the replication of Pure prompt is exact. This includes
# even the questionable parts. For example, just like in Pure, there is no indication of Git status
# being stale; prompt symbol is the same in command, visual and overwrite vi modes; when prompt
# doesn't fit on one line, it wraps around with no attempt to shorten it.
#
# If you like the general style of Pure but not particularly attached to all its quirks, type
# `p10k configure` and pick "Lean" style. This will give you slick minimalist prompt while taking
# advantage of Powerlevel10k features that aren't present in Pure.
# Temporarily change options.
'builtin' 'local' '-a' 'p10k_config_opts'
[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases')
[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob')
[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')
'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
() {
emulate -L zsh -o extended_glob
# Unset all configuration options.
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
# Zsh >= 5.1 is required.
autoload -Uz is-at-least && is-at-least 5.1 || return
# Prompt colors.
local grey='242'
local red='1'
local yellow='3'
local blue='4'
local magenta='5'
local cyan='6'
local white='7'
# Left prompt segments.
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
# context # user@host
dir # current directory
vcs # git status
# command_execution_time # previous command duration
# virtualenv # python virtual environment
prompt_char # prompt symbol
)
# Right prompt segments.
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
command_execution_time # previous command duration
virtualenv # python virtual environment
context # user@host
time # current time
)
# Basic style options that define the overall prompt look.
typeset -g POWERLEVEL9K_BACKGROUND= # transparent background
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE= # no surrounding whitespace
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' ' # separate segments with a space
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR= # no end-of-line symbol
typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION= # no segment icons
# Add an empty line before each prompt except the first. This doesn't emulate the bug
# in Pure that makes prompt drift down whenever you use the Alt-C binding from fzf or similar.
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false
# Magenta prompt symbol if the last command succeeded.
typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS}_FOREGROUND=$magenta
# Red prompt symbol if the last command failed.
typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS}_FOREGROUND=$red
# Default prompt symbol.
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION=''
# Prompt symbol in command vi mode.
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION=''
# Prompt symbol in visual vi mode is the same as in command mode.
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION=''
# Prompt symbol in overwrite vi mode is the same as in command mode.
typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=false
# Grey Python Virtual Environment.
typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=$grey
# Don't show Python version.
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
# Blue current directory.
typeset -g POWERLEVEL9K_DIR_FOREGROUND=$blue
# Context format when root: user@host. The first part white, the rest grey.
typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE="%F{$white}%n%f%F{$grey}@%m%f"
# Context format when not root: user@host. The whole thing grey.
typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE="%F{$grey}%n@%m%f"
# Don't show context unless root or in SSH.
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_CONTENT_EXPANSION=
# Show previous command duration only if it's >= 5s.
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=5
# Don't show fractional seconds. Thus, 7s rather than 7.3s.
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
# Duration format: 1d 2h 3m 4s.
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
# Yellow previous command duration.
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=$yellow
# Grey Git prompt. This makes stale prompts indistinguishable from up-to-date ones.
typeset -g POWERLEVEL9K_VCS_FOREGROUND=$grey
# Disable async loading indicator to make directories that aren't Git repositories
# indistinguishable from large Git repositories without known state.
typeset -g POWERLEVEL9K_VCS_LOADING_TEXT=
# Don't wait for Git status even for a millisecond, so that prompt always updates
# asynchronously when Git state changes.
typeset -g POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDS=0
# Cyan ahead/behind arrows.
typeset -g POWERLEVEL9K_VCS_{INCOMING,OUTGOING}_CHANGESFORMAT_FOREGROUND=$cyan
# Don't show remote branch, current tag or stashes.
typeset -g POWERLEVEL9K_VCS_GIT_HOOKS=(vcs-detect-changes git-untracked git-aheadbehind)
# Don't show the branch icon.
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
# When in detached HEAD state, show @commit where branch normally goes.
typeset -g POWERLEVEL9K_VCS_COMMIT_ICON='@'
# Don't show staged, unstaged, untracked indicators.
typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED}_ICON=
# Show '*' when there are staged, unstaged or untracked files.
typeset -g POWERLEVEL9K_VCS_DIRTY_ICON='*'
# Show '⇣' if local branch is behind remote.
typeset -g POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON=':⇣'
# Show '⇡' if local branch is ahead of remote.
typeset -g POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON=':⇡'
# Don't show the number of commits next to the ahead/behind arrows.
typeset -g POWERLEVEL9K_VCS_{COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=1
# Remove space between '⇣' and '⇡' and all trailing spaces.
typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${${${P9K_CONTENT/⇣* :⇡/⇣⇡}// }//:/ }'
# Grey current time.
typeset -g POWERLEVEL9K_TIME_FOREGROUND=$grey
# Format for the current time: 09:51:02. See `man 3 strftime`.
typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}'
# If set to true, time will update when you hit enter. This way prompts for the past
# commands will contain the start times of their commands rather than the end times of
# their preceding commands.
typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false
# Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt
# when accepting a command line. Supported values:
#
# - off: Don't change prompt when accepting a command line.
# - always: Trim down prompt when accepting a command line.
# - same-dir: Trim down prompt when accepting a command line unless this is the first command
# typed after changing current working directory.
typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always
# Instant prompt mode.
#
# - off: Disable instant prompt. Choose this if you've tried instant prompt and found
# it incompatible with your zsh configuration files.
# - quiet: Enable instant prompt and don't print warnings when detecting console output
# during zsh initialization. Choose this if you've read and understood
# https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
# - verbose: Enable instant prompt and print a warning when detecting console output during
# zsh initialization. Choose this if you've never tried instant prompt, haven't
# seen the warning, or if you are unsure what this all means.
typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose
# Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized.
# For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload
# can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you
# really need it.
typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true
# If p10k is already loaded, reload configuration.
# This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true.
(( ! $+functions[p10k] )) || p10k reload
}
# Tell `p10k configure` which file it should overwrite.
typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a}
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
'builtin' 'unset' 'p10k_config_opts'

97
tmux/.tmux.conf Normal file
View File

@ -0,0 +1,97 @@
# easy reload config
bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded."
# Window Splits
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# Start numbering at 1
set -g base-index 1
set-window-option -g pane-base-index 1
# Allows for faster key repetition
set -s escape-time 50
# Rather than constraining window size to the maximum size of any client
# connected to the *session*, constrain window size to the maximum size of any
# client connected to *that window*. Much more reasonable.
setw -g aggressive-resize on
# Activity monitoring
setw -g monitor-activity on
set -g visual-activity on
# auto window rename
set -g allow-rename on
set-option -g base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on
# How to get nice colors
set -g default-terminal "tmux-256color"
set -ga terminal-overrides ",*256col*:Tc"
# Yeah I use the mouse
set -g mouse on
# set prefix to Ctrl-Space
unbind C-b
set -g prefix C-Space
bind Space send-prefix
# Equalize all windows with x
bind x select-layout even-vertical
# Setup tmux key so that ctrl-VIM can move around panes
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
is_fzf="ps -o state= -o comm= -t '#{pane_tty}' \
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?fzf$'"
bind -n C-h run "($is_vim && tmux send-keys C-h) || \
tmux select-pane -L"
bind -n C-j run "($is_vim && tmux send-keys C-j) || \
($is_fzf && tmux send-keys C-j) || \
tmux select-pane -D"
bind -n C-k run "($is_vim && tmux send-keys C-k) || \
($is_fzf && tmux send-keys C-k) || \
tmux select-pane -U"
bind -n C-l run "($is_vim && tmux send-keys C-l) || \
tmux select-pane -R"
# Status Line
set-option -g status-position bottom
set -g status-bg default
set -g status-fg default
set -g status-left-length 100
set -g status-right " #[fg=default]#W#[fg=red] >> #[fg=white] #{cpu_percentage} |  #{ram_percentage} #[fg=red]>> #[fg=white]%d/%m %H:%M "
set -g status-right-length 0
set -g status-left ""
set -g status-justify left
setw -g window-status-format '#[fg=white]#I #[fg=black]#W '
setw -g window-status-format '#[fg=white,bg=default]#[fg=black,bg=white]#I #[fg=black,bg=white]#W #[fg=white,bg=default]'
setw -g window-status-current-format '#[fg=magenta,bg=default]#[fg=black,bg=magenta]#I #[fg=black,bg=magenta]#W #[fg=magenta,bg=default]'
setw -g window-status-current-style fg=red
setw -g window-status-activity-style fg=yellow
setw -g window-status-bell-style fg=yellow
set -g set-titles on
# List of plugins
set -g @plugin 'tmux-plugins/tpm' # The plugin manager
set -g @plugin 'christoomey/vim-tmux-navigator' # Integrate vim navigation with tmux
set -g @plugin 'tmux-plugins/tmux-cpu' # CPU Data in the status bar
set -g @plugin 'ofirgall/tmux-window-name' # Window name in the status bar
# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin 'github_username/plugin_name#branch'
# set -g @plugin 'git@github.com:user/plugin'
# set -g @plugin 'git@bitbucket.com:user/plugin'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

151
zsh/.zshrc Normal file
View File

@ -0,0 +1,151 @@
fortune | cowsay
cd /home/tdubey/fleet >> /dev/null && source .envrc >> /dev/null && cd -
export GPG_TTY=$(tty)
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
# Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh"
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
ZSH_THEME="powerlevel10k/powerlevel10k"
# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# a theme from this variable instead of looking in $ZSH/themes/
# If set to an empty array, this variable will have no effect.
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion.
# Case-sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment one of the following lines to change the auto-update behavior
# zstyle ':omz:update' mode disabled # disable automatic updates
# zstyle ':omz:update' mode auto # update automatically without asking
# zstyle ':omz:update' mode reminder # just remind me to update when it's time
# Uncomment the following line to change how often to auto-update (in days).
# zstyle ':omz:update' frequency 13
# Uncomment the following line if pasting URLs and other text is messed up.
# DISABLE_MAGIC_FUNCTIONS="true"
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# You can also set it to another string to have that shown instead of the default red dots.
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# You can set one of the optional three formats:
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# or set a custom format using the strftime function format specifications,
# see 'man strftime' for details.
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git)
source $ZSH/oh-my-zsh.sh
# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
export PATH="$HOME/.local/bin:$PATH"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
# ======> VOYAGER <======
# gvm
export GVM_DIR="$HOME/.gvm/scripts/gvm"
export GOPROXY="https://artifacts.co.clearstreet.io/artifactory/go/"
[ -s $GVM_DIR ] && . $GVM_DIR # This loads gvm
# nvm
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
# pyenv
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
# local binaries
export PATH="$HOME/.local/bin:$PATH"
export PATH="$HOME/.tfenv/bin:$PATH"
export PATH="$HOME/.tgenv/bin:$PATH"
# ======> VOYAGER <======
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
autoload -U compinit; compinit
export PATH="$HOME/.fleetcli/bin:$PATH"