mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-01-31 04:58:01 +00:00
wrapper-manager-fds/docs: update project overview and add design notes to modules
This commit is contained in:
parent
f88190bc18
commit
fcd9503664
@ -38,7 +38,7 @@ nix-channel --add {remote-git-repo}/archive/master.tar.gz wrapper-manager-fds
|
||||
nix-channel --update
|
||||
----
|
||||
|
||||
Then in your environment configuration, you'll have to import it.
|
||||
Then in your environment configuration, you'll have to import the user entrypoint.
|
||||
For more details, see <<user-entrypoint>>.
|
||||
|
||||
[#installation-pinning-tool]
|
||||
@ -65,9 +65,9 @@ Though not recommended, you could manually pin the Nix library yourself like in
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
wrapper-manager-fds = builtins.fetchTarball "{remote-git-repo}/archive/master.tar.gz";
|
||||
wrapperManager = import wrapper-manager-fds { };
|
||||
wrapperManagerLib = import wrapperManagerLib.lib { inherit pkgs; }
|
||||
wrapper-manager-fds-src = builtins.fetchTarball "{remote-git-repo}/archive/master.tar.gz";
|
||||
wrapper-manager = import wrapper-manager-fds-src { };
|
||||
wrapperManagerLib = import wrapper-manager.wrapperManagerLib { inherit pkgs; }
|
||||
in
|
||||
wrapperManagerLib.env.build { }
|
||||
----
|
||||
@ -119,11 +119,11 @@ To use it, it only requires a nixpkgs instance like in the following code.
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
wrapper-manager-fds = builtins.fetchTarball "{remote-git-repo}/archive/master.tar.gz";
|
||||
wrapperManager = import wrapper-manager-fds { };
|
||||
wrapperManagerLib = import wrapperManagerLib.lib { inherit pkgs; }
|
||||
wrapper-manager-fds-src = builtins.fetchTarball "{remote-git-repo}/archive/master.tar.gz";
|
||||
wrapper-manager = import wrapper-manager-fds-src { };
|
||||
wrapperManagerLib = import wrapper-manager.wrapperManagerLib { inherit pkgs; }
|
||||
in
|
||||
wmLib.env.build { }
|
||||
wrapperManagerLib.env.build { }
|
||||
----
|
||||
|
||||
|
||||
|
@ -3,3 +3,15 @@
|
||||
|
||||
This is the module set of the wrapper-manager module environment.
|
||||
Just take note that we're following the runtime shell of nixpkgs which is GNU Bash as of 2024-06-30.
|
||||
|
||||
Also, take note of several design decisions when making the modules.
|
||||
|
||||
* Typically, several options are designed around one option.
|
||||
The most prominent example of this is `wrappers.<name>.makeWrapperArgs` where we basically create those `makeWrapper` arguments from other options.
|
||||
|
||||
* Another common design here is most of the interaction happens around in individual wrappers so individual-wrapper-wide options are typically accompanied with a environment-wide version of that option.
|
||||
An example of that is `environment.variables` and `environment.pathAdd` where it's basically a global set/list of variables and search paths to be put in each wrapper (that is, `wrappers.<name>.env` and `wrappers.<name>.pathAdd`).
|
||||
|
||||
* When constructing modules with a `listOf <type>` that is going to be set some other options, typically it is better to have them set in the individual wrapper and nothing else.
|
||||
An example of that can be seen in `xdg.dataDirs` and `wrappers.<name>.xdg.dataDirs` implementation.
|
||||
This is designed like that so the user can override the entire thing if they choose.
|
||||
|
Loading…
Reference in New Issue
Block a user