This is the base system that I put onto any machine on which I am developing. It includes config files for:
- bspwm (tiling window manager)
- sxhkd (X hotkey daemon)
- Xdefaults
- tmux (terminal multiplexer)
- zsh (shell)
- neovim (editor)
- powerline (status line for tmux)
- git (version control)
Colours are Solarized Dark slightly altered to make the dark background colours a little darker.
Unpackaged software, or software that is newer than packaged versions, is managed with ghq and includes the following repositories:
- st
- zsh
- zsh-git-prompt (prompt for zsh including git status)
- neovim
- tmux and libevent
- bspwm
- sxhkd
- git
- diff-so-fancy (better git diffs)
- tig (git viewer)
- caps2esc (make capslock useful)
- xdotool (automate X input)
- Clipit (clipboard manager)
- urlview (extract URLs from text)
- shellcheck (shell linter)
- fzf (fuzzy finder)
- PathPicker (file selector)
- htop (better top)
- hosts (safe hosts file)
The zsh config uses zplug and the following plugins:
- zsh-completions (extra completions)
- zsh-syntax-highlighting (highlighting on the command line)
- zsh-dwim (predict next command with ^U)
- git-extras (additional git commands)
The neovim config uses lazy.nvim and the following plugins:
Core & UI:
- catppuccin/nvim (colorscheme)
- nvim-web-devicons (file icons)
- lualine.nvim (status line)
- which-key.nvim (key binding help)
- nvim-navic (breadcrumbs)
LSP & Completion:
- nvim-lspconfig (LSP configuration)
- mason.nvim (LSP installer)
- mason-lspconfig.nvim (mason integration)
- magazine.nvim (completion engine)
- lsp_signature.nvim (signature help)
- nvim-lightbulb (code actions indicator)
- lsp-colors.nvim (LSP colors)
Treesitter:
- nvim-treesitter (syntax highlighting)
- nvim-treesitter-refactor (refactoring)
- nvim-treesitter-textobjects (text objects)
- nvim-treesitter-context (context)
- nvim-ts-autotag (auto close tags)
- nvim-ts-context-commentstring (context comments)
Fuzzy Finding & Navigation:
- telescope.nvim (fuzzy finder)
- telescope-fzf-native.nvim (fzf integration)
- telescope-frecency.nvim (frecency algorithm)
- telescope-ui-select.nvim (UI select)
- telescope-undo.nvim (undo tree)
- smart-open.nvim (smart file opening)
Git:
- gitsigns.nvim (git signs)
- git-messenger.vim (git blame popup)
- conflict-marker.vim (conflict markers)
- diffview.nvim (diff viewer)
- vim-gh-line (GitHub line links)
- vim-fugitive (git integration)
- gitlab.nvim (GitLab integration)
AI & Completion Sources:
- copilot.lua (GitHub Copilot)
- copilot-cmp (Copilot completion)
- codeium.nvim (Codeium AI)
- supermaven-nvim (Supermaven AI)
- minuet-ai.nvim (Gemini AI)
- codecompanion.nvim (AI chat)
- avante.nvim (AI assistant)
- mcphub.nvim (MCP integration)
- VectorCode (code search)
Language Support:
- go.nvim (Go development)
- vim-perl (Perl support)
- vim-terraform (Terraform)
- vim-helm (Helm charts)
Testing & Debugging:
- neotest (testing framework)
- neotest-go (Go testing)
Linting & Formatting:
- nvim-lint (linting)
- ale (async linting)
- conform.nvim (formatting)
- nvim-rulebook (rule checking)
File Management:
- nvim-tree.lua (file tree)
- oil.nvim (file editing)
- yazi.nvim (file manager)
- outline.nvim (code outline)
Text Manipulation:
- nvim-surround (surround text)
- vim-easy-align (alignment)
- vim-move (move lines/blocks)
- nvim-comment (commenting)
- treesj (split/join code)
- refactoring.nvim (refactoring)
- nvim-spider (camelCase motion)
- nvim-various-textobjs (text objects)
UI Enhancements:
- nvim-highlight-colors (color highlighting)
- indent-blankline.nvim (indent guides)
- nvim-hlslens (search lens)
- nvim-scrollbar (scrollbar)
- hl_match_area.nvim (match highlighting)
- lfv89/vim-interestingwords (word highlighting)
- SmoothCursor.nvim (smooth cursor)
- emission.nvim (change highlighting)
Utilities:
- vim-autoswap (swap file handling)
- vim-lastplace (restore cursor position)
- vim-startify (start screen)
- crazy8.nvim (utilities)
- lexima.vim (auto pairs)
- vim-repeat (repeat plugin actions)
- vim-gutentags (tag generation)
Quickfix & Search:
- nvim-bqf (better quickfix)
- nvim-pqf (pretty quickfix)
- replacer.nvim (search replace)
Markdown & Documentation:
- markdown-preview.nvim (markdown preview)
- render-markdown.nvim (markdown rendering)
- markview.nvim (markdown viewer)
- helpview.nvim (help viewer)
Miscellaneous:
- nvim-notify (notifications)
- nvim-lsp-notify (LSP notifications)
- dressing.nvim (UI improvements)
- overseer.nvim (task runner)
- sidebar.nvim (sidebar)
- hex.nvim (hex editor)
- shell.nvim (shell integration)
- urlview.nvim (URL viewer)
- translate.nvim (translation)
- vim-oscyank (OSC52 clipboard)
- ascii-blocks.nvim (ASCII art)
- vim-unicode-homoglyphs (unicode handling)