Update documentation

This commit is contained in:
foo-dogsquared 2021-12-26 18:43:23 +08:00
parent 6bbad11fa0
commit ae722324f5
2 changed files with 72 additions and 0 deletions

View File

@ -24,6 +24,38 @@ It should export my NixOS configurations of my different hosts (of only one so f
To install it, run the `nixos-install --flake github:foo-dogsquared/nixos-config#ni`.
(Please see the respective appropriate host README for more information.)
TIP: If you found some error regarding something in restricted mode, you can run the installation with `--impure` flag (i.e., `nixos-install --impure --flake github:foo-dogsquared/nixos-config#ni`).
== What's in my flake?
You can see the full details with `nix flake show`.
As a helpful summary, here's what my flake should contain sorting from the most interesting and helpful outputs to the most boring and unnecessary.
* `packages` contains link:./pkgs[my custom packages].
It supports the default list of systems as defined from link:https://github.com/numtide/flake-utils[`flake-utils`].
* `devShells` from link:./shells/[my custom environments].
Similar to `homeManagerConfigurations`, you can easily use it outside of NixOS.
* `nixosConfigurations` which is where you can install my various NixOS configurations directly (e.g., `nixos-install --flake MY_FLAKE_URL#HOST`).
This mainly uses the link:./hosts/[hosts configuration].
* `homeManagerConfigurations` contains my various link:https://github.com/nix-community/home-manager[home-manager] configurations from link:./users/home-manager/[`./users/home-manager/`].
The neat thing about it is you can easily install it in a non-NixOS Linux distro.
* `nixosModules` are composed from NixOS modules defined in link:./modules/nixos[`./modules/nixos`].
It can be used as additional modules for your own NixOS config in case you want to use mine for whatever reason.
footnote:[I don't know why did I put it there but eh...]
* `homeManagerModules` are where my link:./modules/home-manager[custom home-manager modules] to be exported.
footnote:[This is more useful than my NixOS modules.]
* `lib` is defined from link:./lib/[my custom library].
It's another unnecessary export but it's there.
@ -76,8 +108,10 @@ In order of priority:
* [x] Create custom modules.
* [x] Create a themes system similar to link:https://github.com/hlissner/dotfiles[this NixOS config].
* [ ] Create a good workflow for creating ISOs.
* [x] Create development shells.
* [x] Manage secrets with agenix.
* [ ] Create a good workflow for tests.
* [x] Automate backups with NixOS config.
* [x] Create custom packages and export it to flakes. (Maybe consider making it to upstream)
* [x] Create cluser-wide configs.
@ -99,6 +133,9 @@ I still use it on other non-NixOS systems.
== Frequently asked questions (FAQ)
More like "Most anticipated questions (MAQ)" since almost no one asked me about this yet. :)
However, it doesn't roll off the tongue.
[qanda]
Hello! I'm new to Nix and NixOS, where should I start?::
Oh no, you've seen the multiple configurations from other systems, didn't you?
@ -109,6 +146,25 @@ I've written link:https://foo-dogsquared.github.io/blog/posts/moving-into-nixos/
Any requirements for this setup?::
You only need Nix 2.4 installed with the experimental features for Nix command and flakes enabled (i.e., `experimental-features = nix-command flakes`).
Hey! I have an error something like `/nix/${HASH}-nmd/` from my installation. Why it doesn't work?::
This error seems to be related to home-manager.
See this link:https://github.com/nix-community/home-manager/issues/2074[issue] for more details.
Basically, you have to add `--impure` flag when running `nixos-install`.
What is my experience on Nix flakes?::
link:https://youtu.be/iWJKZK_1l88[I LIKE IT!]
There are still some hiccups like the strict tie-in to Git which leads to strange experience like having to add untracked files just to be recognized.
However, this feature is still in the works so no surprise there.
Is this based from link:https://github.com/divnix/devos[devos]?::
Yes but I've created this from scratch.
One of my goals when creating this config is to use as little dependency as much as possible.
At the time I've rewritten this configuration, I have little idea about Nix as a language and I find devos to be overwhelming so I doubled down to create from scratch.
+
However, I can say that my configuration is moving in a similar direction to devos (which is intended to be modified anyways) as I explore more of Nix.
In fact, I've based much of my config from it and may even be ended up as one.
It is nice that such a project exists serving as a reference for bigger configurations.

View File

@ -0,0 +1,16 @@
= Themes
:toc:
These are where my themes are defined and configured.
Basically, themes are mainly graphical sessions concerned with aesthetics.
It could also include specific workflows and configurations.
This is where modules will define how you're going to interact with the computer.
The following list is the summary which can also serve as a guideline to developing a theme.
* Due to the bigger scope and importance of this module, there is a limit where you can only enable one theme at a time.
You can disable this with `config.modules.themes.disableLimit` set to `true`.
* Custom themes should be defined in `config.modules.themes.themes` attribute (e.g., `options.modules.themes.themes.a-happy-gnome`, `options.modules.themes.themes.simple-way`).
This makes up for a namespace entirely dedicated for setting themes.