-- M O O N L I G H T.nvim
-- _..._ _..._ _..._ _..._ _..._
-- .:::::::. .::::. `. .:::: `. .::' `. .' `.
-- ::::::::::: :::::::. : :::::: : ::: : : :
-- ::::::::::: :::::::: : :::::: : ::: : : :
-- `:::::::::' `::::::' .' `::::: .' `::. .' `. .'
-- `':::'' `'::'-' `'::.-' `':..-' `-...-'
--
--------------------------------------------------------------------->
-- ┌┬┐ ┌─┐ ┌─┐ ┌┐┌ ┬ ┬ ┌─┐ ┬ ┬ ┌┬┐ Z
-- │││ │ │ │ │ │││ │ │ │ ┌ ┬─┼ │ Z
-- ┴ ┴ └─┘ └─┘ ┘└┘ ┴─┘ ┴ └─┘ ┴ ┴ ┴ .nvim z
--------------------------------------------------------------------->
Moonlight.nvim is a custom Neovim configuration focused on productivity and maximum comfort. Written entirely in Lua, it follows a declarative setup using the lazy.nvim plugin manager.
Designed to feel like a full-featured IDE, Moonlight.nvim balances minimalism and power. LSP and tooling (formatter, linter, etc.) are disabled by default and can be enabled declaratively.
To initialize tools, simply run:
:MasonToolsUpdateExplore
lua/dev/masonto manage your LSP, linters, and formatters declaratively. Check Requirements 📦
Linux 🐧:
neovimbashcoreutilscurlgitgccmakezipunzipgolualuarockspythonpython-pipnodejsnpmcargoripgrepfdtree-sitterimagemagicktrash-cli
sudo pacman -Sy neovim bash coreutils curl git gcc make zip unzip go lua luarocks python python-pip nodejs npm cargo ripgrep fd tree-sitter imagemagick trash-cliMacOS 🍎:
neovimbashcoreutilscurlgitgccmakezipunzipgolualuarockspythonpython-pipnodejsnpmcargoripgrepfdtree-sitterimagemagick
brew install neovim bash coreutils curl git gcc make zip unzip go lua luarocks python node rust ripgrep fd tree-sitter-cli imagemagickBefore installation: make sure to back up your existing Neovim configuration. If Moonlight.nvim fails to start, you can easily restore it. If any issues occur, please open a GitHub issue so it can be fixed quickly.
config_dir=~/.config/nvim if [[ -d $config_dir ]]; then echo "Backing up existing config to $config_dir" mv ~/.config/nvim ~/.config/nvim.bak fi mkdir -p '$config_dir' clone="git clone --depth 1 https://github.com/maarutan/moonlight.nvim.git '$config_dir'" bash -c "$clone" nvim$config_dir = "$env:USERPROFILE\AppData\Local\nvim" if (Test-Path $config_dir) { Write-Host "Backing up existing config to $config_dir.bak" Move-Item -Path $config_dir -Destination "$config_dir.bak" -Force } git clone --depth 1 https://github.com/maarutan/moonlight.nvim.git $config_dir nvim
| Dashboard | Python |
|---|---|
![]() |
![]() |
The Moonlight.nvim setup is designed for the Kitty terminal. It supports inline image previews and advanced copy functionality through
kitty-scrollback.nvim, as well as dynamic font and layout synchronization viakitty-lock.json.Kitty is strongly recommended for the full Moonlight.nvim experience.
If you want to configure
kitty_ternfor font control, navigate to:
lua/plugins/tools/kitty_term/configThere you'll see:
M.setup = { config_path = "kitty-lock.json", kitty_path = "~/.config/kitty/font.cfg", }
config_path— path tokitty-lock.jsonstarting from yournvim/directory.kitty_path— path to your Kitty configuration file containing font settings.
<leader>ku— Kitty Font +1<leader>kd— Kitty Font -1<leader>kf— Kitty Font Picker<leader>ks— Kitty Size Picker<leader>kr— Kitty Reload Config<leader>ki— Kitty Status Config
lua/plugins/which_key.lua- This is a dedicated plugin that provides preview and organization of all plugin-specific keymaps.
- It allows you to quickly visualize and explore available keybindings through a dynamic pop-up menu.
- Used exclusively for plugin-defined keymaps to keep configuration modular and decluttered.
lua/core/keymaps.lua- Contains all default, core, and fallback keybindings for Neovim.
- These mappings work even if lazy.nvim is not loaded or plugins are disabled.
Together, these two layers form a clean separation between core navigation and plugin integrations, ensuring that your environment remains responsive and predictable even during partial plugin loading.
See the License 🔑
Built with ❤️ by maarutan
I wish you maximum productivity. ⚡⚡⚡

