3.4 KiB
🌌 Whipsmart.nvim
Whipsmart.nvim is a modular, native-first Neovim configuration built on top of the Neovim 0.12+ vim.pack system. It evolved from kickstart.nvim into a modular, machine-aware "Grand Unified" configuration.
✨ Features
- Modular Architecture: Plugin configurations are isolated in
lua/plugins/*.lua. - Native-First: Leverages Neovim 0.12's built-in
vim.packfor plugin management and native LSP/Autocomplete improvements. - Ergonomic Dashboard: Includes
pack-manager.nvimto provide a polished, Lazy-like UI on top of native primitives. - Machine Awareness: Built-in hostname detection in
init.luafor machine-specific overrides. - Version Pinning: Uses
nvim-pack-lock.jsonfor reproducible environments across all your hardware.
🚀 Quick Start
1. Prerequisites
Ensure you are running Neovim 0.12+ (nightly or latest stable). You will also need:
2. Installation
# Clone your fork (replace <your_username> with your GitHub handle)
git clone https://github.com/<your_username>/whipsmart.nvim.git ~/.config/nvim
# Start Neovim
nvim
🛠️ Package Management
Whipsmart provides two ways to manage your plugins:
The "Lazy" Way (High-Level UI)
Press <leader>pm to open the Package Manager Menu. This dashboard allows you to:
- Check for updates
- Install new plugins
- Disable/Enable existing plugins
- Clean up unused packages
The "Native" Way (Low-Level Access)
Whipsmart also exposes the raw vim.pack primitives:
<leader>ps: Sync (Triggersvim.pack.update()to fetch new metadata).<leader>pi: Inspect (View current plugin status offline).:w: Inside the update buffer, write to disk to apply changes.
🏗️ Project Layout
~/.config/nvim/
├── init.lua # Core options, keymaps, and modular loader
├── UNIFIED.md # The Grand Unified roadmap and local instructions
├── nvim-pack-lock.json # Plugin lockfile (Tracked in Git)
└── lua/
└── plugins/ # Individual plugin modules
├── core_ui.lua # Which-key, Colorscheme, Oil, Mini.nvim
├── lsp.lua # LSP, Mason, and Tooling
├── telescope.lua # Fuzzy Finding
├── cmp.lua # Autocompletion and Snippets
├── treesitter.lua # Syntax Highlighting
├── format.lua # Conform.nvim Formatting
└── pack_manager.lua # pack-manager.nvim UI setup
💻 Customization
Adding a New Plugin
To add a plugin, create a new .lua file in lua/plugins/. Whipsmart will automatically detect and load it.
Example lua/plugins/harpoon.lua:
vim.pack.add({ "https://github.com/ThePrimeagen/harpoon" })
-- Your configuration here
Machine-Specific Settings
Whipsmart uses hostname detection. Open init.lua and locate the Machine Specific Setup section to add overrides for your specific hardware.
📜 Credits
Whipsmart started as a fork of kickstart.nvim and maintains its spirit of being a starting point rather than a distribution.