My very personal dotfiles. Do not clone them down and use my setup as is. This is my baby. However, feel free to take out bits and pieces.
Clone this repository to your home directory:
git clone https://github.com/mvpopuk/dotfiles.git ~/.dotfiles
cd ~/.dotfilesRun the installation script to create symbolic links:
./install.shThis will:
- Back up any existing configs (creates
.backupfiles) - Create symlinks from your dotfiles to their proper locations:
~/.dotfiles/nvim→~/.config/nvim~/.dotfiles/kitty→~/.config/kitty~/.dotfiles/tmux→~/.config/tmuxor~/.tmux.conf~/.dotfiles/zsh/.zshrc→~/.zshrc
If you prefer to link only specific configs:
# Neovim
ln -s ~/.dotfiles/nvim ~/.config/nvim
# Kitty
ln -s ~/.dotfiles/kitty ~/.config/kitty
# Tmux
ln -s ~/.dotfiles/tmux/tmux.conf ~/.tmux.conf
# Zsh
ln -s ~/.dotfiles/zsh/.zshrc ~/.zshrcThe Neovim configuration includes:
- LSP support - PHP (Intelephense), TypeScript, Lua, and more
- Auto-completion - nvim-cmp with multiple sources
- Fuzzy finding - Telescope for files, grep, LSP symbols
- Git integration - Fugitive and Lazygit
- Formatting - none-ls (Pint for PHP, ESLint for JS/TS)
- Testing - Neotest with PHPUnit, Jest, and Vitest adapters
- Debugging - nvim-dap with PHP/Xdebug support
- AI assistance - GitHub Copilot with chat
- Which-key - Interactive keymap discovery
- No auto-format on save for PHP and JavaScript - use manual commands instead
Leader key: <Space>
💡 Tip: Press <Space> and wait to see available keybindings with which-key!
Code Actions:
<leader>ca- Open code action menu (includes imports, quick fixes, refactoring)
Formatting:
<leader>lf- Manually format current buffer (null-ls)<leader>lp- Run Pint on current PHP file (checks vendor/bin/pint first)<leader>le- Fix all ESLint issues (code actions)<leader>lE- Format with ESLint (alternative)<leader>W- Save without formatting
Testing (Neotest):
<leader>rn- Run nearest test<leader>rf- Run current file tests<leader>rs- Run entire test suite<leader>rl- Re-run last test<leader>rd- Debug nearest test (with DAP)<leader>rt- Toggle test summary panel<leader>ro- Show test output<leader>rO- Toggle output panel<leader>rS- Stop running test
Debugging (nvim-dap):
<leader>db- Toggle breakpoint<leader>dc- Continue/Start debugging<leader>di- Step into<leader>do- Step over<leader>dO- Step out<leader>dt- Terminate debug session<leader>du- Toggle debug UI<leader>de- Evaluate expression (normal/visual mode)
Navigation:
<leader>ff- Find files<leader>fg- Live grep<leader>fb- Browse buffers<leader>gd- Go to definition<leader>fr- Find references
Copilot:
Alt+a- Accept inline suggestionAlt+Enter- Open Copilot panelCtrl+l/Ctrl+h- Next/previous suggestionCtrl+e- Dismiss suggestion
To use the debugger with PHP/Laravel:
- Install Xdebug in your PHP environment
- Configure Xdebug in
php.ini:xdebug.mode=debug xdebug.start_with_request=yes xdebug.client_port=9003
- In Neovim:
- Set breakpoint:
<leader>db - Start debugging:
<leader>dc - Make a request to your app
- Debug UI will open automatically!
- Set breakpoint: