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 usually prefer to use nix, as it’s a real language and basically serves as macro language/preprocessor for the configs that don’t have functions or such (obviously in this case Lua does) . So it gives me everything in one language (thank I generally kinda like), with proper highlighting, I can reuse code, and I can more easily cross reference between different services/apps.
That said, I didn’t know hyprland was going to make this switch. I guess I finally have to go see if I will like niri.
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 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.
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.



