From 3506c21b8d1092e84f0aab97affdf0ca158251b5 Mon Sep 17 00:00:00 2001 From: Tanishq Dubey Date: Sun, 10 Jul 2022 15:46:05 -0400 Subject: [PATCH] Add all dotfiles --- git/.gitconfig | 21 ++ nvim/.config/nvim/init.lua | 20 ++ nvim/.config/nvim/lua/dubey/keymap.lua | 27 ++ nvim/.config/nvim/lua/dubey/options.lua | 35 ++ .../nvim/lua/dubey/plugins/autopairs.lua | 31 ++ .../nvim/lua/dubey/plugins/bufferline.lua | 90 +++++ .../nvim/lua/dubey/plugins/complet.lua | 108 ++++++ nvim/.config/nvim/lua/dubey/plugins/folds.lua | 24 ++ .../.config/nvim/lua/dubey/plugins/indent.lua | 11 + nvim/.config/nvim/lua/dubey/plugins/init.lua | 133 ++++++++ nvim/.config/nvim/lua/dubey/plugins/lsp.lua | 110 ++++++ .../nvim/lua/dubey/plugins/lualine.lua | 71 ++++ .../.config/nvim/lua/dubey/plugins/notify.lua | 12 + .../nvim/lua/dubey/plugins/nvimtree.lua | 106 ++++++ .../nvim/lua/dubey/plugins/scrollbar.lua | 20 ++ .../nvim/lua/dubey/plugins/session.lua | 11 + .../nvim/lua/dubey/plugins/startup.lua | 80 +++++ .../nvim/lua/dubey/plugins/telescope.lua | 98 ++++++ nvim/.config/nvim/lua/dubey/plugins/term.lua | 15 + .../nvim/lua/dubey/plugins/treesitter.lua | 20 ++ .../nvim/lua/dubey/plugins/whichkey.lua | 133 ++++++++ nvim/.config/nvim/lua/dubey/theme.lua | 1 + nvim/.config/nvim/plugin/packer_compiled.lua | 322 ++++++++++++++++++ pl10k/.p10k.zsh | 193 +++++++++++ tmux/.tmux.conf | 97 ++++++ zsh/.zshrc | 151 ++++++++ 26 files changed, 1940 insertions(+) create mode 100644 git/.gitconfig create mode 100644 nvim/.config/nvim/init.lua create mode 100644 nvim/.config/nvim/lua/dubey/keymap.lua create mode 100644 nvim/.config/nvim/lua/dubey/options.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/autopairs.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/bufferline.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/complet.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/folds.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/indent.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/init.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/lsp.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/lualine.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/notify.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/nvimtree.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/scrollbar.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/session.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/startup.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/telescope.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/term.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/treesitter.lua create mode 100644 nvim/.config/nvim/lua/dubey/plugins/whichkey.lua create mode 100644 nvim/.config/nvim/lua/dubey/theme.lua create mode 100644 nvim/.config/nvim/plugin/packer_compiled.lua create mode 100644 pl10k/.p10k.zsh create mode 100644 tmux/.tmux.conf create mode 100644 zsh/.zshrc diff --git a/git/.gitconfig b/git/.gitconfig new file mode 100644 index 0000000..568e8f5 --- /dev/null +++ b/git/.gitconfig @@ -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 diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua new file mode 100644 index 0000000..ec6f1e4 --- /dev/null +++ b/nvim/.config/nvim/init.lua @@ -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' diff --git a/nvim/.config/nvim/lua/dubey/keymap.lua b/nvim/.config/nvim/lua/dubey/keymap.lua new file mode 100644 index 0000000..9ea0610 --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/keymap.lua @@ -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', '', '', {noremap = true}) + +-- Vim Tmux Keymaps +keymap('n', '', ':TmuxNavigateLeft', { noremap = true, silent = true }) +keymap('n', '', ':TmuxNavigateDown', { noremap = true, silent = true }) +keymap('n', '', ':TmuxNavigateRight', { noremap = true, silent = true }) +keymap('n', '', ':TmuxNavigateUp', { noremap = true, silent = true }) + +keymap('n', 'vp', ':VimuxPromptCommand', {}) +keymap('n', 'vl', ':VimuxRunLastCommand', {}) + +-- LSP Keymaps +keymap('n', 'gd', ':lua vim.lsp.buf.definition()', { noremap = true, silent = true }) +keymap('n', 'gr', ':lua vim.lsp.buf.references()', { noremap = true, silent = true }) +keymap('n', 'gi', ':lua vim.lsp.buf.implementation()', { noremap = true, silent = true }) +keymap('n', 'gD', ':lua vim.lsp.buf.declaration()', { noremap = true, silent = true }) diff --git a/nvim/.config/nvim/lua/dubey/options.lua b/nvim/.config/nvim/lua/dubey/options.lua new file mode 100644 index 0000000..fce94ce --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/options.lua @@ -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 diff --git a/nvim/.config/nvim/lua/dubey/plugins/autopairs.lua b/nvim/.config/nvim/lua/dubey/plugins/autopairs.lua new file mode 100644 index 0000000..b9e344e --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/autopairs.lua @@ -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 = "", + 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 = "" } })) diff --git a/nvim/.config/nvim/lua/dubey/plugins/bufferline.lua b/nvim/.config/nvim/lua/dubey/plugins/bufferline.lua new file mode 100644 index 0000000..54d3348 --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/bufferline.lua @@ -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) diff --git a/nvim/.config/nvim/lua/dubey/plugins/complet.lua b/nvim/.config/nvim/lua/dubey/plugins/complet.lua new file mode 100644 index 0000000..e82fda6 --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/complet.lua @@ -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 = { + [""] = cmp.mapping.confirm({ select = true }), + [""] = 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" }), + [""] = 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, + }, +}) diff --git a/nvim/.config/nvim/lua/dubey/plugins/folds.lua b/nvim/.config/nvim/lua/dubey/plugins/folds.lua new file mode 100644 index 0000000..1eb2062 --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/folds.lua @@ -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", " ┣━━" }, + }, +}) + diff --git a/nvim/.config/nvim/lua/dubey/plugins/indent.lua b/nvim/.config/nvim/lua/dubey/plugins/indent.lua new file mode 100644 index 0000000..8fd3165 --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/indent.lua @@ -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" }, +}) diff --git a/nvim/.config/nvim/lua/dubey/plugins/init.lua b/nvim/.config/nvim/lua/dubey/plugins/init.lua new file mode 100644 index 0000000..fe1e803 --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/init.lua @@ -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 | 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) diff --git a/nvim/.config/nvim/lua/dubey/plugins/lsp.lua b/nvim/.config/nvim/lua/dubey/plugins/lsp.lua new file mode 100644 index 0000000..7620aeb --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/lsp.lua @@ -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! * + autocmd CursorHold lua vim.lsp.buf.document_highlight() + autocmd CursorMoved 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, +}) diff --git a/nvim/.config/nvim/lua/dubey/plugins/lualine.lua b/nvim/.config/nvim/lua/dubey/plugins/lualine.lua new file mode 100644 index 0000000..e8d0f96 --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/lualine.lua @@ -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 = {}, +}) diff --git a/nvim/.config/nvim/lua/dubey/plugins/notify.lua b/nvim/.config/nvim/lua/dubey/plugins/notify.lua new file mode 100644 index 0000000..b385f94 --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/notify.lua @@ -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 diff --git a/nvim/.config/nvim/lua/dubey/plugins/nvimtree.lua b/nvim/.config/nvim/lua/dubey/plugins/nvimtree.lua new file mode 100644 index 0000000..0459756 --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/nvimtree.lua @@ -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 = "", cb = cb("close_node") }, + { key = "h", cb = cb("toggle_ignored") }, + { key = "h", cb = cb("toggle_dotfiles") }, + { key = { "" }, cb = cb("cd") }, + { key = "yy", cb = cb("copy_absolute_path") }, + { key = { "", "<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 +}) diff --git a/nvim/.config/nvim/lua/dubey/plugins/scrollbar.lua b/nvim/.config/nvim/lua/dubey/plugins/scrollbar.lua new file mode 100644 index 0000000..1d95e5f --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/scrollbar.lua @@ -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" }, +}) diff --git a/nvim/.config/nvim/lua/dubey/plugins/session.lua b/nvim/.config/nvim/lua/dubey/plugins/session.lua new file mode 100644 index 0000000..ca138b5 --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/session.lua @@ -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, +}) diff --git a/nvim/.config/nvim/lua/dubey/plugins/startup.lua b/nvim/.config/nvim/lua/dubey/plugins/startup.lua new file mode 100644 index 0000000..7c39b18 --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/startup.lua @@ -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", "") + 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_ .. "", 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", "SessionManager load_session"), + button("f", " search files", "Telescope find_files"), + button("n", " new file", "ene "), + }, + 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) diff --git a/nvim/.config/nvim/lua/dubey/plugins/telescope.lua b/nvim/.config/nvim/lua/dubey/plugins/telescope.lua new file mode 100644 index 0000000..200af03 --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/telescope.lua @@ -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 = { + [""] = actions.cycle_history_next, + [""] = actions.cycle_history_prev, + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + [""] = actions.close, + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + [""] = actions.select_default, + [""] = actions.select_horizontal, + [""] = actions.select_vertical, + [""] = actions.select_tab, + [""] = actions.preview_scrolling_up, + [""] = actions.preview_scrolling_down, + [""] = actions.results_scrolling_up, + [""] = actions.results_scrolling_down, + [""] = actions.toggle_selection + actions.move_selection_worse, + [""] = actions.toggle_selection + actions.move_selection_better, + [""] = actions.send_to_qflist + actions.open_qflist, + [""] = actions.send_selected_to_qflist + actions.open_qflist, + [""] = actions.complete_tag, + [""] = actions.which_key, + }, + n = { + [""] = actions.close, + [""] = actions.select_default, + [""] = actions.select_horizontal, + [""] = actions.select_vertical, + [""] = actions.select_tab, + [""] = actions.toggle_selection + actions.move_selection_worse, + [""] = actions.toggle_selection + actions.move_selection_better, + [""] = actions.send_to_qflist + actions.open_qflist, + [""] = 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, + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + ["gg"] = actions.move_to_top, + ["G"] = actions.move_to_bottom, + [""] = actions.preview_scrolling_up, + [""] = actions.preview_scrolling_down, + [""] = actions.results_scrolling_up, + [""] = 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 diff --git a/nvim/.config/nvim/lua/dubey/plugins/term.lua b/nvim/.config/nvim/lua/dubey/plugins/term.lua new file mode 100644 index 0000000..912df58 --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/term.lua @@ -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", + }, + }, +}) diff --git a/nvim/.config/nvim/lua/dubey/plugins/treesitter.lua b/nvim/.config/nvim/lua/dubey/plugins/treesitter.lua new file mode 100644 index 0000000..53f89b8 --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/treesitter.lua @@ -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, + }, +}) diff --git a/nvim/.config/nvim/lua/dubey/plugins/whichkey.lua b/nvim/.config/nvim/lua/dubey/plugins/whichkey.lua new file mode 100644 index 0000000..34fcc31 --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/plugins/whichkey.lua @@ -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 = "", + scroll_up = "", + }, + 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 = { "", "", "", "", "call", "lua", "^:", "^ " }, + show_help = true, + triggers = "auto", + triggers_blacklist = { + i = { "j", "k" }, + v = { "j", "k" }, + }, +} + +local leader_opts = { + mode = "n", + prefix = "", + buffer = nil, + silent = true, + noremap = true, + nowait = true, +} + +local leader_mappings = { + w = { + ":w!:lua vim.notify(vim.fn.expand('%'), 'success', { title = 'Buffer Saved' })", + "Save Buffer", + }, + W = { + ":SudaWrite:lua vim.notify(vim.fn.expand('%'), 'success', { title = 'Buffer saved with sudo' })", + "Sudo Save Buffer", + }, + x = { ":q", "Quit Buffer" }, + z = { "ZenMode", "Zen Mode" }, + q = { "conf qa", "Quit Nvim" }, + c = { "Bdelete!", "Close Buffer" }, + h = { "nohlsearch", "Clear Highlight" }, + e = { "NvimTreeToggle", "File Explorer" }, + s = { "SessionManager save_current_session", "Save Session" }, + f = { + name = "Find", + y = { "Telescope neoclip", "Yanks" }, + h = { "Telescope help_tags", "Help" }, + k = { "Telescope keymaps", "Keymaps" }, + t = { "Telescope live_grep", "Text" }, + b = { "Telescope buffers", "Buffers" }, + f = { "Telescope find_files", "Files" }, + o = { "Telescope oldfiles", "Recents" }, + c = { "Telescope commands", "Commands" }, + m = { "Telescope man_pages", "Manuals" }, + r = { "Telescope registers", "Registers" }, + s = { "SessionManager load_session", "Sessions" }, + }, + p = { + name = "Packer", + s = { "PackerSync", "Sync" }, + S = { "PackerStatus", "Status" }, + u = { "PackerUpdate", "Update" }, + c = { "PackerCompile", "Compile" }, + i = { "PackerInstall", "Install" }, + }, + g = { + name = "Git", + s = { "Telescope git_status", "File Git Status" }, + c = { "Telescope git_commits", "Checkout commit" }, + b = { "Telescope git_branches", "Checkout branch" }, + }, + l = { + name = "LSP", + I = { "LspInfo", "Info" }, + i = { "LspInstall", "Install" }, + a = { "AerialToggle", "Aerial" }, + f = { "lua vim.lsp.buf.formatting()", "Format" }, + w = { "Telescope diagnostics", "Workspace Diagnostics" }, + d = { "Telescope diagnostics bufnr=0", "Document Diagnostics" }, + }, + t = { + name = "Terminal", + f = { "ToggleTerm direction=float", "Float" }, + v = { "ToggleTerm size=80 direction=vertical", "Vertical" }, + h = { "ToggleTerm size=10 direction=horizontal", "Horizontal" }, + }, + v = { + name = "ViMux", + r = { "VimuxPromptCommand", "Run Command" }, + l = { "VimuxRunLastCommand", "Run Last" }, + }, +} + +which_key.setup(setup) +which_key.register(leader_mappings, leader_opts) + diff --git a/nvim/.config/nvim/lua/dubey/theme.lua b/nvim/.config/nvim/lua/dubey/theme.lua new file mode 100644 index 0000000..7193260 --- /dev/null +++ b/nvim/.config/nvim/lua/dubey/theme.lua @@ -0,0 +1 @@ +vim.cmd[[colorscheme gruvbox8]] diff --git a/nvim/.config/nvim/plugin/packer_compiled.lua b/nvim/.config/nvim/plugin/packer_compiled.lua new file mode 100644 index 0000000..be97d45 --- /dev/null +++ b/nvim/.config/nvim/plugin/packer_compiled.lua @@ -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 diff --git a/pl10k/.p10k.zsh b/pl10k/.p10k.zsh new file mode 100644 index 0000000..609b97a --- /dev/null +++ b/pl10k/.p10k.zsh @@ -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' diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf new file mode 100644 index 0000000..7977628 --- /dev/null +++ b/tmux/.tmux.conf @@ -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' diff --git a/zsh/.zshrc b/zsh/.zshrc new file mode 100644 index 0000000..5c33045 --- /dev/null +++ b/zsh/.zshrc @@ -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"