Configuration System
TEMU has a YAML-based configuration system with multiple configuration sources.
The project-file layer, list-valued configuration entries,
temu_configGetStringList(), and the path-list configuration entries described
on this page are new in TEMU 5.0.
|
The system is used for:
-
user-scoped preferences
-
project-scoped runtime setup
-
command-line overrides
-
internal API-provided configuration values
Configuration values are exposed through the public temu_configGet*() API and
through a small set of CLI inspection commands.
Configuration File Location
By default, TEMU reads user configuration from:
~/.config/temu/config.yaml
The ~/.config/temu/ directory is created automatically during startup if it does not already exist.
The configuration file can be overridden on the command line:
temu --config-file /path/to/config.yaml
Project-scoped configuration can be loaded separately with:
temu --project /path/to/temu-project.yaml
--project is new in TEMU 5.0.
|
See Project Files for the project-file format.
Configuration Sources
The currently active configuration layers are:
-
built-in defaults
-
user configuration file
-
project file
-
environment overrides for selected settings
-
command-line overrides
-
runtime/API overrides
Higher-priority sources override lower-priority sources.
In general:
-
project values override the user configuration file
-
command-line options override project and user configuration
-
runtime/API changes override all startup configuration
YAML Format
Configuration values are looked up by slash-separated paths such as logging/stderr.
Each path component maps to one YAML level.
For example, the following YAML sets three TEMU configuration values:
logging:
stderr: true
license:
checkout-script: /home/user/.config/temu/license-checkout.temu
python:
lib3_13: /opt/python3.13/lib/libpython3.13.so
Scalars and Lists
The configuration system supports both scalar values and string/path lists.
| List-valued configuration entries are new in TEMU 5.0. |
Scalar values include:
-
bool -
string -
signed integers
-
unsigned integers
-
floating-point values
List values are used for search paths such as plugin, script, Python, executable, and OS-awareness configuration paths.
List-valued entries may be written either as a plain sequence or as an operation mapping:
paths:
executables:
prepend:
- build/images
append:
- deploy/images
The supported list operations are:
-
replace -
prepend -
append -
remove
Access Patterns
The configuration API provides these lookup functions:
-
temu_configGetBool() -
temu_configGetString() -
temu_configGetSigned() -
temu_configGetUnsigned() -
temu_configGetDouble() -
temu_configGetStringList()
temu_configGetStringList() is new in TEMU 5.0.
|
The TEMU command line also exposes helper commands for inspecting values:
-
config-bool <path> -
config-str <path> -
config-int <path> -
config-uint <path> -
config-float <path> -
config-strlist <path> -
config-pathlist <path>
Queried Configuration Variables
The following table lists the most visible built-in configuration variables and their typical effect.
| Path | Type | Default | Description | Related override |
|---|---|---|---|---|
|
|
|
Enables extra logging of GDB remote protocol commands in the built-in GDB server. |
|
|
|
not set |
If set, TEMU executes the referenced command file with immediately after successful license initialization. |
none |
|
|
|
Selects stderr instead of stdout for the standard text logging backend. |
|
|
|
|
Uses cycle counts instead of wall-clock timestamps in text logging. |
|
|
|
|
Controls file logging. Supported values are |
none |
|
|
not set |
Explicit path for file logging when |
none |
|
|
|
Format string used when auto-generating log filenames. |
none |
|
|
|
Enables extra debug behavior for the MEC model and emits an informational message when the device is created. |
|
|
|
|
Enables debug tracing in the plugin loader, for example when searching plugin paths and resolving library names. |
|
|
|
not set |
Overrides the shared-library path used when TEMU loads Python 3.13 support with |
none |
|
|
empty |
Additional Python module search paths. |
|
|
|
|
Additional plugin search paths. |
|
|
|
|
Script search paths used for |
|
|
|
|
Search paths for resolving relative executable and image file names. |
none |
|
|
|
Search paths for resolving relative OS-awareness YAML files. |
none |
|
|
not set |
Base directory for generated runtime state. |
none |
|
|
not set |
Base directory for generated log files. |
none |
|
|
not set |
Base directory for snapshot files. |
none |
|
|
|
Enables debug logging while deserializing JSON snapshots, including object creation and property restore progress. |
|
Defaults and Fallbacks
Each built-in configuration variable may have a registered default value.
If no active configuration source provides a value, the registered default is used.
The fallback parameter passed to temu_configGet*() is only used if:
-
the key has no active configured value, and
-
the key has no registered default