# My NixOS configuration My machines and dotfiles management using Nix / NixOS. ## Installation Project contains a devshell installing all needed and a [Taskfile](https://Taskfile.dev) is available to help manage elements whether Home-Manager or NixOS configuration. ``` task --list-all task: Available tasks for this project: * check:flake: Check flake * check:sh: Check SH files, will call all check:sh:* tasks * check:sh:shellcheck: Pass Shellcheck on all *.sh files * check:sh:shfmt: Pass shfmt in check mode on all sh files * check:typos: Check typos in all files * home:*:*: Manage Home-Manager configuration, use home:verb:target format * home:gc: Garbage collect Home-Manager packages * home:list-gen: List Home-Manager generations * host:*:switch: Switch both Home-Manager and NixOS generations * host:*:update: Update package version then build NixOS and Home-Manager * nixos:*:*: Manage NixOS build, use nixos:verb:target format * nixos:gc: Garbage collect NixOS * nixos:list-gen: List Nixos generations ``` Managing *NixOS* installation, you can use all `nixos:*` targets for example: ```shell # build mrmeeseeks nixos: task nixos:build:mrmeeseeks # build/switch nixos installation for mrmeeseeks task nixos:switch:mrmeeseeks # build ephase home configuration for mrmeeseeks: task home:build:mrmeeseeks # build / switch ephase home configuration for mrmeeseeks ``` ## Update nixpkgs version Update packages repositories version can be done with `host::update`: ``` task host:mrmeeseeks:update ``` `flake.lock` file will be updated then both NixOS and Home-Manager will be rebuilt. Note than new generation will not be activated, to do so you need to: ``` task host:mrmeeseeks:switch ```