mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-01-31 04:58:01 +00:00
docs/site: remove "Profiles" subchapter in NixOS modules
It isn't really true anymore.
This commit is contained in:
parent
e11c054e54
commit
8b349c895b
@ -1,60 +0,0 @@
|
|||||||
---
|
|
||||||
title: Profiles
|
|
||||||
---
|
|
||||||
= Profiles
|
|
||||||
|
|
||||||
In my github:{github-repo}[NixOS modules, path=./modules/nixos, rev=master], there is a subset of modules for profiles.
|
|
||||||
The way we defined profiles is very similar to digga profiles.
|
|
||||||
|
|
||||||
[quote, digga library]
|
|
||||||
____
|
|
||||||
Profiles are a convenient shorthand for the definition of options in contrast to their declaration.
|
|
||||||
They're built into the NixOS module system for a reason: to elegantly provide a clear separation of concerns.
|
|
||||||
____
|
|
||||||
|
|
||||||
[NOTE]
|
|
||||||
====
|
|
||||||
Despite mainly focusing on NixOS, this definition also applies to other environments such as github:nix-community/home-manager[opts=repo], github:numtide/system-manager[opts=repo], or github:LnL7/nix-darwin[opts=repo].
|
|
||||||
====
|
|
||||||
|
|
||||||
|
|
||||||
== What are profiles really?
|
|
||||||
|
|
||||||
Except the difference is we also included a declaration for setting those options.
|
|
||||||
This enables different modules in our NixOS configurations to set those up in different points in time without getting a duplicate value error which is nice.
|
|
||||||
However, enabling profiles shouldn't be taken lightly.
|
|
||||||
In my project, the situations to enable profiles are limited.
|
|
||||||
|
|
||||||
Here are the module namespaces with their guidelines for setting them profiles.
|
|
||||||
|
|
||||||
[#lst:profile-namespace-guidelines]
|
|
||||||
* `services` and `programs` shouldn't use any profiles at all since they are small in scope that they are more likely to be combined with other modules.
|
|
||||||
|
|
||||||
* Workflow modules (`workflows`) are prohibited to use profiles to discourage very customized configurations that are otherwise more suitable in the host, user, etc.
|
|
||||||
We have host- and user-specific modules for those purpose.
|
|
||||||
|
|
||||||
* Really, anything that is being exported in the flake outputs (i.e., look for the attributes in `nix flake show`) unless explicitly stated like the case for `workflows`.
|
|
||||||
|
|
||||||
[chat, Ezran, state=curious, role=reversed]
|
|
||||||
====
|
|
||||||
Son, just like what I keep telling you: is this solution good enough?
|
|
||||||
====
|
|
||||||
|
|
||||||
[chat, foodogsquared]
|
|
||||||
====
|
|
||||||
For the most part, yeah.
|
|
||||||
But the way how I'm using profiles is pretty similar to digga profiles in the same way that it is really used only once at most point.
|
|
||||||
====
|
|
||||||
|
|
||||||
[chat, Ezran, role=reversed]
|
|
||||||
====
|
|
||||||
Why don't you use digga then?
|
|
||||||
====
|
|
||||||
|
|
||||||
[chat, foodogsquared]
|
|
||||||
====
|
|
||||||
digga github:divnix/digga[was considered to be a dead project, issue=503] which is unfortunate.
|
|
||||||
When I was grokking flakes, I used their example extensively and eventually understood a lot about flakes and Nix modules overall.
|
|
||||||
But the project is really big and overwhelming to use it for someone who only started using flakes so I just went through the project piece by piece and only used a small subset of it.
|
|
||||||
I think link:https://github.com/divnix/digga/issues/503#issuecomment-1546359287[this comment sums up the problems of the project].
|
|
||||||
====
|
|
@ -5,7 +5,7 @@ title: "home-manager"
|
|||||||
|
|
||||||
This NixOS configuration uses github:nix-community/home-manager[opts=repo] extensively for home environment configuration.
|
This NixOS configuration uses github:nix-community/home-manager[opts=repo] extensively for home environment configuration.
|
||||||
Each of the home-manager users are placed in `users/home-manager` at the project root.
|
Each of the home-manager users are placed in `users/home-manager` at the project root.
|
||||||
Furthermore, they are typically deployed as part of the NixOS configuration and as stand-alone home-manager configuration.
|
Furthermore, they are typically deployed as part of the NixOS configuration and as stand-alone home-manager configuration (but not standalone configs in NixOS systems).
|
||||||
For more information, see xref:../03-project-specific-setup/01-declarative-host-management/index.adoc[Declarative host management] and xref:../03-project-specific-setup/02-declarative-user-management/index.adoc[Declarative user management].
|
For more information, see xref:../03-project-specific-setup/01-declarative-host-management/index.adoc[Declarative host management] and xref:../03-project-specific-setup/02-declarative-user-management/index.adoc[Declarative user management].
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,10 +15,9 @@
|
|||||||
** link:{{< relref "./03-project-specific-setup/04-custom-firefox-addons" >}}[Custom Firefox addons]
|
** link:{{< relref "./03-project-specific-setup/04-custom-firefox-addons" >}}[Custom Firefox addons]
|
||||||
|
|
||||||
* NixOS modules
|
* NixOS modules
|
||||||
** link:{{< relref "./04-nixos-modules/01-profiles" >}}[Profiles]
|
** link:{{< relref "./04-nixos-modules/01-workflows" >}}[Workflows]
|
||||||
** link:{{< relref "./04-nixos-modules/02-workflows" >}}[Workflows]
|
** link:{{< relref "./04-nixos-modules/02-disko" >}}[disko]
|
||||||
** link:{{< relref "./04-nixos-modules/03-disko" >}}[disko]
|
** link:{{< relref "./04-nixos-modules/03-host-specific-modules" >}}[Host-specific modules]
|
||||||
** link:{{< relref "./04-nixos-modules/04-host-specific-modules" >}}[Host-specific modules]
|
|
||||||
|
|
||||||
* link:{{< relref "./05-home-manager" >}}[home-manager]
|
* link:{{< relref "./05-home-manager" >}}[home-manager]
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user