Skip to content

Commit d1585b5

Browse files
committed
refactor(docs): Complete documentation rewrite
It was really really out of date, and I still hadn't fully finished working on it!
1 parent 91ffb5b commit d1585b5

File tree

5 files changed

+217
-104
lines changed

5 files changed

+217
-104
lines changed

README.org

Lines changed: 158 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ My current NixOS (and constant changing) configuration
99

1010
Note: There are upcoming changes being actively made so documentation will change and may not necessarily be update to date!
1111

12-
* Table of Contents :TOC_3:noexport:
12+
* Table of Contents :TOC:noexport:
1313
- [[#highlights][Highlights]]
1414
- [[#references][References]]
1515
- [[#structure][Structure]]
@@ -21,20 +21,22 @@ Note: There are upcoming changes being actively made so documentation will chang
2121
- Multiple NixOS configurations, including laptop and desktop
2222
- Install and partitioning commands via [[https://github.com/casey/just][just]]
2323
- Declarative partitioning with [[https://github.com/nix-community/disko][disko]].
24-
- Flexible NixOS/Home Manager with module options**, easily toggle options with =modules.OPTION.enable=
25-
- Automatically append users to multiple hosts along with specific user settings for each user
24+
- Flexible NixOS and Home Manager configs through importable **feature flags**
25+
- Automatically append users to multiple hosts along with specific user settings for each user with a primary user and extra users
2626
- Modular configuration, easily add new users and machines
2727
- Wayland/X11 Setups
2828
- Multiple fully featured desktop environments (KDE Plasma 6)
29-
- Live image ISO build with Nvidia drivers, experimental nix features already enabled, unfree software usage, and some nice options for cli and emacs
30-
- Declarative themes with *theme* module and [[https://github.com/danth/stylix][stylix]]
31-
- Deployment of secrets using *agenix (with yubikey)* and evaluation secrets with *git-crypt*
32-
- Includes [[https://github.com/pre-commit/pre-commit][pre-commit]] scripts to make sure flake is correctly setup and ready to be published to a git repository
29+
- Live image ISO build with Nvidia drivers, experimental nix features already enabled, unfree software usage, and some nice options for cli
30+
- Declarative themes with [[https://github.com/danth/stylix][stylix]]
31+
- Deployment of secrets using *[[https://github.com/Mic92/sops-nix][sops-nix]] (with yubikey)* via a private repository called =nix-secrets=
32+
- Includes [[https://github.com/pre-commit/pre-commit][pre-commit]] scripts to make sure flake is correctly setup and ready for publication to a git repository
33+
- Remote building with desktop configurations
34+
- Built-in development shell via =direnv=
3335

3436
* References
3537
- [[https://github.com/runarsf/dotfiles][Runarsf's dotfiles]] and [[https://github.com/imatpot/dotfiles][imatpot's dotfiles]] - Custom library and inspiration for more traditional flake layout
3638
- [[https://github.com/llakala/nixos][Llakala's nixos config]] - Additional libraries for home-manager cli integration and inspiration for integrating more HM stuff into the NixOS-specific configs
37-
- [[https://github.com/Misterio77/nix-config][Mistero77's nix-config]] and [[https://github.com/Misterio77/nix-starter-configs][nix starter configs]] - Original inspiration for flake, now mostly using some opinionated settings and overlay/devshell setup
39+
- [[https://github.com/Misterio77/nix-config][Mistero77's nix-config]] and [[https://github.com/Misterio77/nix-starter-configs][nix starter configs]] - Original inspiration for flake, opinionated settings, overlay/devshell setup, and better home-manager/nixos split layout
3840
- [[https://github.com/hlissner/dotfiles][Hlissner's dotfiles]] - Security hardening configs
3941
- [[https://github.com/Baitinq/nixos-config][Baitinq's nixos-config]] - Partitioning scripts
4042
- [[https://github.com/theopn/dotfiles/tree/main][Theopn's]] and [[https://github.com/yutkat/dotfiles/tree/main][yutkat's dotfiles]] - Wezterm settings
@@ -43,117 +45,190 @@ Note: There are upcoming changes being actively made so documentation will chang
4345
- [[https://github.com/archer-65/nix-dotfiles][archer-65's nix-dotfiles]] - Structure of host configurations
4446
- [[https://lgug2z.com/articles/handling-secrets-in-nixos-an-overview/#managing-your-own-physical-machines][lgug2z Handling Secrets in NixOS Blogpost]] - Git-crypt implementation for secrets required during flake evaluation
4547
- [[https://github.com/Lillian-Violet/NixOS-Configuration][Lillian-Violet's NixOS-Configuration]] - some ISO/live-image settings
46-
- [[https://github.com/EmergentMind/nix-config/][EmergentMind's nix-config]] - just file integration and helpful secret tips
48+
- [[https://github.com/EmergentMind/nix-config/][EmergentMind's nix-config]] and [[https://github.com/EmergentMind/nix-secrets-reference][nix-secrets-reference]] - just file integration and helpful secret tips and nix-secrets deployment inspiration
4749
- [[https://github.com/x0ba/dotfiles][x0ba's dotfiles]] - Agenix NixOS/Home-Manager setup with Yubikey-support
4850
- [[https://github.com/Kranzes/nix-config][Kranzes' nix-config]] - Agenix formatting
49-
- [[https://github.com/babeuh/nix-config][Babeuh's nix-config]] - Yubikey secrets setup with age (most importantly, pcsd service startup during boot process)
5051
- [[https://github.com/sickle-phin/dots-nix/][sickle-phin's dots-nix]] - Extra Nvidia environment variables
5152

5253
* Structure
53-
Here's an overview of the repo's file structure (Generated with =eza --icons=never --tree=):
54+
Here's an overview of the repository's file structure (Generated with =eza --icons=never --tree=):
5455
#+begin_src
5556
./
56-
├── documentation/
57+
├── checks/
58+
├── core/
59+
│ ├── extras/
60+
│ ├── home-manager/
61+
│ ├── stylix/
62+
│ └── ...
63+
├── extra/
64+
│ ├── documentation/
65+
│ ├── homeModules/
66+
│ ├── nixosModules/
67+
│ └── scripts/
68+
├── features/
69+
│ ├── home/
70+
│ │ ├── apps/
71+
│ │ │ ├── backup/
72+
│ │ │ ├── browser/
73+
│ │ │ │ ├── firefox/
74+
│ │ │ │ ├── floorp/
75+
│ │ │ │ ├── vivaldi/
76+
│ │ │ │ └── zen/
77+
│ │ │ ├── discord/
78+
│ │ │ ├── editor/
79+
│ │ │ │ └── doom-emacs/
80+
│ │ │ ├── music-player/
81+
│ │ │ └── terminal/
82+
│ │ │ ├── alacritty/
83+
│ │ │ ├── ghostty/
84+
│ │ │ ├── kitty/
85+
│ │ │ ├── konsole/
86+
│ │ │ ├── rio/
87+
│ │ │ └── wezterm/
88+
│ │ ├── cli/
89+
│ │ │ ├── deco/
90+
│ │ │ │ ├── cava/
91+
│ │ │ │ └── fastfetch/
92+
│ │ │ ├── dev/
93+
│ │ │ ├── history/
94+
│ │ │ │ ├── atuin/
95+
│ │ │ │ └── mcfly/
96+
│ │ │ ├── misc/
97+
│ │ │ │ ├── pass/
98+
│ │ │ │ └── topgrade/
99+
│ │ │ ├── multiplexer/
100+
│ │ │ │ ├── tmux/
101+
│ │ │ │ └── zellij/
102+
│ │ │ ├── prompt/
103+
│ │ │ │ └── oh-my-posh/
104+
│ │ │ ├── shell/
105+
│ │ │ │ ├── fish/
106+
│ │ │ │ └── zsh/
107+
│ │ │ └── utilities/
108+
│ │ │ ├── git/
109+
│ │ │ │ └── ...
110+
│ │ │ └── ...
111+
│ │ └── services/
112+
│ │ └── syncthing/
113+
│ └── system/
114+
│ ├── apps/
115+
│ │ ├── android-vm/
116+
│ │ ├── games/
117+
│ │ ├── libvirt/
118+
│ │ └── obs/
119+
│ ├── desktop/
120+
│ │ └── plasma6/
121+
│ ├── hardware/
122+
│ │ ├── bluetooth/
123+
│ │ ├── hard-accel/
124+
│ │ ├── qmk/
125+
│ │ ├── rgb/
126+
│ │ └── yubikey/
127+
│ ├── lang/
128+
│ │ └── us-english/
129+
│ ├── services/
130+
│ │ ├── gps/
131+
│ │ ├── localsend/
132+
│ │ ├── packaging/
133+
│ │ ├── pretty-boot/
134+
│ │ ├── printing/
135+
│ │ ├── sunshine-server/
136+
│ │ ├── tailscale/
137+
│ │ └── vr/
138+
│ │ ├── alvr/
139+
│ │ └── wivrn/
140+
│ └── theme/
141+
│ └── dracula/
57142
├── hosts/
58-
│ ├── live-image/
59-
│ │ └── configuration.nix
60-
│ ├── ryzennova/
61-
│ │ ├── configuration.nix
62-
│ │ ├── disks.nix
63-
│ │ ├── hardware-configuration.nix
64-
│ └── yoganova/
65-
│ ├── configuration.nix
66-
│ ├── disks.nix
67-
│ ├── hardware-configuration.nix
68-
├── lib/
69-
├── modules/
70-
│ ├── home-manager/
71-
│ │ ├── default-config.nix
72-
│ │ ├── shared.nix
73-
│ │ ├── submodule.nix
74-
│ │ └── system-config-support.nix
75-
│ ├── linux/
76-
│ │ ├── core/
77-
│ │ ├── graphical/
78-
│ │ ├── hardware/
79-
│ │ ├── locales/
80-
│ │ ├── services/
81-
│ │ ├── default-config.nix
82-
│ │ ├── user-nixos-configs.nix
83-
│ ├── nix/
84-
│ │ ├── legacy-consistency.nix
85-
│ │ ├── nix-config.nix
86-
│ │ ├── nix.nix
87-
│ │ ├── nixpkgs-config.nix
88-
│ │ └── nixpkgs.nix
89-
│ └── users/
90-
│ ├── desktop/
91-
│ │ ├── displayManager/
92-
│ ├── development/
93-
│ ├── doom-emacs/
94-
│ ├── gaming/
95-
│ ├── gpg/
96-
│ ├── theme/
143+
│ ├── installer/
144+
│ │ ├── config/
145+
│ │ ├── features.nix
146+
│ │ ├── hardware-configuration.nix
147+
│ │ └── hostVars.nix
148+
│ ├── ryzennova/
149+
│ │ ├── config/
150+
│ │ │ ├── disko.nix
151+
│ │ │ └── ...
152+
│ │ ├── features.nix
153+
│ │ ├── hardware-configuration.nix
154+
│ │ ├── hostVars.nix
155+
│ │ └── ssh_host_ed25519_key.pub
156+
│ └── yoganova/
157+
│ ├── config/
158+
│ │ ├── disko.nix
159+
│ │ └── ...
160+
│ ├── features.nix
161+
│ ├── hardware-configuration.nix
162+
│ ├── hostVars.nix
163+
│ └── ssh_host_ed25519_key.pub
164+
├── myLib/
97165
├── overlays/
98166
├── pkgs/
99-
├── scripts/
100-
├── secrets/
101-
│ ├── identities/
102-
│ └── secrets.nix
167+
│ └── common/
103168
├── users/
104-
│ ├── nixos/
105-
│ │ ├── config/
106-
│ │ └── default.nix
107-
│ └── novaviper/
108-
│ ├── config/
109-
│ ├── dotfiles/
110-
│ └── default.nix
169+
│ ├── nixos/
170+
│ │ ├── config/
171+
│ │ ├── home.nix
172+
│ │ └── system.nix
173+
│ └── novaviper/
174+
│ ├── config/
175+
│ ├── dotfiles/
176+
│ ├── hosts/
177+
│ │ ├── base.nix
178+
│ │ ├── ryzennova.nix
179+
│ │ └── yoganova.nix
180+
│ ├── home.nix
181+
│ ├── ssh.pub
182+
│ └── system.nix
111183
├── flake.lock
112184
├── flake.nix
113185
├── justfile
186+
├── LICENSE
114187
├── README.org
115-
└── shell.nix
188+
├── shell.nix
189+
└── statix.toml
116190
#+end_src
117191

118192

119193
- =flake.nix=: Entrypoint for host and home configurations. Also exposes a devshell for boostrapping the system (=nix develop= or =nix shell=).
120-
- =lib=: Custom library functions for various parts of the flake, imported into HomeManager and NixOS
194+
- =myLib=: Custom library functions for various parts of the flake, imported into HomeManager and NixOS
121195
- =hosts=: Configurations for each machine, accessible via =nixos-rebuild --flake=.
122196
- =ryzennova=: Primary PC - 32GB RAM, Ryzen 5600G, RTX 2060 6GB | KDE Plasma 6
123197
- =yoganova=: Lenovo Yoga 7i 16IRL8 (Type 82YN) - 8GB RAM, Intel i5 1335U | KDE Plasma 6
124-
- =live-image=: ISO configuration | Nvidia drivers included | KDE Plasma 6
198+
- =installer=: ISO configuration | Nvidia drivers included | KDE Plasma 6
125199
- =users=: Configurations for each user, includes both host OS specific (NixOS or Darwin) and Home Manager configurations. Built together with the =hosts= configurations via =nixos-rebuild --flake= (or the darwin equivalent)
126-
- =modules=: Modules for various configuration definitions, all settings are defined here
127-
- =home-manager=: Base configurations for Home-Manager, contains default configurations and helper modules that help setup the flake.
128-
- =linux=: Configurations applied to Linux based systems, contains default configurations and helper modules that help setup the flake.
129-
- =core=: Configurations applied across all hosts
130-
- =locales=: Language configurations
131-
- =nix=: Base configurations for the Nix package manager
132-
- =users=: Configurations imported as modules for the user to toggle via =modules.OPTION.enable=
133-
- =overlay=: Patches and version overrides for some packages, applied to all systems and even the devshell. Accessible via =nix build=.
134-
- =pkgs=: Custom nix packages defined similarly to nixpkg ones. Also accessible via =nix build=. You can compose these into your own configuration by using my flake's overlay, or consume them through NUR.
135-
- =secrets=: All user/host age secrets are located here
136-
- =scripts=: Bash/Posix scripts needed for various =precommit= and =just= commands
200+
- =extra=: Extra stuff like custom modules and flake documentation
201+
- =nixosModules=: Custom NixOS modules used throughout the flake (and some being upstreamable)
202+
- =homeModules=: Custom Home-Manager modules used throughout the flake (and some being upstreamable)
203+
- =scripts=: Bash/Posix scripts needed for various =precommit= and =just= commands
204+
- =core=: Shared configurations applied to all hosts and users
205+
- =features=: Opt-in configurations/feature flags that one or more users/hosts can use
206+
- =home=: NixOS specific feature flags (some features contain some shared Home-manager options that get applied to all users)
207+
- =system=: Home-Manager specific feature flags
208+
- =checks=: Flake evaluation tools for ensuring the flake is properly formatted and builds successfully. Also contains git-hooks to ensure the repository is properly setup. Accessible via =nix flake check=
209+
- =overlays=: Patches and version overrides for some packages, applied to all systems and even the devshell. Accessible via =nix build=.
210+
- =pkgs=: Custom nix packages defined similarly to the nixpkgs ones. Also accessible via =nix build=. You can compose these into your own configuration by using my flake's overlay, or consume them through NUR.
137211
- =justfile=: Command recipe file for =just=, contains various helpful commands for the flake
138-
- =shell.nix=: Declaration of nix-shell, used for =nix-shell= and =nix develop=
212+
- =shell.nix=: Declaration of nix-shell, used for =nix-shell= and =nix develop=. Used for bootstrapping the system
139213

140214
* Installation/Usage
141-
For installation, check out the installation guide located under [[file:documentation/installation.org][documentation/installation.org]]! Check out [[file:documentation/tips.org][documentation/tips.org]] for some tips and important information regarding how the entire flake works.
215+
For installation, check out the installation guide located under [[file:extra/documentation/installation.org][documentation/installation.org]]! Check out [[file:extra/documentation/tips.org][documentation/tips.org]] for some tips and important information regarding how the entire flake works.
142216

143217
* Tooling and Applications I Use
144218
Main user relevant apps
145219
- kde plasma 6
146220
- doom emacs
147-
- zsh + atuin + fzf + powerlevel10k
221+
- zsh + atuin + fzf + oh-my-posh
148222
- floorp
149-
- keepassxc/pass
150-
- gpg + ssh-agent + yubikey
223+
- keepassxc
224+
- vesktop
225+
- sops-nix + gpg + ssh-agent + yubikey
151226
- tailscale
152227
- kdeconnect
153228
- krita
154229
- libreoffice
155-
- jellyfin (feishin)
156-
- rio + tmux
230+
- kitty + tmux
231+
- prusa-slicer
157232
- and quite a bit more...
158233

159234
Nix stuff

0 commit comments

Comments
 (0)