# 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.