102 lines
2.7 KiB
Markdown
102 lines
2.7 KiB
Markdown
# My nix conf
|
|
|
|
## 🏗️ 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 # this assumes your hostname is the same as in the config
|
|
```
|
|
|
|
Run this to keep your home up-to-date. (Assuming you manage home-manager seperately and don't have it integrated into your osConfiguration)
|
|
```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
|
|
```
|
|
|
|
## 🛠️ Nix Configuration Structure
|
|
|
|
Here's a brief rundown of the directory structure:
|
|
|
|
### Top-Level Files
|
|
|
|
- `flake.nix`: Nix Flake configuration file.
|
|
|
|
#### `home-mods` Directory
|
|
|
|
Stores modules related to specific user applications or environments.
|
|
|
|
#### `os-mods` Directory
|
|
|
|
Holds system-level modules for network, virtualization, desktop etc.
|
|
|
|
#### `users` Directory
|
|
|
|
Holds home-manager configuration for the users listed in `users.nix`
|
|
|
|
#### `systems` Directory
|
|
|
|
Holds system specific nixos configuration (e.g. hardware quirks).
|
|
|
|
## 🙏 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
|
|
|
|
## License
|
|
|
|
My nix conf
|
|
Copyright (C) 2024 Tristan Druyen
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU Affero General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU Affero General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Affero General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|