Skip to content

modules/ Options

_module.args#

Additional arguments passed to each module in addition to ones like lib, config, and pkgs, modulesPath.

This option is also available to all submodules. Submodules do not inherit args from their parent module, nor do they provide args to their parent module or sibling submodules. The sole exception to this is the argument name which is provided by parent modules to a submodule and contains the attribute name the submodule is bound to, or a unique generated name if it is not bound to an attribute.

Some arguments are already passed by default, of which the following cannot be changed with this option:

  • lib: The nixpkgs library.

  • config: The results of all options after merging the values from all modules together.

  • options: The options declared in all modules.

  • specialArgs: The specialArgs argument passed to evalModules.

  • All attributes of specialArgs

Whereas option values can generally depend on other option values thanks to laziness, this does not apply to imports, which must be computed statically before anything else.

For this reason, callers of the module system can provide specialArgs which are available during import resolution.

For NixOS, specialArgs includes modulesPath, which allows you to import extra modules from the nixpkgs package tree without having to somehow make the module aware of the location of the nixpkgs or NixOS directories.

{ modulesPath, ... }: {
  imports = [
    (modulesPath + "/profiles/minimal.nix")
  ];
}

For NixOS, the default value for this option includes at least this argument:

  • pkgs: The nixpkgs package set according to the nixpkgs.pkgs option.

Type: lazy attribute set of raw value

Declared by: - .nixpkgs/lib/modules.nix>

tensorfiles.misc.gtk.enable#

Whether to enable Enables NixOS module that configures/handles the gtk system. .

Type: boolean

Default: false

Example: true

tensorfiles.misc.gtk.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.misc.gtk.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.misc.nix.enable#

Whether to enable Enables NixOS module that configures/handles defaults regarding nix language . nix package manager. .

Type: boolean

Default: false

Example: true

tensorfiles.misc.xdg.enable#

Whether to enable Enables NixOS module that configures/handles the xdg toolset. .

Type: boolean

Default: false

Example: true

tensorfiles.misc.xdg.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.misc.xdg.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.profiles.base.enable#

Whether to enable Enables NixOS module that configures/handles the base system profile.

Base layer sets up necessary structures to be able to simply just evaluate the configuration, ie. not build it, meaning that this layer enables fundamental functionality that other higher level modules rely on. .

Type: boolean

Default: false

Example: true

tensorfiles.profiles.graphical-hyprland.enable#

Whether to enable Enables NixOS module that configures/handles the laptop system profile.

TODO: decouple this into a graphical + xmonad + persitence profiles .

Type: boolean

Default: false

Example: true

tensorfiles.profiles.graphical-xmonad.enable#

Whether to enable Enables NixOS module that configures/handles the graphical-xmonad system profile.

TODO: decouple this into a graphical + xmonad + persitence profiles .

Type: boolean

Default: false

Example: true

tensorfiles.profiles.headless.enable#

Whether to enable Enables NixOS module that configures/handles the headless system profile.

Headless layer builds on top of the minimal layer and adds other server-like functionality like simple shells, basic networking for remote access and simple editors. .

Type: boolean

Default: false

Example: true

tensorfiles.profiles.minimal.enable#

Whether to enable Enables NixOS module that configures/handles the minimal system profile.

Minimal layers builds on top of the base layer and creates a minimal bootable system. It isn’t targeted to posses any other functionality, for example if you’d like remote access and more of server-like features, use the headless profile that build on top of this one. .

Type: boolean

Default: false

Example: true

tensorfiles.programs.browsers.firefox.enable#

Whether to enable Enables NixOS module that configures/handles the firefox browser .

Type: boolean

Default: false

Example: true

tensorfiles.programs.browsers.firefox.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.programs.browsers.firefox.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.programs.direnv.enable#

Whether to enable Enables NixOS module that configures/handles direnv colorscheme generator. .

Type: boolean

Default: false

Example: true

tensorfiles.programs.direnv.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.programs.direnv.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.programs.direnv.home.settings..name>.pkg#

Which package to use for the direnv utilities. You can provide any custom derivation or forks with differing internals as long as the API and binaries stay the same and reside at the same place.

Type: package

Default: <derivation direnv-2.32.3>

tensorfiles.programs.dmenu.enable#

Whether to enable Enables NixOS module that configures/handles the dmenu app launcher. .

Type: boolean

Default: false

Example: true

tensorfiles.programs.dmenu.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.programs.dmenu.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.programs.dmenu.home.settings..name>.pkg#

Which package to use for the dmenu binaries. You can provide any custom derivation of your choice as long as the main binaries reside at

  • $pkg/bin/dmenu
  • $pkg/bin/dmenu_run
  • etc…

Type: package

Default: <derivation dmenu-5.2>

tensorfiles.programs.dmenu.home.settings..name>.pywal.enable#

Whether to enable Whether to enable the integration with the pywal colorscheme generator program. The integration may range from just some color parsing/loading to sometimes full on detailed plugins depending on the context.

Note that the code will get execute only if

  1. pywal.enable = true;

  2. tensorfiles.programs.pywal module is loaded

  3. tensorfiles.programs.pywal.enable = true; .

Type: boolean

Default: true

Example: true

tensorfiles.programs.editors.neovim.enable#

Whether to enable Enables NixOS module that configures/handles the neovim program. .

Type: boolean

Default: false

Example: true

tensorfiles.programs.editors.neovim.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.programs.editors.neovim.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.programs.editors.neovim.persistence.enable#

Whether to enable Whether to autoappend files/folders to the persistence system. For more info on the persistence system refer to the system.persistence NixOS module documentation.

Note that this will get executed only if

  1. persistence.enable = true;

  2. tensorfiles.system.persistence module is loaded

  3. tensorfiles.system.persistence.enable = true; .

Type: boolean

Default: true

Example: true

tensorfiles.programs.file-managers.lf.enable#

Whether to enable Enables NixOS module that configures/handles the lf file manager.

https://github.com/gokcehan/lf .

Type: boolean

Default: false

Example: true

tensorfiles.programs.file-managers.lf.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.programs.file-managers.lf.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.programs.file-managers.lf.home.settings..name>.pkg#

Which package to use for the lf binaries. You can provide any custom derivation or forks with differing internals as long as the API and binaries stay the same and reside at the same place.

Type: package

Default: <derivation lf-31>

tensorfiles.programs.file-managers.lf.home.settings..name>.previewer.enable#

Whether to enable Whether to include a custom previewer solution as well. Aside the less complicated text file previewing this includes a solution for the image previewing as well, since lf doesn’t have yet a builtin solution for this issue. That’s the primary reason for these options since it requires sticking up together a bunch of tools with custom scripts. .

Type: boolean

Default: true

Example: true

tensorfiles.programs.file-managers.lf.home.settings..name>.previewer.backend#

As of now the following backends/solutions are supported

  1. Ueberzug (https://github.com/ueber-devel/ueberzug)
  2. Kitty and its icat kitten protocol

Type: one of “ueberzug”, “kitty”

Default: "ueberzug"

tensorfiles.programs.file-managers.lf.home.settings..name>.withIcons#

Enable the preview icons defined at ./icons for the lf file manager

Type: boolean

Default: true

tensorfiles.programs.git.enable#

Whether to enable Enables NixOS module that configures/handles the git program. .

Type: boolean

Default: false

Example: true

tensorfiles.programs.git.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.programs.git.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.programs.git.home.settings..name>.userEmail#

Email that should be used for commits and credentials.

Type: null or string

Default: null

tensorfiles.programs.git.home.settings..name>.userName#

Username that should be used for commits and credentials. If none provided, the top level name for the home-manager will be used.

Type: null or string

Default: null

tensorfiles.programs.newsboat.enable#

Whether to enable Enables NixOS module that configures/handles the newsboat rss reader. .

Type: boolean

Default: false

Example: true

tensorfiles.programs.newsboat.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.programs.newsboat.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.programs.newsboat.home.settings..name>.urls.news.enable#

Whether to enable Enable the addition of news related urls into the newsboat rss reader. .

Type: boolean

Default: true

Example: true

tensorfiles.programs.newsboat.home.settings..name>.urls.news.urls#

News source urls for the newsboat rss reader

Type: list of (submodule)

Default:

[
  {
    tags = [
      "news"
      "czech"
    ];
    url = "https://www.novinky.cz/rss";
  }
  {
    tags = [
      "news"
      "czech"
    ];
    url = "https://zpravy.aktualne.cz/rss/";
  }
  {
    tags = [
      "news"
      "czech"
    ];
    url = "https://www.krimi-plzen.cz/rss";
  }
  {
    tags = [
      "news"
      "czech"
    ];
    url = "https://www.irozhlas.cz/rss/irozhlas";
  }
  {
    tags = [
      "news"
      "czech"
    ];
    url = "http://feeds.feedburner.com/odemcene-clanky";
  }
  {
    tags = [
      "news"
      "english"
    ];
    url = "https://www.theguardian.com/international/rss";
  }
]

tensorfiles.programs.newsboat.home.settings..name>.urls.news.urls...tags#

Feed tags.

Type: list of string

Default: [ ]

Example:

[
  "foo"
  "bar"
]

tensorfiles.programs.newsboat.home.settings..name>.urls.news.urls...title#

Feed title.

Type: null or string

Default: null

Example: "ORF News"

tensorfiles.programs.newsboat.home.settings..name>.urls.news.urls...url#

Feed URL.

Type: string

Example: "http://example.com"

tensorfiles.programs.newsboat.home.settings..name>.urls.sci.enable#

Whether to enable Enable the addition of science related urls into the newsboat rss reader. .

Type: boolean

Default: true

Example: true

tensorfiles.programs.newsboat.home.settings..name>.urls.sci.urls#

Science source urls for the newsboat rss reader

Type: list of (submodule)

Default:

[
  {
    tags = [
      "sci"
      "czech"
    ];
    url = "https://vesmir.cz/cz/vesmir-rss-odemcene-clanky.html";
  }
  {
    tags = [
      "sci"
      "czech"
    ];
    url = "https://www.mff.cuni.cz/cs/articlesRss";
  }
  {
    tags = [
      "sci"
      "english"
    ];
    url = "https://api.quantamagazine.org/feed/";
  }
  {
    tags = [
      "sci"
      "english"
    ];
    url = "http://feeds.nature.com/nature/rss/current";
  }
  {
    tags = [
      "sci"
      "english"
      "papers"
    ];
    url = "http://export.arxiv.org/rss/quant-ph";
  }
  {
    tags = [
      "sci"
      "english"
      "papers"
    ];
    url = "http://export.arxiv.org/rss/math-ph";
  }
  {
    tags = [
      "sci"
      "english"
      "papers"
    ];
    url = "http://export.arxiv.org/rss/gr-qc";
  }
  {
    tags = [
      "sci"
      "english"
      "papers"
    ];
    url = "http://export.arxiv.org/rss/cs";
  }
]

tensorfiles.programs.newsboat.home.settings..name>.urls.sci.urls...tags#

Feed tags.

Type: list of string

Default: [ ]

Example:

[
  "foo"
  "bar"
]

tensorfiles.programs.newsboat.home.settings..name>.urls.sci.urls...title#

Feed title.

Type: null or string

Default: null

Example: "ORF News"

tensorfiles.programs.newsboat.home.settings..name>.urls.sci.urls...url#

Feed URL.

Type: string

Example: "http://example.com"

tensorfiles.programs.newsboat.home.settings..name>.urls.tech.enable#

Whether to enable Enable the addition of tech related urls into the newsboat rss reader. .

Type: boolean

Default: true

Example: true

tensorfiles.programs.newsboat.home.settings..name>.urls.tech.urls#

Tech source urls for the newsboat rss reader

Type: list of (submodule)

Default:

[
  {
    tags = [
      "tech"
      "czech"
    ];
    url = "https://root.cz/rss/clanky";
  }
  {
    tags = [
      "tech"
      "czech"
    ];
    url = "https://root.cz/rss/zpravicky";
  }
  {
    tags = [
      "tech"
      "english"
    ];
    url = "https://www.archlinux.org/feeds/news/";
  }
  {
    tags = [
      "tech"
      "english"
    ];
    url = "https://news.ycombinator.com/rss";
  }
  {
    tags = [
      "tech"
      "english"
    ];
    url = "https://feeds.arstechnica.com/arstechnica/index";
  }
]

tensorfiles.programs.newsboat.home.settings..name>.urls.tech.urls...tags#

Feed tags.

Type: list of string

Default: [ ]

Example:

[
  "foo"
  "bar"
]

tensorfiles.programs.newsboat.home.settings..name>.urls.tech.urls...title#

Feed title.

Type: null or string

Default: null

Example: "ORF News"

tensorfiles.programs.newsboat.home.settings..name>.urls.tech.urls...url#

Feed URL.

Type: string

Example: "http://example.com"

tensorfiles.programs.pywal.enable#

Whether to enable Enables NixOS module that configures/handles pywal colorscheme generator. .

Type: boolean

Default: false

Example: true

tensorfiles.programs.pywal.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.programs.pywal.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.programs.pywal.home.settings..name>.pkg#

Which package to use for the pywal utilities. You can provide any custom derivation or forks with differing internals as long as the API and binaries stay the same and reside at the same place.

Type: package

Default: <derivation pywal-3.3.0>

tensorfiles.programs.pywal.persistence.enable#

Whether to enable Whether to autoappend files/folders to the persistence system. For more info on the persistence system refer to the system.persistence NixOS module documentation.

Note that this will get executed only if

  1. persistence.enable = true;

  2. tensorfiles.system.persistence module is loaded

  3. tensorfiles.system.persistence.enable = true; .

Type: boolean

Default: true

Example: true

tensorfiles.programs.shells.zsh.enable#

Whether to enable Enables NixOS module that configures/handles the zsh shell. .

Type: boolean

Default: false

Example: true

tensorfiles.programs.shells.zsh.package#

The zsh package (derivation or path) that should be used for the internals of this module.

Type: package

Default: <derivation zsh-5.9>

tensorfiles.programs.shells.zsh.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.programs.shells.zsh.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.programs.shells.zsh.home.settings..name>.oh-my-zsh.enable#

Whether to enable Whether to enable the oh-my-zsh framework related code .

Type: boolean

Default: true

Example: true

tensorfiles.programs.shells.zsh.home.settings..name>.oh-my-zsh.plugins#

oh-my-zsh plugins that are enabled by default

Type: list of string

Default:

[
  "git"
  "git-flow"
  "colorize"
  "colored-man-pages"
]

tensorfiles.programs.shells.zsh.home.settings..name>.oh-my-zsh.withFzf#

Whether to enable the fzf plugin

Type: boolean

Default: true

tensorfiles.programs.shells.zsh.home.settings..name>.p10k.enable#

Whether to enable Whether to enable the powerlevel10k theme (and plugins) related code. .

Type: boolean

Default: true

Example: true

tensorfiles.programs.shells.zsh.home.settings..name>.p10k.cfgFile#

Potential override of the p10k.zsh config filename.

Type: string

Default: "p10k.zsh"

tensorfiles.programs.shells.zsh.home.settings..name>.p10k.cfgSrc#

Path (or ideally, path inside a derivation) for the p10k.zsh configuration file

Note: This should point just to the target directory. If you want to change the default filename of the p10k.zsh file, modify the cfgFile option.

Type: path

Default: /nix/store/3a58am8j0qrzxlcqdwv86hscapqzkcil-source/modules/programs/shells/zsh

tensorfiles.programs.shells.zsh.home.settings..name>.pywal.enable#

Whether to enable Whether to enable the integration with the pywal colorscheme generator program. The integration may range from just some color parsing/loading to sometimes full on detailed plugins depending on the context.

Note that the code will get execute only if

  1. pywal.enable = true;

  2. tensorfiles.programs.pywal module is loaded

  3. tensorfiles.programs.pywal.enable = true; .

Type: boolean

Default: true

Example: true

tensorfiles.programs.shells.zsh.home.settings..name>.shellAliases.catToBat#

Remap the cat related commands to its reworked edition bat.

Type: boolean

Default: true

tensorfiles.programs.shells.zsh.home.settings..name>.shellAliases.findToFd#

Remap the find related commands to its reworked edition fd.

Type: boolean

Default: true

tensorfiles.programs.shells.zsh.home.settings..name>.shellAliases.grepToRipgrep#

Remap the find related commands to its reworked edition fd.

Type: boolean

Default: true

tensorfiles.programs.shells.zsh.home.settings..name>.shellAliases.lsToEza#

Enable predefined shell aliases

Type: boolean

Default: true

tensorfiles.programs.shells.zsh.home.settings..name>.withAutocompletions#

Whether to enable autosuggestions/autocompletion related code

Type: boolean

Default: true

tensorfiles.programs.shells.zsh.persistence.enable#

Whether to enable Whether to autoappend files/folders to the persistence system. For more info on the persistence system refer to the system.persistence NixOS module documentation.

Note that this will get executed only if

  1. persistence.enable = true;

  2. tensorfiles.system.persistence module is loaded

  3. tensorfiles.system.persistence.enable = true; .

Type: boolean

Default: true

Example: true

tensorfiles.programs.terminals.alacritty.enable#

Whether to enable Enables NixOS module that configures/handles the alacritty terminal. .

Type: boolean

Default: false

Example: true

tensorfiles.programs.terminals.alacritty.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.programs.terminals.alacritty.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.programs.terminals.kitty.enable#

Whether to enable Enables NixOS module that configures/handles the kitty terminal. .

Type: boolean

Default: false

Example: true

tensorfiles.programs.terminals.kitty.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.programs.terminals.kitty.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.programs.wayland.ags.enable#

Whether to enable Enables NixOS module that configures/handles the ags.nix app launcher

https://github.com/Aylur/ags .

Type: boolean

Default: false

Example: true

tensorfiles.programs.wayland.ags.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.programs.wayland.ags.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.programs.wayland.anyrun.enable#

Whether to enable Enables NixOS module that configures/handles the anyrun app launcher

https://github.com/Kirottu/anyrun .

Type: boolean

Default: false

Example: true

tensorfiles.programs.wayland.anyrun.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.programs.wayland.anyrun.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.programs.wayland.waybar.enable#

Whether to enable Enables NixOS module that configures/handles the waybar wayland bar. .

Type: boolean

Default: false

Example: true

tensorfiles.programs.wayland.waybar.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.programs.wayland.waybar.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.security.agenix.enable#

Whether to enable Enables NixOS module that configures/handles the agenix security module. By doing so, you enhance other modules with the option to automatically configure their various secrets/passwords via agenix. .

Type: boolean

Default: false

Example: true

tensorfiles.services.dunst.enable#

Whether to enable Enables NixOS module that configures/handles the dunst notification manager service. .

Type: boolean

Default: false

Example: true

tensorfiles.services.dunst.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.services.dunst.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.services.dunst.home.settings..name>.pywal.enable#

Whether to enable Whether to enable the integration with the pywal colorscheme generator program. The integration may range from just some color parsing/loading to sometimes full on detailed plugins depending on the context.

Note that the code will get execute only if

  1. pywal.enable = true;

  2. tensorfiles.programs.pywal module is loaded

  3. tensorfiles.programs.pywal.enable = true; .

Type: boolean

Default: true

Example: true

tensorfiles.services.networking.networkmanager.enable#

Whether to enable Enables NixOS module that configures/handles the networkmanager service. .

Type: boolean

Default: false

Example: true

tensorfiles.services.networking.networkmanager.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.services.networking.networkmanager.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.services.networking.networkmanager.home.settings..name>.addUserToGroup#

Whether the given user should be added to the networkmanager group.

Type: boolean

Default: true

tensorfiles.services.networking.networkmanager.persistence.enable#

Whether to enable Whether to autoappend files/folders to the persistence system. For more info on the persistence system refer to the system.persistence NixOS module documentation.

Note that this will get executed only if

  1. persistence.enable = true;

  2. tensorfiles.system.persistence module is loaded

  3. tensorfiles.system.persistence.enable = true; .

Type: boolean

Default: true

Example: true

tensorfiles.services.networking.openssh.enable#

Whether to enable Enables NixOS module that configures/handles everything related to ssh, that is remote access, messagess, ssh-agents and ssh-keys with the openssh backend. .

Type: boolean

Default: false

Example: true

tensorfiles.services.networking.openssh.agenix.enable#

Whether to enable Whether to enable the agenix ecosystem for handling secrets, which includes

a. passwords

b. keys

c. certificates

There is a preferred way to organize secrets (see example at github:tsandrini/tensorfiles), however, most modules will accept a path override if you wish to do so. For this you should look into the agenix related options of the appropriate modules. If this is not okay for you, you should set the password manually yourself instead.

Note that this will get executed only if

  1. agenix = true;

  2. tensorfiles.security.agenix module is loaded

  3. tensorfiles.security.agenix.enable = true; .

Type: boolean

Default: true

Example: true

tensorfiles.services.networking.openssh.agenix.hostKey.enable#

Whether to enable TODO .

Type: boolean

Default: false

Example: true

tensorfiles.services.networking.openssh.agenix.hostKey.privateKeyEnvPath#

TODO

Type: string

Default: "ssh/ssh_host_ed25519_key"

tensorfiles.services.networking.openssh.agenix.hostKey.privateKeySecretsPath#

TODO

Type: string

Default: "hosts/exampleHost/files/host_key"

tensorfiles.services.networking.openssh.agenix.hostKey.publicKeyEnvPath#

TODO

Type: string

Default: "ssh/id_ed25519.pub"

tensorfiles.services.networking.openssh.agenix.hostKey.publicKeyRaw#

TODO

Type: null or string

Default: null

tensorfiles.services.networking.openssh.agenix.hostKey.publicKeySecretsAttrsetKey#

TODO

Type: string

Default: "publicKeys.hosts.exampleHost.hostKey"

tensorfiles.services.networking.openssh.genHostKey.enable#

Whether to enable Enables autogenerating per-host based keys. Apart from certain additional checks this works mostly as a passthrough to openssh.authorizedKeys.keys, for more info refer to the documentation of said option. .

Type: boolean

Default: true

Example: true

tensorfiles.services.networking.openssh.genHostKey.hostKey#

TODO

Type: attribute set

Default:

{
  path = "/etc/ssh/ssh_host_ed25519_key";
  type = "ed25519";
}

tensorfiles.services.networking.openssh.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.services.networking.openssh.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.services.networking.openssh.home.settings..name>.authorizedKeys.enable#

Whether to enable TODO .

Type: boolean

Default: true

Example: true

tensorfiles.services.networking.openssh.home.settings..name>.authorizedKeys.keysRaw#

TODO

Type: list of string

Default: [ ]

tensorfiles.services.networking.openssh.home.settings..name>.authorizedKeys.keysSecretsAttrsetKey#

TODO

Type: string

Default: "publicKeys.hosts.exampleHost.users.‹name›.authorizedKeys"

tensorfiles.services.networking.openssh.home.settings..name>.userKey.enable#

Whether to enable TODO .

Type: boolean

Default: false

Example: true

tensorfiles.services.networking.openssh.home.settings..name>.userKey.privateKeyHomePath#

TODO

Type: string

Default: ".ssh/id_ed25519"

tensorfiles.services.networking.openssh.home.settings..name>.userKey.privateKeySecretsPath#

TODO

Type: string

Default: "hosts/exampleHost/users/‹name›/private_key"

tensorfiles.services.networking.openssh.home.settings..name>.userKey.publicKeyHomePath#

TODO

Type: string

Default: ".ssh/id_ed25519.pub"

tensorfiles.services.networking.openssh.home.settings..name>.userKey.publicKeyRaw#

TODO

Type: null or string

Default: null

tensorfiles.services.networking.openssh.home.settings..name>.userKey.publicKeySecretsAttrsetKey#

TODO

Type: string

Default: "publicKeys.hosts.exampleHost.users.‹name›.userKey"

tensorfiles.services.networking.openssh.home.settings..name>.withKeychain#

TODO

Type: boolean

Default: true

tensorfiles.services.pywalfox-native.enable#

Whether to enable Enables NixOS module that configures/handles the pywalfox native messenger. .

Type: boolean

Default: false

Example: true

tensorfiles.services.pywalfox-native.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.services.pywalfox-native.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.services.wayland.window-managers.hyprland.enable#

Whether to enable TODO .

Type: boolean

Default: false

Example: true

tensorfiles.services.wayland.window-managers.hyprland.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.services.wayland.window-managers.hyprland.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.services.wayland.window-managers.hyprland.home.settings..name>.ags.enable#

Whether to enable Enable ags hyprland integration

This includes

  1. launching ags
  2. mediakeys via ags .

Type: boolean

Default: true

Example: true

tensorfiles.services.wayland.window-managers.hyprland.home.settings..name>.pywal.enable#

Whether to enable Whether to enable the integration with the pywal colorscheme generator program. The integration may range from just some color parsing/loading to sometimes full on detailed plugins depending on the context.

Note that the code will get execute only if

  1. pywal.enable = true;

  2. tensorfiles.programs.pywal module is loaded

  3. tensorfiles.programs.pywal.enable = true; .

Type: boolean

Default: true

Example: true

tensorfiles.services.x11.picom.enable#

Whether to enable Enables NixOS module that configures/handles the x11 picom compositor service. .

Type: boolean

Default: false

Example: true

tensorfiles.services.x11.picom.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.services.x11.picom.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.services.x11.redshift.enable#

Whether to enable Enables NixOS module that configures/handles the x11 redshift service .

Type: boolean

Default: false

Example: true

tensorfiles.services.x11.redshift.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.services.x11.redshift.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.services.x11.window-managers.xmonad.enable#

Whether to enable Enables NixOS module that configures/handles the xmonad window manager. .

Type: boolean

Default: false

Example: true

tensorfiles.services.x11.window-managers.xmonad.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.services.x11.window-managers.xmonad.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.services.x11.window-managers.xmonad.home.settings..name>.cbatticon.enable#

Whether to enable Enable the cbatticon battery indicator. Doing so install the appropriate derivation and adds the management code into the xmonad configuration.

https://github.com/valr/cbatticon .

Type: boolean

Default: true

Example: true

tensorfiles.services.x11.window-managers.xmonad.home.settings..name>.cbatticon.pkg#

Which package to use for the battery indicator. You can provide any custom derivation as long as the main binary resides at $pkg/bin/cbatticon.

Type: package

Default: <derivation cbatticon-1.6.13>

tensorfiles.services.x11.window-managers.xmonad.home.settings..name>.dmenu.enable#

Whether to enable Enable the dmenu app launcher integration. This does one of two things, first off

  1. If tensorfiles.programs.dmenu is installed and enabled it will use whatever is defined inside that module.

  2. If not, it will install dmenu.pkg and use that version.

and secondly, it creates the keyboard mappings. .

Type: boolean

Default: true

Example: true

tensorfiles.services.x11.window-managers.xmonad.home.settings..name>.dmenu.pkg#

Which package to use for the dmenu app launcher. You can provide any custom derivation as long as the main binary resides at $pkg/bin/dmenu, $pkg/bin/dmenu_run, …

Type: package

Default: <derivation dmenu-5.2>

tensorfiles.services.x11.window-managers.xmonad.home.settings..name>.playerctl.enable#

Whether to enable Enable integration with the playerctl toolset. Doing so enables the media keys functionality.

https://github.com/altdesktop/playerctl .

Type: boolean

Default: true

Example: true

tensorfiles.services.x11.window-managers.xmonad.home.settings..name>.playerctl.pkg#

Which package to use for the playerctl utility. You can provide any custom derivation as long as the main binary resides at $pkg/bin/playerctl.

Type: package

Default: <derivation playerctl-2.4.1>

tensorfiles.services.x11.window-managers.xmonad.home.settings..name>.pywal.enable#

Whether to enable Whether to enable the integration with the pywal colorscheme generator program. The integration may range from just some color parsing/loading to sometimes full on detailed plugins depending on the context.

Note that the code will get execute only if

  1. pywal.enable = true;

  2. tensorfiles.programs.pywal module is loaded

  3. tensorfiles.programs.pywal.enable = true; .

Type: boolean

Default: true

Example: true

tensorfiles.services.x11.window-managers.xmonad.home.settings..name>.volumeicon.enable#

Whether to enable Enable the volumeicon volume indicator. Doing so install the appropriate derivation and adds code to spawn it into the trayer.

http://nullwise.com/volumeicon.html .

Type: boolean

Default: true

Example: true

tensorfiles.services.x11.window-managers.xmonad.home.settings..name>.volumeicon.pkg#

Which package to use for the volumeicon indicator. You can provide any custom derivation as long as the main binary resides at $pkg/bin/volumeicon.

Type: package

Default: <derivation volumeicon-0.5.1>

tensorfiles.services.x11.window-managers.xmonad.persistence.enable#

Whether to enable Whether to autoappend files/folders to the persistence system. For more info on the persistence system refer to the system.persistence NixOS module documentation.

Note that this will get executed only if

  1. persistence.enable = true;

  2. tensorfiles.system.persistence module is loaded

  3. tensorfiles.system.persistence.enable = true; .

Type: boolean

Default: true

Example: true

tensorfiles.system.persistence.enable#

Whether to enable Enables NixOS module that configures/handles the persistence ecosystem. Doing so enables other modules to automatically use the persistence instead of manually having to set it up yourself. .

Type: boolean

Default: false

Example: true

tensorfiles.system.persistence.btrfsWipe.enable#

Whether to enable Enable btrfs based root filesystem wiping.

This has the following requirements

  1. The user needs to have a btrfs formatted root partition (rootPartition) with a root subvolume rootSubvolume. This means that the whole system is going to reside on one partition.

    Additional decoupling can be achieved then by btrfs subvolumes.

  2. The user needs to create a blank snapshot of rootSubvolume during installation specified by blankRootSnapshot.

The TL;DR of this approach is that we basically just restore the rootSubvolume to its initial blank snaphost.

You can populate the root partition with any amount of desired btrfs subvolumes. The rootSubvolume is the only one required. .

Type: boolean

Default: false

Example: true

tensorfiles.system.persistence.btrfsWipe.blankRootSnapshot#

The btrfs snapshot of the main rootSubvolume. You will probably need to create this one manually during the installation . formatting of the system. One such way is using the following command:

btrfs su snapshot -r /mnt/root /mnt/root-blank

Type: string

Default: "root-blank"

tensorfiles.system.persistence.btrfsWipe.mountpoint#

Temporary mountpoint that should be used for mounting and resetting the rootPartition.

This is useful mainly if you want to prevent some conflicts.

Type: path

Default: "/mnt"

tensorfiles.system.persistence.btrfsWipe.rootPartition#

The dev path for the main btrfs formatted root partition that is mentioned in the btrfsWipe.enable doc.

Type: path

Default: "/dev/sda1"

tensorfiles.system.persistence.btrfsWipe.rootSubvolume#

The main root btrfs subvolume path that is going to be reset to blankRootSnapshot later.

Type: string

Default: "root"

tensorfiles.system.persistence.disableSudoLectures#

Whether to disable the default sudo lectures that would be otherwise printed every time on login

Type: boolean

Default: true

tensorfiles.system.persistence.persistentRoot#

Path on the already mounted filesystem for the persistent root, that is, a root where we should store the persistent files and against which should we link the temporary files against.

This is usually simply just /persist.

Type: path

Default: "/persist"

tensorfiles.system.users.enable#

Whether to enable Enables NixOS module that sets up the basis for the userspace, that is declarative management, basis for the home directories and also configures home-manager, persistence, agenix if they are enabled.

(Persistence) The users module will automatically append and set up the usual home related directories, however, in case that you have an opt-in filesystem with a persistent home, you should set persistence.enable = false

(Agenix) This module uses the following secrets

  1. common/passwords/users/$user_default User passwords. They are meant to be defaults that should be later configured and changed appropriately on each host, which would ideally be hosts/$host/passwords/users/$user .

Type: boolean

Default: false

Example: true

tensorfiles.system.users.agenix.enable#

Whether to enable Whether to enable the agenix ecosystem for handling secrets, which includes

a. passwords

b. keys

c. certificates

There is a preferred way to organize secrets (see example at github:tsandrini/tensorfiles), however, most modules will accept a path override if you wish to do so. For this you should look into the agenix related options of the appropriate modules. If this is not okay for you, you should set the password manually yourself instead.

Note that this will get executed only if

  1. agenix = true;

  2. tensorfiles.security.agenix module is loaded

  3. tensorfiles.security.agenix.enable = true; .

Type: boolean

Default: true

Example: true

tensorfiles.system.users.home.enable#

Enable multi-user configuration via home-manager.

The configuration is then done via the settings option with the toplevel attribute being the name of the user, for more info please refer to the documentation and example of the settings option.

Type: boolean

Default: true

Example: false

tensorfiles.system.users.home.settings#

Multiuser home-manager configuration option submodule. Enables doing hm module level configurations via simple attrsets.

In the case of an enabled home configuration, but not passing any concrete values, ie. meaning that home.enable = true, however, home.settings is left unchanged, it will be populated with the default values specific to each module using the user provided during the initialization of lib.tensorfiles.options (by default “root”).

Type: attribute set of (submodule)

Default:

{
  tsandrini = { };
}

Example:

{
  myOtherUser = { };
  myUser = {
    myOption = true;
    otherOption = {
      name = "test2";
    };
  };
  root = {
    myOption = false;
    otherOption = {
      name = "test1";
    };
  };
}

tensorfiles.system.users.home.settings..name>.IDE#

User’s preferred IDE.

Note that this option doesn’t actually download or enable any packages (you should do that yourself), it’s instead a simple way to tell other programs what IDE to launch for a given user if needed (and also presets some env variables).

Type: null or string

Default: "vi"

tensorfiles.system.users.home.settings..name>.agenixPassword.enable#

Whether to enable TODO .

Type: boolean

Default: false

Example: true

tensorfiles.system.users.home.settings..name>.agenixPassword.passwordSecretsPath#

TODO

Type: string

Default: "hosts/exampleHost/users/‹name›/system-password"

tensorfiles.system.users.home.settings..name>.appDataDir#

The usual downloads home dir. Path is relative to the given user home directory.

If you’d like to disable the features of the downloads dir, just set it to null, ie home.settings.$user.downloadsDir = null;

Type: path

Default: "/home/‹name›/.local/share"

tensorfiles.system.users.home.settings..name>.appStateDir#

TODO

Type: path

Default: "/home/‹name›/.local/state"

tensorfiles.system.users.home.settings..name>.browser#

User’s preferred browser.

Note that this option doesn’t actually download or enable any packages (you should do that yourself), it’s instead a simple way to tell other programs what browser to launch for a given user if needed (and also presets some env variables).

Type: string

Default: "w3m"

tensorfiles.system.users.home.settings..name>.cacheDir#

TODO

Type: path

Default: "/home/‹name›/.cache"

tensorfiles.system.users.home.settings..name>.configDir#

The usual downloads home dir. Path is relative to the given user home directory.

If you’d like to disable the features of the downloads dir, just set it to null, ie home.settings.$user.downloadsDir = null;

Type: path

Default: "/home/‹name›/.config"

tensorfiles.system.users.home.settings..name>.description#

TODO

Type: null or string

Default: null

tensorfiles.system.users.home.settings..name>.downloadsDir#

The usual downloads home dir.

If you’d like to disable the features of the downloads dir, just set it to null, ie home.settings.$user.downloadsDir = null;

Type: null or path

Default: "/home/‹name›/Downloads"

tensorfiles.system.users.home.settings..name>.editor#

User’s preferred editor.

Note that this option doesn’t actually download or enable any packages (you should do that yourself), it’s instead a simple way to tell other programs what editor to launch for a given user if needed (and also presets some env variables).

Type: null or string

Default: "vi"

tensorfiles.system.users.home.settings..name>.email#

TODO

Type: null or string

Default: null

tensorfiles.system.users.home.settings..name>.graphicalBackend#

User’s preferred graphical backend.

Type: one of “tty”, “wayland”, “x11”

Default: "tty"

tensorfiles.system.users.home.settings..name>.homeDir#

TODO

Type: path

Default: "/home/‹name›"

tensorfiles.system.users.home.settings..name>.initDirectoryStructure#

Whether to automatically create all the directories. Home-manager doesn’t do this automatically unless you need to populate it with files, so this option might be useful.

This is achieved by creating an empty .blank file inside the directories, thanks to this we preserve the overall purity.

Type: boolean

Default: true

tensorfiles.system.users.home.settings..name>.isNixTrusted#

Whether the user has the ability to connect to the nix daemon and gain additional privileges for working with nix (like adding binary cache)

Type: boolean

Default: false

tensorfiles.system.users.home.settings..name>.isSudoer#

Add user to sudoers (ie the wheel group)

Type: boolean

Default: true

tensorfiles.system.users.home.settings..name>.miscDataDir#

TODO

If you’d like to disable the features of the downloads dir, just set it to null, ie home.settings.$user.miscDataDir = null;

Type: null or path

Default: "/home/‹name›/FiberBundle"

tensorfiles.system.users.home.settings..name>.orgDir#

Central directory for the organization of your whole life! Org-mode, org-roam, org-agenda, and much more!

If you’d like to disable the features of the org dir, just set it to null, ie home.settings.$user.orgDir = null;

Type: null or path

Default: "/home/‹name›/OrgBundle"

tensorfiles.system.users.home.settings..name>.projectsDir#

TODO

If you’d like to disable the features of the downloads dir, just set it to null, ie home.settings.$user.projectsDir = null;

Type: null or path

Default: "/home/‹name›/ProjectBundle"

tensorfiles.system.users.home.settings..name>.terminal#

User’s preferred terminal emulator.

Note that this option doesn’t actually download or enable any packages (you should do that yourself), it’s instead a simple way to tell other programs what terminal to launch for a given user if needed (and also presets some env variables).

Type: string

Default: "xterm"

tensorfiles.system.users.persistence.enable#

Whether to enable Whether to autoappend files/folders to the persistence system. For more info on the persistence system refer to the system.persistence NixOS module documentation.

Note that this will get executed only if

  1. persistence.enable = true;

  2. tensorfiles.system.persistence module is loaded

  3. tensorfiles.system.persistence.enable = true; .

Type: boolean

Default: true

Example: true

tensorfiles.tasks.nix-garbage-collect.enable#

Whether to enable Enables NixOS module that configures the task handling periodix nix store garbage collection. .

Type: boolean

Default: false

Example: true

tensorfiles.tasks.system-autoupgrade.enable#

Whether to enable Module enabling system wide nixpkgs . host autoupgrade Enables NixOS module that configures the task handling periodix nixpkgs and host autoupgrades. .

Type: boolean

Default: false

Example: true