diff --git a/README.adoc b/README.adoc index a31bd625..a2951da4 100644 --- a/README.adoc +++ b/README.adoc @@ -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. + diff --git a/modules/nixos/themes/README.adoc b/modules/nixos/themes/README.adoc new file mode 100644 index 00000000..35ddfb42 --- /dev/null +++ b/modules/nixos/themes/README.adoc @@ -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.