The panel uses a simple YAML format for configuration. The file is located under the standard configuration directory, under the Dist folder, as the UDFPanelConfig.yaml file.

It looks like this:

position: [ 1360, 0]
size: [ 2560, 0 ]
top-margin: 8
columns: 3
fonts:
  - font: Font
    file: font.ttf
    size: 16
modules:
  - module: Test
    type: exec
    command: "printf \"exec\""
    on-click: "printf \"exec on click\""
    on-double-click: "printf \"exec on double click\""
    font: Font
    refresh-after: -1
    column: 1
  1. position - The position of the top-left corner of the panel on the screen
  2. size - The size of the bar, set the X or Y coordinates to 0 to use the default value. The default for X is 800. For Y it's 32
  3. top-margin - Additional margin applied to the top-most element to make the text appear more in the middle of the bar
  4. columns - Number of columns. Modules are placed in one of them
  5. fonts - An array of fonts, each font has an ID, a filename and a size
  6. modules - An array of modules, detailed below

Modules

Each module has a text ID, represented by the module key. Additionally, it has a type, which can be either exec or custom. Each module also has the column field to specify its column and the refresh-after field which makes the module code rerun after a certain number of seconds. If set to a negative value, it will not refresh.

Exec modules execute commands, whose STDOUT is captured to produce text output. Custom modules execute code loaded from a DLL using the C plugin API(to be developed).

Exec modules

Exec modules have a launch command, represented by the command field. It is a shell command that uses the bash shell. Additionally, the on-click and on-double-click commands are executed on single and double click, respectively.

A font using its font ID can also be used to change the font of the text, the module outputs.

Plugin modules

Coming soon!