nix refactor
This commit is contained in:
		
							parent
							
								
									6d3b323ab1
								
							
						
					
					
						commit
						eeefab3584
					
				
							
								
								
									
										13
									
								
								bash/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								bash/default.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | ||||
| { config, pkgs, ... }: | ||||
| 
 | ||||
| { | ||||
|   programs.bash = { | ||||
|     enable = true; | ||||
|     profileExtra ='' | ||||
|       set -o vi | ||||
|       [ ! -z $TMUX ] || tmux a || tmux | ||||
|       neofetch | ||||
|     ''; | ||||
|   }; | ||||
| 
 | ||||
| } | ||||
| @ -1,9 +0,0 @@ | ||||
| # VIM, Prefix, Renumber | ||||
| setw -g mode-keys vi | ||||
| set-option -g prefix C-t | ||||
| set-option -g renumber-windows on | ||||
| 
 | ||||
| # Maintain Directory | ||||
| bind '"' split-window -c "#{pane_current_path}" | ||||
| bind % split-window -h -c "#{pane_current_path}" | ||||
| bind c new-window -c "#{pane_current_path}" | ||||
| @ -1,54 +0,0 @@ | ||||
| " lightline config | ||||
| let g:lightline = { | ||||
| \ 'separator': { 'left': "\ue0b0", 'right': "\ue0b2" }, | ||||
| \ 'subseparator': { 'left': "\ue0b1", 'right': "\ue0b3" } | ||||
| \ } | ||||
| 
 | ||||
| " set nowrap, line numbers, hightlight search | ||||
| set nowrap | ||||
| set nu | ||||
| set hlsearch | ||||
| set shiftwidth=2 | ||||
| 
 | ||||
| " set fold settings | ||||
| set foldmethod=indent | ||||
| set foldnestmax=10 | ||||
| set foldlevel=2 | ||||
| 
 | ||||
| " synchronize with system clipboard | ||||
| set clipboard=unnamed | ||||
| 
 | ||||
| " remap shift-enter to fire up the sidebar | ||||
| " the same remap as above - may be necessary in some distros | ||||
| nnoremap <silent> <C-M> :leftabove 25vs<CR>:e .<CR> | ||||
| 
 | ||||
| " View *.hex files in hex | ||||
| au BufReadPost *.hex silent %!xxd | ||||
| 
 | ||||
| " Always show the signcolumn, otherwise it would shift the text each time | ||||
| " diagnostics appear/become resolved. | ||||
| set signcolumn=yes | ||||
| 
 | ||||
| " Use <c-space> to trigger completion. | ||||
| inoremap <silent><expr> <c-space> coc#refresh() | ||||
| 
 | ||||
| " Use tab for trigger completion with characters ahead and navigate. | ||||
| " NOTE: There's always complete item selected by default, you may want to enable | ||||
| " no select by `"suggest.noselect": true` in your configuration file. | ||||
| " NOTE: Use command ':verbose imap <tab>' to make sure tab is not mapped by | ||||
| " other plugin before putting this into your config. | ||||
| inoremap <silent><expr> <TAB> | ||||
|     \ coc#pum#visible() ? coc#pum#next(1) : | ||||
|     \ CheckBackspace() ? "\<Tab>" : | ||||
|     \ coc#refresh() | ||||
| inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>" | ||||
| 
 | ||||
| " Make <CR> to accept selected completion item or notify coc.nvim to format | ||||
| " <C-g>u breaks current undo, please make your own choice. | ||||
| inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm() | ||||
| 			    \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>" | ||||
| 
 | ||||
| function! CheckBackspace() abort | ||||
|   let col = col('.') - 1 | ||||
|   return !col || getline('.')[col - 1]  =~# '\s' | ||||
| endfunction | ||||
							
								
								
									
										10
									
								
								git/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								git/default.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | ||||
| { config, pkgs, ... }: | ||||
| 
 | ||||
| { | ||||
|   programs.git = { | ||||
|     enable = true; | ||||
|     userName = "Evan Reichard"; | ||||
|     userEmail = "evan@reichard.io"; | ||||
|   }; | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										142
									
								
								home.nix
									
									
									
									
									
								
							
							
						
						
									
										142
									
								
								home.nix
									
									
									
									
									
								
							| @ -2,6 +2,15 @@ | ||||
| 
 | ||||
| { | ||||
| 
 | ||||
|   imports = [ | ||||
|     ./bash | ||||
|     ./git | ||||
|     ./nvim | ||||
|     ./powerline | ||||
|     ./readline | ||||
|     ./tmux | ||||
|   ]; | ||||
| 
 | ||||
|   # Home Manager Config | ||||
|   home.username = "evanreichard"; | ||||
|   home.homeDirectory = "/Users/evanreichard"; | ||||
| @ -9,133 +18,20 @@ | ||||
|   programs.home-manager.enable = true; | ||||
| 
 | ||||
|   # Global Packages | ||||
|   home.packages = [ | ||||
|     pkgs.bashInteractive | ||||
|     pkgs.htop | ||||
|     pkgs.k9s | ||||
|     pkgs.kubectl | ||||
|     pkgs.mosh | ||||
|     pkgs.neofetch | ||||
|   home.packages = with pkgs; [ | ||||
|     bashInteractive | ||||
|     htop | ||||
|     k9s | ||||
|     kubectl | ||||
|     mosh | ||||
|     neofetch | ||||
|     nerdfonts | ||||
|     python311 | ||||
|     tldr | ||||
|   ]; | ||||
| 
 | ||||
|   # Other Programs | ||||
|   programs.jq.enable = true; | ||||
|   programs.pandoc.enable = true; | ||||
| 
 | ||||
|   # ---------------------- | ||||
|   # --------- git -------- | ||||
|   # ---------------------- | ||||
|   programs.git = { | ||||
|     enable = true; | ||||
|     userName = "Evan Reichard"; | ||||
|     userEmail = "evan@reichard.io"; | ||||
|   }; | ||||
| 
 | ||||
|   # ---------------------- | ||||
|   # ------ readline ------ | ||||
|   # ---------------------- | ||||
|   programs.readline = { | ||||
|     enable = true; | ||||
|     extraConfig = '' | ||||
|       # Show Prompt | ||||
|       set show-mode-in-prompt on | ||||
| 
 | ||||
|       # Approximate VIM Dracula Colors | ||||
|       set vi-ins-mode-string \1\e[01;38;5;23;48;5;231m\2 INS \1\e[38;5;231;48;5;238m\2\1\e[0m\2 | ||||
|       set vi-cmd-mode-string \1\e[01;38;5;22;48;5;148m\2 CMD \1\e[38;5;148;48;5;238m\2\1\e[0m\2 | ||||
|     ''; | ||||
|   }; | ||||
| 
 | ||||
|   # ---------------------- | ||||
|   # -------- bash -------- | ||||
|   # ---------------------- | ||||
|   programs.bash = { | ||||
|     enable = true; | ||||
|     profileExtra ='' | ||||
|       set -o vi | ||||
|       [ ! -z $TMUX ] || tmux a || tmux | ||||
|       neofetch | ||||
|     ''; | ||||
|   }; | ||||
| 
 | ||||
|   # ---------------------- | ||||
|   # -------- tmux -------- | ||||
|   # ---------------------- | ||||
|   programs.tmux = { | ||||
|     enable = true; | ||||
|     clock24 = true; | ||||
|     shell = "${pkgs.bashInteractive}/bin/bash"; | ||||
|     plugins = with pkgs.tmuxPlugins; [ | ||||
|       yank | ||||
|       cpu | ||||
|       resurrect | ||||
|       continuum | ||||
|       { | ||||
|         plugin = dracula; | ||||
|         extraConfig = '' | ||||
|           set -g @dracula-show-battery false | ||||
|           set -g @dracula-show-powerline true | ||||
|           set -g @dracula-refresh-rate 10 | ||||
|           set -g @dracula-military-time true | ||||
|           set -g @dracula-plugins "battery cpu-usage ram-usage time" | ||||
|         ''; | ||||
| } | ||||
|     ]; | ||||
| 
 | ||||
|     extraConfig = builtins.readFile ./extraConfig.tmux; | ||||
| 
 | ||||
|   }; | ||||
| 
 | ||||
|   # ---------------------- | ||||
|   # ------- neovim ------- | ||||
|   # ---------------------- | ||||
|   programs.neovim = { | ||||
|     enable = true; | ||||
|     viAlias = true; | ||||
|     vimAlias = true; | ||||
|     withNodeJs = true; | ||||
|     withPython3 = true; | ||||
| 
 | ||||
|     plugins = with pkgs.vimPlugins; [ | ||||
|       coc-eslint | ||||
|       coc-json | ||||
|       coc-pyright | ||||
|       coc-yaml | ||||
|       dracula-vim | ||||
|       lightline-vim | ||||
|       vim-nix | ||||
|     ]; | ||||
| 
 | ||||
|     coc = { | ||||
|       enable = true; | ||||
|       package = pkgs.vimUtils.buildVimPluginFrom2Nix { | ||||
|         pname = "coc.nvim"; | ||||
|         version = "2022-11-03"; | ||||
|         src = pkgs.fetchFromGitHub { | ||||
|           owner = "neoclide"; | ||||
|           repo = "coc.nvim"; | ||||
|           rev = "5f52e41be1ff19ce1f1bd3307144e7d96703b7fd"; | ||||
|           sha256 = "0nm8jgdgxbdlvcpl12fs2fgxww5nizjpqd2ywm2n7ca0lsjpqcx0"; | ||||
|         }; | ||||
|         meta.homepage = "https://github.com/neoclide/coc.nvim/"; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     extraConfig = builtins.readFile ./extraConfig.vim; | ||||
|   }; | ||||
| 
 | ||||
|   # ---------------------- | ||||
|   # ------ powerline ----- | ||||
|   # ---------------------- | ||||
|   programs.powerline-go = { | ||||
|     enable = true; | ||||
|     modules = [ | ||||
|       "host" | ||||
|       "cwd" | ||||
|       "git" | ||||
|       "docker" | ||||
|       "venv" | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										8
									
								
								nvim/config/lua/aerial-config.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								nvim/config/lua/aerial-config.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| require('aerial').setup({ | ||||
|   on_attach = function(bufnr) | ||||
|     vim.keymap.set('n', '{', '<cmd>AerialPrev<CR>', {buffer = bufnr}) | ||||
|     vim.keymap.set('n', '}', '<cmd>AerialNext<CR>', {buffer = bufnr}) | ||||
|   end | ||||
| }) | ||||
| 
 | ||||
| vim.keymap.set('n', '<leader>a', '<cmd>AerialToggle!<CR>') | ||||
							
								
								
									
										1
									
								
								nvim/config/lua/autopairs-config.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								nvim/config/lua/autopairs-config.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| require("nvim-autopairs").setup() | ||||
							
								
								
									
										50
									
								
								nvim/config/lua/base.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								nvim/config/lua/base.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,50 @@ | ||||
| -- Disable NetRW | ||||
| vim.g.loaded_netrw = 1 | ||||
| vim.g.loaded_netrwPlugin = 1 | ||||
| 
 | ||||
| -- Set Term Colors | ||||
| vim.opt.termguicolors = true | ||||
| 
 | ||||
| -- Synchronize with system clipboard | ||||
| vim.opt.clipboard = "unnamed" | ||||
| 
 | ||||
| -- Always show the signcolumn | ||||
| vim.opt.signcolumn = "yes" | ||||
| 
 | ||||
| -- Set nowrap, line numbers, hightlight search | ||||
| vim.opt.wrap = false | ||||
| vim.opt.nu = true | ||||
| vim.opt.hlsearch = true | ||||
| vim.opt.shiftwidth = 2 | ||||
| 
 | ||||
| -- Set fold settings | ||||
| vim.opt.foldmethod = "indent" | ||||
| vim.opt.foldnestmax = 10 | ||||
| vim.opt.foldlevel = 2 | ||||
| 
 | ||||
| -- Lightline config | ||||
| vim.g['lightline'] = { | ||||
|   colorscheme = 'embark', | ||||
|   separator = { | ||||
|     left = "\u{e0b0}", | ||||
|     right = "\u{e0b2}" | ||||
|   }, | ||||
|   subseparator = { | ||||
|     left = "\u{e0b1}", | ||||
|     right = "\u{e0b3}" | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| -- Set Color Scheme | ||||
| vim.cmd('colorscheme embark') | ||||
| vim.diagnostic.config({ | ||||
|   virtual_text = false, | ||||
| }) | ||||
| 
 | ||||
| -- Mappings. | ||||
| -- See `:help vim.diagnostic.*` for documentation on any of the below functions | ||||
| local opts = { noremap=true, silent=true } | ||||
| vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts) | ||||
| vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) | ||||
| vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) | ||||
| vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, opts) | ||||
							
								
								
									
										49
									
								
								nvim/config/lua/cmp-config.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								nvim/config/lua/cmp-config.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,49 @@ | ||||
| local cmp = require'cmp' | ||||
| 
 | ||||
| cmp.setup({ | ||||
|   mapping = cmp.mapping.preset.insert({ | ||||
|     ['<C-b>'] = cmp.mapping.scroll_docs(-4), | ||||
|     ['<C-f>'] = cmp.mapping.scroll_docs(4), | ||||
|     ['<C-Space>'] = cmp.mapping.complete(), | ||||
|     ['<C-e>'] = cmp.mapping.abort(), | ||||
|     ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. | ||||
|   }), | ||||
|   sources = cmp.config.sources({ | ||||
|     { name = 'nvim_lsp' }, | ||||
|   }, { | ||||
|     { name = 'buffer' }, | ||||
|   }) | ||||
| }) | ||||
| 
 | ||||
| -- Set configuration for specific filetype. | ||||
| cmp.setup.filetype('gitcommit', { | ||||
|   sources = cmp.config.sources({ | ||||
|     { name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it. | ||||
|   }, { | ||||
|     { name = 'buffer' }, | ||||
|   }) | ||||
| }) | ||||
| 
 | ||||
| -- -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). | ||||
| cmp.setup.cmdline({ '/', '?' }, { | ||||
|   mapping = cmp.mapping.preset.cmdline(), | ||||
|   sources = { | ||||
|     { name = 'buffer' } | ||||
|   } | ||||
| }) | ||||
| 
 | ||||
| -- -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). | ||||
| cmp.setup.cmdline(':', { | ||||
|   mapping = cmp.mapping.preset.cmdline(), | ||||
|   sources = cmp.config.sources({ | ||||
|     { name = 'path' } | ||||
|   }, { | ||||
|     { name = 'cmdline' } | ||||
|   }) | ||||
| }) | ||||
| 
 | ||||
| local cmp_autopairs = require('nvim-autopairs.completion.cmp') | ||||
| cmp.event:on( | ||||
|   'confirm_done', | ||||
|   cmp_autopairs.on_confirm_done() | ||||
| ) | ||||
							
								
								
									
										1
									
								
								nvim/config/lua/comment-config.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								nvim/config/lua/comment-config.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| require('Comment').setup() | ||||
							
								
								
									
										11
									
								
								nvim/config/lua/init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								nvim/config/lua/init.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | ||||
| require('aerial-config') | ||||
| require('autopairs-config') | ||||
| require('base') | ||||
| require('cmp-config') | ||||
| require('comment-config') | ||||
| require('lsp-config') | ||||
| require('lsp-lines-config') | ||||
| require('noice-config') | ||||
| require('numb-config') | ||||
| require('nvim-tree-config') | ||||
| require('telescope-config') | ||||
							
								
								
									
										60
									
								
								nvim/config/lua/lsp-config.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								nvim/config/lua/lsp-config.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,60 @@ | ||||
| local nix_vars = require("nix-vars") | ||||
| local nvim_lsp = require('lspconfig') | ||||
| 
 | ||||
| -- Use an on_attach function to only map the following keys | ||||
| -- after the language server attaches to the current buffer | ||||
| local on_attach = function(client, bufnr) | ||||
|   -- Enable completion triggered by <c-x><c-o> | ||||
|   vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') | ||||
| 
 | ||||
|   -- Mappings. | ||||
|   -- See `:help vim.lsp.*` for documentation on any of the below functions | ||||
|   local bufopts = { noremap=true, silent=true, buffer=bufnr } | ||||
|   vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) | ||||
|   vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) | ||||
|   vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) | ||||
|   vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) | ||||
|   vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts) | ||||
|   vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts) | ||||
|   vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts) | ||||
|   vim.keymap.set('n', '<space>wl', function() | ||||
|     print(vim.inspect(vim.lsp.buf.list_workspace_folders())) | ||||
|   end, bufopts) | ||||
|   vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts) | ||||
|   vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts) | ||||
|   vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts) | ||||
|   vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) | ||||
|   vim.keymap.set('n', '<space>f', function() vim.lsp.buf.format { async = true } end, bufopts) | ||||
| end | ||||
| 
 | ||||
| local lsp_flags = { | ||||
|   debounce_text_changes = 150, | ||||
| } | ||||
| local capabilities = require('cmp_nvim_lsp').default_capabilities() | ||||
| nvim_lsp.pyright.setup{ | ||||
|     on_attach = on_attach, | ||||
|     flags = lsp_flags, | ||||
|     capabilities = capabilities, | ||||
| } | ||||
| 
 | ||||
| nvim_lsp.html.setup{ | ||||
|     on_attach = on_attach, | ||||
|     flags = lsp_flags, | ||||
|     capabilities = capabilities, | ||||
|     cmd = { | ||||
| 	nix_vars.htmlserver, | ||||
| 	"--stdio", | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| nvim_lsp.tsserver.setup{ | ||||
|     on_attach = on_attach, | ||||
|     flags = lsp_flags, | ||||
|     capabilities = capabilities, | ||||
|     cmd = { | ||||
| 	nix_vars.tsserver, | ||||
| 	"--stdio", | ||||
| 	"--tsserver-path", | ||||
| 	nix_vars.tslib, | ||||
|     } | ||||
| } | ||||
							
								
								
									
										1
									
								
								nvim/config/lua/lsp-lines-config.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								nvim/config/lua/lsp-lines-config.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| require("lsp_lines").setup() | ||||
							
								
								
									
										17
									
								
								nvim/config/lua/noice-config.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								nvim/config/lua/noice-config.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | ||||
| require("noice").setup() | ||||
| require("noice").setup({ | ||||
|   lsp = { | ||||
|     override = { | ||||
|       ["vim.lsp.util.convert_input_to_markdown_lines"] = true, | ||||
|       ["vim.lsp.util.stylize_markdown"] = true, | ||||
|       ["cmp.entry.get_documentation"] = true, | ||||
|     }, | ||||
|   }, | ||||
|   presets = { | ||||
|     -- bottom_search = false, -- use a classic bottom cmdline for search | ||||
|     command_palette = true, -- position the cmdline and popupmenu together | ||||
|     long_message_to_split = true, -- long messages will be sent to a split | ||||
|     inc_rename = false, -- enables an input dialog for inc-rename.nvim | ||||
|     lsp_doc_border = true, -- add a border to hover docs and signature help | ||||
|   }, | ||||
| }) | ||||
							
								
								
									
										1
									
								
								nvim/config/lua/numb-config.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								nvim/config/lua/numb-config.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| require('numb').setup() | ||||
							
								
								
									
										1
									
								
								nvim/config/lua/nvim-tree-config.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								nvim/config/lua/nvim-tree-config.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| require("nvim-tree").setup() | ||||
							
								
								
									
										7
									
								
								nvim/config/lua/telescope-config.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								nvim/config/lua/telescope-config.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | ||||
| require('telescope').setup() | ||||
| 
 | ||||
| local builtin = require('telescope.builtin') | ||||
| vim.keymap.set('n', '<leader>ff', builtin.find_files, {}) | ||||
| vim.keymap.set('n', '<leader>fg', builtin.live_grep, {}) | ||||
| vim.keymap.set('n', '<leader>fb', builtin.buffers, {}) | ||||
| vim.keymap.set('n', '<leader>fh', builtin.help_tags, {}) | ||||
							
								
								
									
										100
									
								
								nvim/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								nvim/default.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,100 @@ | ||||
| { config, pkgs, ... }: | ||||
| 
 | ||||
| { | ||||
|   programs.neovim = { | ||||
|     enable = true; | ||||
|     viAlias = true; | ||||
|     vimAlias = true; | ||||
|     withNodeJs = true; | ||||
|     withPython3 = true; | ||||
| 
 | ||||
|     plugins = with pkgs.vimPlugins; [ | ||||
| 
 | ||||
|       # ------------------ | ||||
|       # --- Completion --- | ||||
|       # ------------------ | ||||
|       cmp-buffer      # Buffer Word Completion | ||||
|       cmp-cmdline     # Command Line Completion | ||||
|       cmp-nvim-lsp    # Main LSP | ||||
|       cmp-path        # Path Completion | ||||
|       cmp-vsnip       # Snippets | ||||
|       lsp_lines-nvim  # Inline Diagnostics | ||||
|       nvim-cmp        # Completions | ||||
|       nvim-lspconfig  # LSP Config | ||||
| 
 | ||||
|       # ------------------ | ||||
|       # ----- Helpers ---- | ||||
|       # ------------------ | ||||
|       aerial-nvim     # Code Outline | ||||
|       comment-nvim    # Code Comments | ||||
|       diffview-nvim   # Diff View | ||||
|       numb-nvim       # Peek / Jump to Lines | ||||
|       nvim-autopairs  # Automatically Close Pairs (),[],{} | ||||
|       nvim-tree-lua   # File Explorer | ||||
|       telescope-nvim  # Fuzzy Finder | ||||
|       vim-nix         # Nix Helpers | ||||
| 
 | ||||
|       # ------------------ | ||||
|       # --- Theme / UI --- | ||||
|       # ------------------ | ||||
|       embark-vim        # Theme | ||||
|       lightline-vim     # Bottom Line | ||||
|       noice-nvim        # UI Tweaks | ||||
|       nvim-web-devicons # Dev Icons | ||||
| 
 | ||||
|       # ------------------ | ||||
|       # --- Treesitter --- | ||||
|       # ------------------ | ||||
|       ( | ||||
|         nvim-treesitter.withPlugins ( | ||||
|           plugins: with pkgs.tree-sitter-grammars; [ | ||||
|             # tree-sitter-bash            # Incompatibility (Prevents Noice Highlighting) | ||||
|             tree-sitter-lua | ||||
|             tree-sitter-markdown | ||||
|             tree-sitter-markdown-inline | ||||
|             tree-sitter-regex | ||||
|             tree-sitter-vim | ||||
|           ] | ||||
|         ) | ||||
|       ) | ||||
| 
 | ||||
|     ]; | ||||
| 
 | ||||
|     extraPackages = with pkgs; [ | ||||
| 
 | ||||
|       # Telescope Dependencies | ||||
|       ripgrep | ||||
|       fd | ||||
| 
 | ||||
|       # LSP Dependencies | ||||
|       nodePackages.pyright | ||||
|       nodePackages.typescript | ||||
|       nodePackages.typescript-language-server | ||||
|       nodePackages.vscode-html-languageserver-bin | ||||
| 
 | ||||
|     ]; | ||||
| 
 | ||||
|     extraConfig = ":luafile ~/.config/nvim/lua/init.lua"; | ||||
|   }; | ||||
| 
 | ||||
| 
 | ||||
|   xdg.configFile = { | ||||
| 
 | ||||
|     # Copy Configuration | ||||
|     nvim = { | ||||
|       source = ./config; | ||||
|       recursive = true; | ||||
|     }; | ||||
| 
 | ||||
|     # Generate Nix Vars | ||||
|     "nvim/lua/nix-vars.lua".text = '' | ||||
|       local nix_vars = { | ||||
|         htmlserver = "${pkgs.nodePackages.vscode-html-languageserver-bin}/bin/html-languageserver", | ||||
|         tsserver = "${pkgs.nodePackages.typescript-language-server}/bin/typescript-language-server", | ||||
|         tslib = "${pkgs.nodePackages.typescript}/lib/node_modules/typescript/lib/", | ||||
|       } | ||||
|       return nix_vars | ||||
|     ''; | ||||
| 
 | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										14
									
								
								powerline/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								powerline/default.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | ||||
| { config, pkgs, ... }: | ||||
| 
 | ||||
| { | ||||
|   programs.powerline-go = { | ||||
|     enable = true; | ||||
|     modules = [ | ||||
|       "host" | ||||
|       "cwd" | ||||
|       "git" | ||||
|       "docker" | ||||
|       "venv" | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										16
									
								
								readline/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								readline/default.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,16 @@ | ||||
| { config, pkgs, ... }: | ||||
| 
 | ||||
| { | ||||
|   programs.readline = { | ||||
|     enable = true; | ||||
|     extraConfig = '' | ||||
|       # Show Prompt | ||||
|       set show-mode-in-prompt on | ||||
| 
 | ||||
|       # Approximate VIM Dracula Colors | ||||
|       set vi-ins-mode-string \1\e[01;38;5;23;48;5;231m\2 INS \1\e[38;5;231;48;5;238m\2\1\e[0m\2 | ||||
|       set vi-cmd-mode-string \1\e[01;38;5;22;48;5;148m\2 CMD \1\e[38;5;148;48;5;238m\2\1\e[0m\2 | ||||
|     ''; | ||||
|   }; | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										41
									
								
								tmux/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								tmux/default.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,41 @@ | ||||
| { config, pkgs, ... }: | ||||
| 
 | ||||
| { | ||||
|   programs.tmux = { | ||||
|     enable = true; | ||||
|     clock24 = true; | ||||
|     shell = "${pkgs.bashInteractive}/bin/bash"; | ||||
|     plugins = with pkgs.tmuxPlugins; [ | ||||
|       yank | ||||
|       cpu | ||||
|       resurrect | ||||
|       continuum | ||||
|       { | ||||
|         plugin = dracula; | ||||
|         extraConfig = '' | ||||
|           set -g @dracula-show-battery false | ||||
|           set -g @dracula-show-powerline true | ||||
|           set -g @dracula-refresh-rate 10 | ||||
|           set -g @dracula-military-time true | ||||
|           set -g @dracula-plugins "battery cpu-usage ram-usage time" | ||||
|         ''; | ||||
|       } | ||||
|     ]; | ||||
| 
 | ||||
|     extraConfig = '' | ||||
|       # VIM, Prefix, Renumber | ||||
|       setw -g mode-keys vi | ||||
|       set-option -g prefix C-t | ||||
|       set-option -g renumber-windows on | ||||
| 
 | ||||
|       # Maintain Directory | ||||
|       bind '"' split-window -c "#{pane_current_path}" | ||||
|       bind % split-window -h -c "#{pane_current_path}" | ||||
|       bind c new-window -c "#{pane_current_path}" | ||||
| 
 | ||||
|       # Set Colors | ||||
|       # set -g default-terminal "screen-256color" | ||||
|       # set-option -ga terminal-overrides ",xterm-256color:Tc" | ||||
|     ''; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user