Modern, batteries-included Neovim configuration for web development, paired with a beautiful Kitty terminal setup and macOS window management tools.
✨ Fast, modular, and designed for productivity!
- Neovim 0.11+
Install Neovim - Node.js (v18+)
Install Node.js - Rust nightly (for some plugins)
Install Rust - Nerd Font (e.g. JetBrainsMono Nerd Font)
- Kitty Terminal
Install Kitty - macOS: yabai, skhd for window management
- Optional: Ripgrep, fd, fzf, lazygit
- Use your package manager for all dependencies.
- Example for Homebrew (macOS):
brew install neovim node kitty gh ripgrep fd fzf lazygit yabai skhd
- Follow instructions, make sure to install Nightly
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-
Clone this repo:
git clone https://github.com/Pouiiro/PouiiT-Files ~/.config -
Symlink or copy the configs:
ln -s ~/.config/nvim ~/.config/nvim ln -s ~/.config/kitty ~/.config/kitty
-
Install plugins:
- Open Neovim and plugins will auto-install via lazy.nvim.
- On first run, wait for Treesitter to finish installing parsers (watch the status line).
- Run
:Masonto install LSP servers, formatters, and linters as needed.
-
Set your terminal font to JetBrainsMono Nerd Font (or another Nerd Font).
- ⚡ LSP: Autocompletion, diagnostics, code actions for JS/TS, HTML, CSS, GraphQL, Lua, etc.
- 🧹 Formatting & Linting: Biome, Prettier, shfmt, etc.
- 🤖 Copilot & CodeCompanion: AI code suggestions and chat (with custom prompts).
- 🎨 UI: Tokyo Night, Catppuccin, NeoSolarized themes, Noice, Lualine, Flash, Treesitter, NvimTree, Snacks, etc.
- 🌈 Tailwind: Color highlighting, folding, tools for Tailwind CSS.
- 📝 Markdown: Live preview, enhanced rendering.
- 🖥️ Kitty: Transparent, themed, fast, with custom keybindings.
- 🍏 macOS Window Management: Yabai (tiling), skhd (hotkeys)
All keymaps are defined in nvim/lua/config/keymaps.lua and grouped below for easy reference.
| Keymap | Action |
|---|---|
<Tab> / <S-Tab> |
Next/previous buffer |
<C-b> |
Show buffer picker (Snacks) |
<C-k> |
Close buffer |
<leader>sa |
Snacks: all pickers |
<leader>sf |
Terminal selector |
| Keymap | Action |
|---|---|
ss |
Horizontal split |
sv |
Vertical split |
sc |
Close split |
<C-'> |
Resize window left |
<C-ö> |
Resize window right |
<C-ä> |
Resize window up |
<C-å> |
Resize window down |
| Keymap | Action |
|---|---|
<C-a> |
Select all |
<C-e> (insert) |
Move to end of line in insert mode |
<C-i> (insert) |
Move to start of line in insert mode |
| Keymap | Action |
|---|---|
<C-x> |
Show diagnostics float |
<C-f> |
Code actions (LSP) |
<C-h> |
Hover docs (LSP) |
<C-j> |
Signature help (LSP) |
<C-,> |
Go to next diagnostic |
<C-m> |
Go to previous diagnostic |
<C-vr> |
Rename variable (LSP) |
| Keymap | Action |
|---|---|
<C-n> (insert) |
Next Copilot suggestion |
<C-y> (insert/cmd) |
Accept Copilot suggestion |
<leader>ca |
CodeCompanion chat/actions |
<leader>cA |
CodeCompanion actions palette |
<leader>cc... |
Copilot Chat actions (see below) |
| Keymap | Action |
|---|---|
<leader>twf |
Run Vitest watch (file) |
<leader>twr |
Run Vitest watch (project) |
| Keymap | Action |
|---|---|
<leader>tu |
Remove unused imports |
<leader>tv |
Remove unused variables |
<leader>ti |
Add missing imports |
<leader>tr |
Rename file |
Clone and run the setup script to install everything:
git clone https://github.com/Pouiiro/PouiiT-Files ~/.config
cd ~/.config
chmod +x setup.sh
./setup.shThis will:
- Install all dependencies (Neovim, Kitty, Node.js, etc.)
- Symlink configs for Neovim, Kitty, yabai, skhd
- Set up AI allowed directories
- Guide you to set your terminal font
Open Kitty and run nvim to start!
<leader>ca— Open CodeCompanion chat/actions<leader>cA— Open CodeCompanion actions palette
- Show diagnostics:
<leader>x - Jump to any word/char (Flash):
sthen type the target - Jump to syntax node (Flash Treesitter):
Sthen select node - Toggle file explorer:
<leader>e
By default, AI features (Copilot, CodeCompanion) are only enabled in public or allowed directories. To customize where AI is available, set the environment variable NVIM_AI_ALLOWED_PATHS:
export NVIM_AI_ALLOWED_PATHS="~/dev,~/projects,~/dotfiles"This variable should be a comma-separated list of absolute or ~-epanded paths. Only files inside these directories will have AI features enabled. See lua/utils/copilot-private.lua for details.
- Transparent background, Tokyo Night, Gruvbox, NeoSolarized, Kanagawa themes
- Font: JetBrainsMono Nerd Font
- Custom keybindings for copy/paste (Ctrl+C/V)
- See
kitty/*.conffor details
- Yabai: Tiling window manager for macOS
- skhd: Hotkey daemon for window management
- See
yabai/yabaircandskhd/skhdrcfor configs
- 🚦 Wait for Treesitter to finish installing on first launch!
- 🧩 Use
:Masonto install/manage LSP servers and tools. - 📚 Use
:Tutorto learn basic Vim/Neovim motions. - 🔍 Use
<space>shto search Neovim help. - 🧑🔧 Explore
:Lazyfor plugin management. - 🛠️ Check
lua/keymaps.luafor all custom keymaps. - 🩺 For troubleshooting, use
:checkhealth.
- Open Neovim and run:
:Lazy update
Feel free to fork and adapt for your own workflow! PRs and suggestions welcome.
- Use Karabiner Elements to remap your CapsLock key:
- CapsLock → Esc (when pressed alone)
- CapsLock → Ctrl (when held with another key)
- CapsLock → CapsLock (when pressed with Shift)
- The config is included:
karabiner/karabiner.json
- Use AutoHotkey to get similar keybindings.
- Script included:
autohotkey/nvim_bindings.ahk