Graphical User Interface (GUI)
The graphical user interface program groopsGui
enables the convenient creation of GROOPS config files.
It uses the Qt5 framework for cross-platform support.
Settings and first-time setup
The GUI depends on an XSD schema file containing the complete formal (computer readable) description of a GROOPS config file. This schema file can be created with the command:
groops --xsd <groopsDir>/groops.xsdAt least one schema file has to be set via the menu
Settings - Default Paths and Files
. Setting more than one schema files enables the schema selector in the toolbar.
The selected schema will be used when (re-)opening or creating a config file.
This feature is useful when working with different versions of GROOPS at the same time.It is possible to set a template file via the menu Settings - Default Paths and Files
. This can be any GROOPS config file.
Whenever a new config file is created via the GUI, all global elements and programs defined in the template file are automatically created in the new config file.
It is highly recommended to create a template file containing at least the global element groopsDataDir
of type filename
.
This element is used as a variable in most default file paths throughout many GROOPS programs.
Thus, setting the path to the base directory containing all GROOPS data once in the template file, for example as
groopsDataDir=/home/<user>/groops/data
, is the most convenient way to handle default paths in GROOPS.
The template file can also contain other often-used global elements, for example tmpDir
or timeStart
and timeEnd
.
A working directory can be set via Settings - Default Paths and Files
.
This directory is used as the default directory in the save dialog of new config files.
The GUI offers the option to open the GROOPS documentation for a selected program. To use this feature, the GROOPS documentation must be generated (if not already present) with the command:
groops --doc <groopsDir>/docs/In the menu
Settings - Default Paths and Files
the path to the HTML version of the documentation must be set (i.e. <groopsDir>/docs/html
).
Selecting any program and pressing F1
opens the documentation for this program in an external browser.
Pressing F1
without having any program selected opens the main page of the GROOPS documentation.Executing a config file from the GUI requires the setup of a run command in the menu Settings - Commands
.
It is recommended for this command to open a new terminal in which GROOPS is executed with the config file given as an argument.
The placeholders %w
and %f
are replaced by the directory and file name of the selected config file, respectively.
Multiple commands can be set up, with the option to choose one of them in the run dialog.
Example commands:
- Windows:
cd /d %w && groops.exe %f
-
Linux (KDE):
konsole --workdir %w -e bash -ic "groops %f; bash"
-
Linux (GNOME):
gnome-terminal --working-directory=%w -x bash -ic "groops %f; bash"
-
Windows, MPI with 4 processes:
cd /d %w && mpiexec -n 4 groopsMPI.exe %f
-
Linux (KDE), MPI with 4 processes:
konsole --workdir %w -e bash -ic "mpiexec -n 4 groopsMPI %f; bash"
-
Linux (GNOME), MPI with 4 processes:
gnome-terminal --working-directory=%w -x bash -ic "mpiexec -n 4 groopsMPI %f; bash"
Basic features
Most basic features used to manipulate a config element are accessible via the context menu, for example attributing loops and conditions or setting an element global. Global elements automatically appear in the dropdown value list of config elements of the same type. Selecting a global element from the dropdown list as a value links this config element to the global element. In case the global element is removed, all linked elements' values are replaced by the value of the deleted global element.
The sidebar features three widgets:
Open Files
: An overview of all open config files (select to change current tree)-
Program List
: A list of all programs defined in the schema of the active tree (filterable, supports drag and drop to tree, double click appends program) -
Undo Stack
: Tracks all changes in a config file (select to change state of tree)
In case the names of programs or config elements change over time, the GUI offers a rename feature to update outdated config files.
The changes must be documented in the schema using GROOPS' rename feature. Affected elements will be marked with an icon and
the context menu item Update name
will be available to change the element to the new name defined in the schema.
Additional keyboard shortcuts
- Tree navigation:
-
Enter
: Switch focus from tree to input field of selected row -
Escape
: Switch focus from input field back to tree -
Tab
: Next sibling element (or next sibling of parent if there is no next sibling, or next child otherwise) -
Shift+Tab
: Previous sibling element (or parent if there is no previous sibling) -
Ctrl+Tab
: Next tab/tree -
Ctrl+Shift+Tab
: Previous tab/tree -
Ctrl+Space
: Interact with the element (e.g. filename/program: open dialog; time: switch focus between input fields) -
Ctrl+Up/Down
: Next/previous sibling element -
Ctrl+Left/Right
: Fold/expand (complex) element
Ctrl+Shift+Up/Down
: Move unbounded list element (e.g. program, layer) up/down
Drag
: Copy tab (= keep in source window)
Shift+Drag
: Move tab (= remove from source window)
Drag
: Open file(s) in new tab(s)
Shift+Drag
: Open file in current tab (replaces current tab, only works with a single file)