nix/README.md

97 lines
2.4 KiB
Markdown
Raw Normal View History

# My nix conf
## 🏠 Home Setup
```bash
nix run home-manager/release-23.05 -- switch --flake .
```
## 🏗️ System Setup
### 👷 "Manual"
1. Boot Installer
2. Clone repo
3. Setup partitions
```bash
sudo nix run --extra-experimental-features flakes --extra-experimental-features nix-command github:nix-community/disko -- --mode disko --flake path:$PWD#nixos-pulse
```
4. Run installer
```bash
sudo nixos-install --flake .#nixos-pulse
```
### 🚀 Fully-Automated
<sub> 🚨 This will WIPE EVERYTHING on the specified system <br> ⚠️ ensure proper sshd & firewall key setup for remote systems </sub>
```bash
nix run github:numtide/nixos-anywhere -- --flake path:$PWD#nixos-pulse root@1.2.3.4
```
## 🔄 Updates
Run this to keep your system up-to-date.
```bash
nix flake update
sudo nixos-rebuild --flake .#nixos-pulse switch
```
Run this to keep your home up-to-date.
```bash
nix flake update
home-manager switch --flake .
```
## Plasma
Add GUI settings to plasma.nix
```bash
nix run github:pjones/plasma-manager | rg -v khotkeysrc | rg -v "\[ \]" > plasma.new.nix
diff plasma.nix plasma.new.nix
# copy over as needed
```
2023-10-05 17:45:31 +02:00
## 🛠️ Nix Configuration Structure
Here's a brief rundown of the directory structure:
### Top-Level Files
- `flake.nix`: Nix Flake configuration file.
- `configuration.nix`: Main NixOS system configuration entry point.
- `disko.nix`: Disk and filesystem configuration.
- `hardware.nix`: Hardware-related configurations like drivers.
- `home.nix`: Configurations related to user home directories. (home-manager)
- `users.nix`: User account and privilege settings.
### `home-mods` Directory
Stores modules related to specific user applications or environments.
- `dev/default.nix`: Developer-specific configurations.
- `firefox/default.nix`: Firefox browser settings.
- `plasma/default.nix`: KDE Plasma desktop settings.
- `virt/default.nix`: Virtualization-related settings.
### `os-mods` Directory
Holds system-level modules for network, virtualization, etc.
- `network/default.nix`: Network-related settings.
- `virt/default.nix`: OS-level virtualization settings.
## 🙏 Made possible by
- NixOS: https://nixos.org/
- https://github.com/nix-community/nixos-anywhere
- https://github.com/nix-community/disko
- Countless great examples e.g.:
- https://github.com/etu/nixconfig
- https://github.com/hlissner/dotfiles
- Caffeine https://en.wikipedia.org/wiki/Caffeine