With Hyprland moving to Lua, I may make the switch to Lua-based configuration for my Hyprland and Neovim based workflow.
I went with nvf over stock Neovim so that I could handle everything in one language (Nix) as much as possible. I have a few Lua snippets, but that’s all.
Now with Hyprland making the switch to Lua as well, I’ve been considering importing dedicated Lua files into my Nix config.
So, what do you do? Write Nix as much as possible? Use Nix to import your Lua/yaml/etc config? Write other languages as snippets in your .nix files?
I prefer using the native language usually, but i also don’t manage my dotfiles with home manager at all anymore, because i have scripts that need to edit my dotfiles with sed, so if i need to then rerun home manager switch again every time it slows down my scripts a lot. I know there’s out-of-store symlinks for that, but that didn’t work either cause sed would always error out when trying to follow the symlink chain, so i just gave up on it.
No, I don’t configure using nix, but partially because I don’t use home-manager. So I just write in the native config language.
The other reason is that I don’t believe configuring everything in nix is sustainable. You’re adding another layer that needs to be maintained by someone, and there isn’t much benefit. The native config is as much part of my configuration as a pure nix configuration would be.
And it doesn’t really matter whether it’s dedicated files or just inline in a nix module. I decide based on complexity. My neovim config is spread out over many files, but all other configs are inline.
Generally, if there’s a NixOS/home-manager module for it I’ll use that option. Having everything in one place is more important to me tho than having it in one language so there’s a few things that I have the native config lang for. nvf is a godsend tho bc I have tried so many times to configure neovim the “regular” way and it is just incomprehensible for new people (or at least it is for me) who have not been in that ecosystem for the seemingly millions of changes the config/setup process has endured over the years
I usually prefer using nix because it has type checking and the syntax highlighting works without having to put it in its own file. (Although larger configs need their own file anyway)
But I’m not too bothered by having other languages in there.



