nix/README.md

57 lines
1.9 KiB
Markdown

# 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:<hostname>: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
```