Skip to content

Configuration keys

Every configuration key, its default, and what it controls. Defaults come from laser_setup/config/defaults.py (the AppConfig dataclasses) and the bundled assets/templates/config.yaml. For the layering/merge model see the Configuration System.

Top-level sections

Section Purpose
Dir File and directory paths.
scripts Entries in the Scripts menu.
Adapters Named adapter addresses (convenience).
Qt All GUI/window settings.
Filename Data file naming.
Logging logging.config.dictConfig for console/file logs.
matplotlib_rcParams Matplotlib styling (string values).
Telegram Optional notification bot.
parameters / procedures / sequences / instruments Loaded from their own files.
_session Runtime-only state (CLI args, paths). Read-only.

Dir

Key Default Meaning
global_config_file config/config.yaml (or $CONFIG) Global config path.
local_config_file config/config.yaml Local override path.
parameters_file bundled templates/parameters.yaml Parameter definitions.
procedures_file bundled templates/procedures.yaml Procedure registry/overrides.
sequences_file bundled templates/sequences.yaml Sequence registry.
instruments_file bundled templates/instruments.yaml Instrument declarations.
data_dir data Where CSV files are written.
database database.db SQLite name, relative to data_dir.

Warning

After init, the local config.yaml repoints these at ./config/*.yaml. Copy the templates you reference or the menus go empty — see the blank-menu trap.

Qt.GUI

Key Default Meaning
style Fusion Qt style; default uses the OS theme.
dark_mode true Dark palette; if false, the OS theme is used.
font Segoe UI Font family (empty → style default).
font_size 12 Base font size.
splash_image bundled splash.png Splash screen.

Qt.MainWindow

Key Default Meaning
title Laser Setup Window title.
readme_file README.md Markdown shown in the hub.
size [640, 480] Window size.
widget_size [640, 480] Default child widget size.
icon bundled splash.png Window icon.

Qt.ExperimentWindow

Key Default Meaning
title '' Window title (empty → procedure name).
inputs_in_scrollarea true Put inputs in a scroll area.
enable_file_input false (Not implemented) file-input widget.
dock_plot_number 2 Plots shown in the Dock tab.
info_file ./docs/led_protocol.md Markdown for the Info tab.
icon bundled splash.png Window icon.

Qt.SequenceWindow

Key Default Meaning
abort_timeout 30 Seconds the abort dialog waits before auto-continuing.

Filename

Key Default Meaning
prefix '' File prefix (empty → procedure class name).
suffix '' File suffix.
ext csv Extension.
dated_folder true Group files under data/<date>/.
index true Append _1, _2, ….
datetimeformat %Y-%m-%d Date format for folder/name.

scripts

A map of menu key → {name, target, kwargs}. target uses the ${function:...} resolver. Defaults: init, setup_adapters, get_updates, parameters_to_db, find_calibration_voltage. See CLI & scripts.

Logging

A standard logging.config.dictConfig. By default:

  • console handler — ColoredFormatter, level INFO, attached to the laser_setup logger.
  • file handler — level DEBUG, writes log/laser_setup.log.
  • pymeasure.log is set to WARNING.

Change a logger's level to make the app more/less verbose.

matplotlib_rcParams

String-valued Matplotlib settings passed to PyMeasure. Defaults: axes.grid: "True", figure.autolayout: "True".

Telegram

Key Default Meaning
token '' Bot token; empty disables alerts.
chat_ids [] Chat IDs to notify on procedure completion.

Adapters

A flat map of friendly name → adapter address (e.g. keithley2450: USB0::..., tenma_neg: COM9). Authoritative instrument wiring lives in instruments.yaml.

Environment variables

Variable Effect
CONFIG Overrides the global config file path.
QT_QPA_PLATFORM=offscreen Run the Qt app headless (CI, servers).