Operator.ini is a configuration file located in the same directory as the Operator module. It contains information such as window positions, button labels, and button scripts.
Operator.ini is a typical .ini file consisting of headings ("Sections") and entries ("Values"). For individual sections, values are unique, and may appear in any order. Value names may consist of multiple levels like file system paths, with a backslash \ as a separator.
Section and value names are case-insensitive.
Moving between machines
It is possible to move Operator.ini files between BCI2000 installations, and computers; note however that geometry values use an internal representation provided by Qt, and may not transfer well between BCI2000 installations based on different versions of Qt. Apart from that, windows might be located at a screen position not available on a different machine, e.g. due to multiple monitors being located at different desktop coordinates. BCI2000 tries to handle such edge cases gracefully by moving windows onto the main monitor. If the result is undesired but you still want to use other settings from such an Operator.ini file, just remove all geometry, Width, Height, Left and Top values from the file, retaining the ones you want to keep.
The Operator's main window size and position, as provided by Qt's QWidget::saveGeometry() function.
The Sys Log window size and position, as provided by Qt's QWidget::saveGeometry() function.
The Config Window window size and position, as provided by Qt's QWidget::saveGeometry() function.
The Watches window size and position, as provided by Qt's QWidget::saveGeometry() function.
The Watches window's splitter position, as provided by Qt's QSplitter::saveState() function.
Operator scripts as configured on the Operator's Preferences Dialog.
Button names as configured on the Operator's Preferences Dialog.
Button scripts as configured on the Operator's Preferences Dialog.
A number between 1 and 3, representing the global user level as configured on the Operator's Preferences Dialog. The numbers represent user competence in ascending order: 1: Beginner, 2: Intermediate, 3: Advanced.
In this section, user levels for individual parameters are stored. Whenever a parameter's user level exceeds the globally set user level, it will be omitted from the parameter configuration dialog. The entry name consists of the parameter's name, and the string "UserLevel", separated by a backslash.
Also, the settings from the "Configure Load..." and "Configure Save..." dialogs in the Operator Module's Parameter Configuration Window are stored here. The entry name consists of the the parameter's name, and the string "LoadFilter" resp. "SaveFilter", separated by a backslash. Contrary to intuition, and value of "1" means that the parameter is filtered out, and a value of "0" means that the parameter is written/read when saving/loading a parameter file.
In the Visualization section, position and size of visualization windows are stored. Visualization windows are identified by their visualization ID (typically, a short string consisting of uppercase letters and numbers).
Normally, visualization IDs are only visible to the code that produces visualizations, not to the end user. To make it possible to match visualization windows to visualizaton IDs, the window's title is listed here as well, but its value has no effect on new windows. Instead, it will be overwritten with the current window title.
Entry names are built from the visualization ID, a backslash, and a property name. Valid properties are: Title, Width, Height, Top, Bottom, representing the window's title, size and position.
User_Reference:Operator_Module#Preferences_Dialog, User_Reference:Operator_Module#Parameter_Configuration_Window, User_Reference:Operator_Module_Scripting, Programming_Reference:GenericVisualization_Class