Declarative NixOS module to provision Neovim with a Lua-based config scaffold, Catppuccin mocha green theme and essential plugins.
This module is part of Typovrak NixOS
, a fully modular and declarative operating system configuration built entirely with :
- ๐งฑ 30+ standalone modules : Each managing a specific tool, feature or aesthetic like
zsh
,i3
,lighdm
,polybar
,gtk
and more. - ๐จ Catppuccin Mocha : The default theme across terminal, GUI, and login interfaces.
- ๐ก๏ธ 100% FOSS compliant : No proprietary software included unless explicitly chosen.
- ๐งโ๐ป Built for developers : Optimized for speed, keyboard-centric workflows and expressive CLI tooling.
Explore the full system : ๐ github.com/typovrak/nixos
Caution
This module is opinionated, it may override, replace, or remove files and settings without prompt. To avoid unexpected changes, back up your existing files or fork this module to take full control. Follow this documentation to avoid any of this problem.
- ๐ Secure config scaffold : Creates
~/.config/nvim
and subdirectories with700
/600
permissions. - ๐จ Catppuccin mocha green : Deploys
catppuccin.lua
theme inlua/plugins
. - โ๏ธ Plugin templates : Includes starter configs for
blink
,conform
,gitsigns
,lazydev
,LSP
,treesitter
,telescope
,todo-comments
,which-key
and more. - ๐ Language support : Installs
go
,rustup
,python3
,ruby
for LSP and tooling. - ๐ Clipboard integration : Adds
xclip
andcopyq
for system clipboard support. - ๐ Idempotent : Safe to run on every
nixos-rebuild
, preserves and updates config files. - ๐ฎ Evolving : Configuration is under active developmentโexpect frequent improvements.
- ๐พ Manual backups : Backup commands are provided in the documentation to preserve existing files before changes if needed.
โฏ tree -a -I ".git*"
.
โโโ blink.lua # auto completion and word suggestions
โโโ catppuccin.lua # catppuccin mocha green theme
โโโ configuration.nix # module configuration
โโโ conform.lua # code formatter
โโโ gitsigns.lua # git integration
โโโ init.lua # main entry point of the configuration
โโโ lazydev.lua # lazy loading for dev tools and lsp
โโโ LICENSE.md # MIT license
โโโ nvim-lspconfig.lua # base configuration for lsp servers
โโโ nvim-treesitter.lua # syntax highlighting and parsing via treesitter
โโโ README.md # this documentation
โโโ telescope.lua # fuzzy finder and navigation
โโโ todo-comments.lua # highlights todo, fixme and related comments
โโโ which-key.lua # popup help for keybindings
1 directory, 14 files
Requires NixOS 24.11 or newer.
The target user must be defined in config.username
. See typovrak main nixos configuration for more details.
Before proceeding, back up existing configuration if needed
cp ~/.config/nvim{,.bak}
Fetch the module directly in your main nixos configuration at /etc/nixos/configuration.nix
using fetchGit
# /etc/nixos/configuration.nix
let
nixos-nvim = fetchGit {
url = "https://github.com/typovrak/nixos-nvim.git";
ref = "main";
rev = "eea0e1d5fb671859b6729c2c788fad3d68de4eea"; # update to the desired commit
};
in
{
imports = [
/etc/nixos/hardware-configuration.nix # system hardware settings
/etc/nixos/variables.nix # defines config.username and other variables, see https://github.com/typovrak/nixos for more details
(import "${nixos-nvim}/configuration.nix")
];
}
Once imported, rebuild your system to apply changes
sudo nixos-rebuild switch
Want to personalize this module ?
Fork it and add this custom module in your main nixos configuration at /etc/nixos/configuration.nix
using fetchGit
let
nixos-nvim = fetchGit {
url = "https://github.com/<YOUR_USERNAME>/nixos-nvim.git";
ref = "main";
rev = "<COMMIT>"; # see below
};
in {
imports = [
/etc/nixos/hardware-configuration.nix # system hardware settings
/etc/nixos/variables.nix # defines config.username and other variables, see https://github.com/typovrak/nixos for more details
(import "${nixos-nvim}/configuration.nix")
];
}
Get the latest commit hash by executing
git clone https://github.com/<YOUR_USERNAME>/nixos-nvim.git &&
cd nixos-nvim &&
git log -1 --pretty=format:"%H"
Start coding now with nvim
!
- ๐ Neovim Lua guide : Learn how to write idiomatic Lua configurations for Neovim.
- ๐ง Awesome Neovim : Curated list of plugins, configurations and resources.
- ๐ ๏ธ Neovim documentation : Official reference for all built-in functions and features.
- ๐ Catppuccin for Neovim : Theme used in this module.
- ๐ lazy.nvim : Fast and modern plugin manager used in this setup.
Dive into typovrak.tv/nixos Catppuccin mocha green themed gateway to my GitHub and NixOS setup.
Browse every module, example and config in a sleek with an interactive interface that feels just like your desktop.
If this module saved you time, please โญ๏ธ the repo and share feedback.
You can also support me on โ Buy me a coffee
If you've ever rm -rf
ed your config by mistake or rebuilt for the 42nd time because a semicolon was missingโฆ
You're not alone, Welcome home !
๐งญ What youโll find is :
๐ป #nixos-setup
- get help with modules, rebuilds and configs.๐ #web-dev
- talk JS, TypeScript, React, Node and more.๐ง #open-source
- share your repos, contribute to others and discuss FOSS culture.โจ๏ธ #typing
- layouts, mechanical keyboards and speed goals.๐จ #ricing
- dotfiles, theming tips and desktop screenshots.
Everyone's welcome no matter how many times you've broken your system (except for Windows users) ๐
Made with ๐ by typovrak