mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-01-31 04:58:01 +00:00
docs/site: update default language
This commit is contained in:
parent
f70eb83479
commit
976d402f7b
@ -1,5 +1,5 @@
|
|||||||
baseURL = 'https://foo-dogsquared.github.io/nixos-config'
|
baseURL = 'https://foo-dogsquared.github.io/nixos-config'
|
||||||
defaultContentLanguage = 'en-US'
|
defaultContentLanguage = 'en'
|
||||||
title = "foodogsquared's NixOS config"
|
title = "foodogsquared's NixOS config"
|
||||||
timeZone = "UTC"
|
timeZone = "UTC"
|
||||||
|
|
||||||
|
@ -1,76 +0,0 @@
|
|||||||
---
|
|
||||||
title: Workflows
|
|
||||||
---
|
|
||||||
= Workflows
|
|
||||||
|
|
||||||
Workflows are all-encompassing NixOS modules for dictating how you interact with your computer/device/whatever.
|
|
||||||
Basically, this is where certain things are set such as your GNOME desktop environment settings, your dolled up standalone window manager setup, or an oddball audio-only desktop interface.
|
|
||||||
They are located in `./nixos/modules/workflows` at the project root.
|
|
||||||
|
|
||||||
Workflows are defined under the namespace `workflows` where each workflow module is set to be declared and to be enabled at `workflows.workflows.<name>.enable`.
|
|
||||||
For example, here's how I would enable my imaginary GNOME desktop workflow.
|
|
||||||
|
|
||||||
[source, nix]
|
|
||||||
----
|
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
workflows.workflows.a-happy-gnome.enable = true;
|
|
||||||
}
|
|
||||||
----
|
|
||||||
|
|
||||||
Take note you cannot enable more than two workflows at any given time.
|
|
||||||
|
|
||||||
[source, nix]
|
|
||||||
----
|
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# This would cause an assertion error.
|
|
||||||
workflows.workflows = {
|
|
||||||
a-happy-gnome.enable = true;
|
|
||||||
knome.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
----
|
|
||||||
|
|
||||||
You can get around this by setting `workflows.disableLimit` to `true`.
|
|
||||||
However, this shouldn't be taken lightly as workflow modules are very vast in scope and are expected to set system settings that can affect your hardware including...
|
|
||||||
|
|
||||||
* Enabling (and/or disabling) system services such as the preferred network manager.
|
|
||||||
* Modifying the list of installed applications.
|
|
||||||
* Setting up programs with custom configurations which could cause conflicts with the defaults (upstream or from nixpkgs) or with another workflow module.
|
|
||||||
|
|
||||||
[chat, foodogsquared]
|
|
||||||
====
|
|
||||||
By organizing the workflow modules this way, you can easily create your desktop rices without overlapping system settings.
|
|
||||||
Bless the Nix module system!
|
|
||||||
====
|
|
||||||
|
|
||||||
[chat, foodogsquared, state=cheeky]
|
|
||||||
====
|
|
||||||
Whether those rices are worth posting to Unix ricing communities is up to you though.
|
|
||||||
====
|
|
||||||
|
|
||||||
[chat, Ezran, state=disappointed, role=reversed]
|
|
||||||
====
|
|
||||||
Whippersnappers with your "riced"-up systems...
|
|
||||||
====
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
== Designing a workflow module
|
|
||||||
|
|
||||||
There are a few guidelines to designing a workflow module which is already laid out in its respective README but as a reminder, let's list it here.
|
|
||||||
|
|
||||||
* All workflow modules should be under `workflows.workflows.<name>` namespace with an `enable` option.
|
|
||||||
|
|
||||||
* No usage of the private modules.
|
|
||||||
It is a public module, after all so it'll make things messier.
|
|
||||||
While we can conditionally set the configuration, it is pretty useless since we have the xref:../03-disko/index.adoc[host-specific module structure].
|
|
||||||
|
|
||||||
* No locale-related settings.
|
|
||||||
Each user may have its own set of preferred locales and their setup so it is pretty much prohibited from setting any.
|
|
||||||
The only related parts a workflow module can set is their preferred input method engine (IME) of choice.
|
|
||||||
The rest of the locale settings is best configured from the host or its individual users.
|
|
56
docs/content/en/04-nixos-modules/01-workflows/index.adoc
Normal file
56
docs/content/en/04-nixos-modules/01-workflows/index.adoc
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
---
|
||||||
|
title: Workflows
|
||||||
|
---
|
||||||
|
= Workflows
|
||||||
|
|
||||||
|
Workflows are all-encompassing NixOS modules for dictating how you interact with your computer/device/whatever.
|
||||||
|
Basically, this is where certain things are set such as your GNOME desktop environment settings, your dolled up standalone window manager setup, or an oddball audio-only desktop interface.
|
||||||
|
|
||||||
|
[NOTE]
|
||||||
|
====
|
||||||
|
Take note that they are considered as private modules so if you're not foodogsquared, you shouldn't use it.
|
||||||
|
====
|
||||||
|
|
||||||
|
The workflow namespace mainly contains the `enable` option where you can enable more than one workflows like in the following code.
|
||||||
|
|
||||||
|
[source, nix]
|
||||||
|
----
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
workflows.enable = [
|
||||||
|
"a-happy-gnome"
|
||||||
|
"beepeedobolyuessemm"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
|
However, enabling workflows shouldn't be taken lightly as they are quite pervasive with what they can configure.
|
||||||
|
|
||||||
|
* Enabling (and/or disabling) system services such as the preferred network manager.
|
||||||
|
|
||||||
|
* Modifying the list of installed applications.
|
||||||
|
This is especially more prevalent when you enable more than workflow module.
|
||||||
|
|
||||||
|
* Setting up programs with custom configurations which could cause conflicts with the defaults (upstream or from nixpkgs) or with another workflow module.
|
||||||
|
|
||||||
|
Additionally, you can make your workflow module configurable by setting up options in `workflows.workflows.<name>` namespace.
|
||||||
|
|
||||||
|
[chat, foodogsquared]
|
||||||
|
====
|
||||||
|
By organizing the workflow modules this way, you can easily create your desktop rices without overlapping system settings.
|
||||||
|
Bless the Nix module system!
|
||||||
|
====
|
||||||
|
|
||||||
|
[chat, foodogsquared, state=cheeky]
|
||||||
|
====
|
||||||
|
Whether those rices are worth posting to Unix ricing communities is up to you though.
|
||||||
|
====
|
||||||
|
|
||||||
|
[chat, Ezran, state=disappointed, role=reversed]
|
||||||
|
====
|
||||||
|
Whippersnappers with your "riced"-up systems...
|
||||||
|
====
|
||||||
|
|
||||||
|
|
||||||
|
include::../../../../../modules/nixos/_private/workflows/README.adoc#design-constraints[]
|
Loading…
Reference in New Issue
Block a user