You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -9,7 +9,7 @@ My current NixOS (and constant changing) configuration
9
9
10
10
Note: There are upcoming changes being actively made so documentation will change and may not necessarily be update to date!
11
11
12
-
* Table of Contents :TOC_3:noexport:
12
+
* Table of Contents :TOC:noexport:
13
13
- [[#highlights][Highlights]]
14
14
- [[#references][References]]
15
15
- [[#structure][Structure]]
@@ -21,20 +21,22 @@ Note: There are upcoming changes being actively made so documentation will chang
21
21
- Multiple NixOS configurations, including laptop and desktop
22
22
- Install and partitioning commands via [[https://github.com/casey/just][just]]
23
23
- 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
26
26
- Modular configuration, easily add new users and machines
27
27
- Wayland/X11 Setups
28
28
- 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=
33
35
34
36
* References
35
37
- [[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
36
38
- [[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
- [[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
43
45
- [[https://github.com/archer-65/nix-dotfiles][archer-65's nix-dotfiles]] - Structure of host configurations
44
46
- [[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
45
47
- [[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
47
49
- [[https://github.com/x0ba/dotfiles][x0ba's dotfiles]] - Agenix NixOS/Home-Manager setup with Yubikey-support
- [[https://github.com/babeuh/nix-config][Babeuh's nix-config]] - Yubikey secrets setup with age (most importantly, pcsd service startup during boot process)
50
51
- [[https://github.com/sickle-phin/dots-nix/][sickle-phin's dots-nix]] - Extra Nvidia environment variables
51
52
52
53
* 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=):
54
55
#+begin_src
55
56
./
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/
57
142
├── 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/
97
165
├── overlays/
98
166
├── pkgs/
99
-
├── scripts/
100
-
├── secrets/
101
-
│ ├── identities/
102
-
│ └── secrets.nix
167
+
│ └── common/
103
168
├── 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
111
183
├── flake.lock
112
184
├── flake.nix
113
185
├── justfile
186
+
├── LICENSE
114
187
├── README.org
115
-
└── shell.nix
188
+
├── shell.nix
189
+
└── statix.toml
116
190
#+end_src
117
191
118
192
119
193
- =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
121
195
- =hosts=: Configurations for each machine, accessible via =nixos-rebuild --flake=.
122
196
- =ryzennova=: Primary PC - 32GB RAM, Ryzen 5600G, RTX 2060 6GB | KDE Plasma 6
- =live-image=: ISO configuration | Nvidia drivers included | KDE Plasma 6
198
+
- =installer=: ISO configuration | Nvidia drivers included | KDE Plasma 6
125
199
- =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.
137
211
- =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
139
213
140
214
* 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.
0 commit comments