Thymis Documentation

Using the Nix language module

The Nix language module allows you to write NixOS modules directly in Thymis device configurations or tags. This is particularly useful for testing options quickly or prototyping a configuration without creating a standalone Thymis module.

Adding the module

Start by adding a Custom Module to your device configuration or tag. Do this by clicking the + Add Module button in the Modules section of the configuration or tag page.

Add Custom Module

Once added, you will see the Custom Module in the list of modules. Its configuration section provides a text editor where you can write your Nix expression.

Custom Module Configuration

The editor accepts a complete NixOS module in the usual function/attribute set form:

{ pkgs, lib, inputs, config, ... }:

{
  environment.systemPackages = with pkgs; [ vim htop ];
  services.openssh.enable = true;
}

This is the recommended way of using the Nix language module, since it matches the standard NixOS module structure used in configuration.nix and flake-based systems.

Legacy style: only the module body

For backwards compatibility, you may also provide only the body of a module:

environment.systemPackages = with pkgs; [ vim ];

This will continue to work, but is not the recommended style for new projects.

Example

For example, to install Vim on a device:

{ pkgs, ... }:
{
  environment.systemPackages = with pkgs; [ vim ];
}

Like this:

Custom Module Example

Notes

  • Device configurations created this way are merged with other modules and tags, following the usual priority rules.

Further resources

ende