Neovim Setup βœ¨πŸŽ―πŸ“

Welcome to the heart of my terminal editing workflow β€” Neovim, fully pimped and optimized for speed, clarity, and power. πŸš€πŸ–₯️⚑


πŸ› οΈ Core Configuration πŸ”§

  • Enabled via Nix 🐧: Neovim is managed declaratively through Nix, ensuring reproducibility and ease of updates.
  • Aliases & Defaults πŸ”„: nvim is set as the default editor, with aliases for vi, vim, and vimdiff for convenience.
  • Lua-powered 🐍: The entire config is Lua-based, stored in ~/Dotfiles/home-manager/modules/cli/nvim/lua for modularity and performance.

🎨 Theme & Appearance 🌈

This Neovim setup integrates seamlessly with the global Juna theming system. The colorscheme automatically synchronizes with your active system-wide theme, ensuring a consistent look and feel across all applications.

Key Features:

  • Dynamic Theming: Your Neovim theme will always match your selected Juna theme.
  • Automatic Reloading: When you change your system theme using the toggle-theme script, all running Neovim instances will automatically update their colorscheme.
  • Default Theme: By default, the setup uses Nord ❄️ for its cool, clean, and focused aesthetic.

Example Theme Settings (for Nord)

Juna automatically applies theme-specific settings. Here is an example of the settings applied for the Nord theme:

  • g:nord_contrast = true πŸ”³ β€” enhanced contrast for better readability
  • g:nord_borders = false 🚫 β€” minimal borders for clean UI
  • g:nord_disable_background = false πŸ–ΌοΈ β€” keep the background
  • g:nord_italic = false 🚫 β€” no italics to avoid distractions
  • g:nord_uniform_diff_background = true 🎨 β€” consistent diff backgrounds
  • g:nord_bold = false βœ–οΈ β€” subtle bold text

🧩 Juna Integration

The integration with Juna is configured in the themes/juna.nix file and provides several options:

  • installAllThemes: Set to true to install all available Neovim themes from Juna, allowing for instant theme switching within Neovim.
  • themeAutoReload: Enabled by default, this feature ensures that any theme change at the system level is immediately reflected in all running Neovim instances without requiring a restart.

πŸ”Œ Plugins & Features ⚑✨

I use a curated set of plugins to supercharge coding and navigation:

Completion & Snippets πŸ€–πŸ’‘

  • nvim-cmp & cmp-nvim-lsp for smart autocompletion
  • luasnip + friendly-snippets for powerful snippet support

UI Enhancements 🌟πŸ–₯️

  • alpha-nvim β€” Custom startup dashboard πŸšͺ
  • lualine-nvim β€” Fancy statusline with useful info πŸ“Š
  • indent-blankline-nvim β€” Visually clean indentation guides β†ͺ️
  • nvim-notify β€” Notification system πŸ””
  • telescope-nvim β€” Fuzzy finder powerhouse πŸ”­
  • nvim-tree-lua β€” File explorer πŸ“
  • vim-visual-multi β€” Multi-cursor editing ✍️

Code & Language Support πŸ§‘β€πŸ’»πŸ’»

  • nvim-lspconfig for LSP setup supporting multiple languages 🌐
  • Language servers like ccls, clang-tools, gopls, pyright, lua-language-server, typescript-language-server, and more installed as extra packages πŸ“¦
  • Treesitter parsers for Bash, C, C++, Go, Lua, Python, PHP, JSON, YAML, and others for syntax highlighting and code awareness 🌳

Quality of Life πŸ§ΉπŸ› οΈ

  • conform-nvim β€” formatting support 🧼
  • nix-develop-nvim β€” handy Nix development integration 🐧
  • noice-nvim β€” enhanced command-line UI πŸ’¬
  • render-markdown-nvim & markdown-preview-nvim for Markdown editing πŸ“

πŸ—οΈ Extra Packages πŸ“¦

The config extends Neovim’s power with language servers and tools installed at the system level, providing:

  • Robust language support for C, Go, Lua, Python, TypeScript, and more πŸ› οΈ
  • Linters like ruff for Python 🐍
  • Tools like nixd for Nix language support ❄️

Why This Setup? πŸ€”πŸ’‘

  • Reproducible & Portable 🌍: Configured declaratively through Nix to keep your setup consistent across machines.
  • Performance Focused ⚑: Lua-based config with minimal overhead, optimized for smooth operation.
  • Balanced Look & Feel 🎨: Clean, distraction-free UI with powerful features always within reach.
  • Developer Productivity πŸš€: All your essential tools and workflows integrated seamlessly.

Ready to dive deeper? πŸ”₯ Check out the lua directory for all the juicy config details! 🐍⚑