smooooth/README.md
2025-05-21 20:58:08 +10:00

78 lines
1.8 KiB
Markdown

# man, it's a hot one
`smooooth` is a service to "hot reload" flake-based nixos configurations.
## like seven inches from a midday sun
it will detect changes to the specified path, 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 started via a .desktop, instead of in situ.
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.