1
Fork 0

Update documentation

This commit is contained in:
caem 2024-07-26 21:08:48 +02:00
parent 9226d8a7e6
commit b543fe2ddc
Signed by: caem
GPG key ID: 69A830D03203405F

View file

@ -1,5 +1,5 @@
# nixos-system-config # nixos-system-config
My NixOS configuration. My modular NixOS configuration.
## About ## About
This is the NixOS configuration that I daily drive on my system. Feel free to use, This is the NixOS configuration that I daily drive on my system. Feel free to use,
@ -12,38 +12,37 @@ modify and share this configuration to your heart's content, no attribution requ
## Layout ## Layout
``` ```
├── assets ; Images used by the config and repo ├── assets ; Binary assets tracked in git
│   └── wallpaper.png │   ├── screenshot.png
│   └── wallpaper.jpg
├── dotfiles ; GNU stow compatible dotfiles directory
│   └── ... ; Stores configurations that do not depend on Nix
├── flake.lock ├── flake.lock
├── flake.nix ; Entry point ├── flake.nix ; Entry point
├── machines ; Machine specific configuration ├── home ; home-manager configuration
│   └── workstation │   ├── default.nix ; User and home-manager options
│   ├── configuration.nix │   ├── packages ; Per-package home-manager configuration
│   ├── hardware-configuration.nix ; Modified hardware configuration
│   └── persist.nix ; Impermanence configuration
├── packages ; Sets of packages to install and configure
│   ├── sets
│   │   ├── games.nix
│   │   └── ... │   │   └── ...
│   └── wm ; Package sets and basic config for WM and DE │   └── persist.nix ; Home opt-in state directories and files
│   ├── hyprland.nix ├── hosts ; Host configurations
│   └── workstation
│   ├── default.nix ; Host configuration.nix equivalent
│   ├── hardware-configuration.nix ; Host hardware specific configuration
│   └── persist.nix ; System wide opt-in state directories and files
├── lib ; Custom helper functions
│   ├── default.nix
│   └── ...
├── modules ; System modules and sets of packages
│   ├── desktop
│   │   ├── apps
│   │   │   └── ...
│   │   └── environments
│   │   └── ...
│   └── system
│   └── ... │   └── ...
├── README.md ├── README.md
├── secrets ; Git ignored folder to store confidentials └── secrets ; Location of secrets not tracked in the git tree
│   └── hu └── pass
│   └── pass ; Hashed password file for user
└── users
└── hu ; User specific configuration
├── packages ; Package configurations
│   ├── firefox.nix ; Configurations can be for NixOS or home-manager
│   ├── ...
│   └── zsh
│   ├── config ; Non-nix package config directory
│   │   └── conf.d
│   ├── zsh-home.nix ; For home-manager
│   └── zsh.nix ; For NixOS
├── persist.nix ; Impermanence configuration for the user
└── user.nix
``` ```
## Installing ## Installing
@ -71,7 +70,14 @@ and call it `root-blank`.
After you've mounted all the subvolumes and EFI partition (`/boot`) in `/mnt` After you've mounted all the subvolumes and EFI partition (`/boot`) in `/mnt`
clone this repository in to `/mnt/nix/config`. Adjust all the block ids of the partitions clone this repository in to `/mnt/nix/config`. Adjust all the block ids of the partitions
in `hardware-configuration.nix` and create a hashed password using `mkpasswd` and store it in `hardware-configuration.nix` and create a hashed password using `mkpasswd` and store it
in the `secrets/{user}` directory as `pass`. in the `secrets` directory as `pass`.
Finally, in the config directory run `nixos-install --flake '.#'`, reboot and you're done. Finally, in the config directory run `nixos-install --flake '.#'`, reboot and you're done.
## Updating
This configuration sets up [nh](https://github.com/viperML/nh) for a prettier and more convenient
way of keeping the system up to date. To update you can simply run:
```sh
nix flake update /nix/config
nh os switch
```