1.8 KiB
man, it's a hot one
smooooth
is a service to "hot reload" flake-based nixos configurations.
like seven inches from a midday sun
smooooth
will detect changes to the specified flake, wait for blockers to resolve,
then trigger build + activation of the new config.
blockers can be specified as any executable name. they will prevent reloads
until they disappear or change their working directory.
this way, smooooth
can wait for your current editor/shell/you-name-it session
to conclude before rebuilding anything.
the only strict requirement is that said executable handles its cwd properly,
so it can be read from the procfs.
this may conflict with behaviour of some editors (ie. vscode), particularly if
they are started via a .desktop shortcut.
a brief disclaimer
smooooth
is in a very early but entirely functional state.
it may be subject to changes, full rewrites, or unending neglect.
enjoy !
i hear you whispering the words
simply add smooooth.url = git+https://git.atagen.co/atagen/smooooth.git
to your
flake inputs, and the reciprocal { smooooth }
entry to your output function.
now you can import smooooth.nixosModules.smooooth
in your config modules, and
utilise the below listed options to get started !
to melt everyone, but you stay so cold
services.smooooth.enable
bool
Enable the smooooth nixos hot reloader.
services.smooooth.blockers
listOf str
A list of executable names that are allowed to block the reload.
services.smooooth.path
str
The full path to the root of your flake.
services.smooooth.pollingRate
int
How frequently to poll when waiting on a blocked reload.
services.smooooth.nixPackage
package
Your preferred package providing a nix
executable.
services.smooooth.package
package
Your preferred smooooth
package.