Skip to content

Display Configuration

The display configuration is a distinct YAML file from the regular configuration. It is populated on the initial startup of miracle with a basic information for your particular monitor sitation if it does not yet exist.

The most likely location is:

~/.config/miracle-wm/display.yaml.

Note

See the arch user guide for information about $XDG_CONFIG_HOME.

You may specify an alternative location by providing the commandline argument:

miracle-wm --display-config-path=/path/to/file

Configuration

The contents of the file describe a list of layouts that a user may choose from. Each layout has a unique name and a list of outputs. If the output is in the list, it is considered "used" and will have the provided attributes applied to it. An output is matched by its name. All attributes aside from the name are optional.

layouts:
  - name: string
    outputs:
      name: string      # the name of the output to match
      enabled: boolean  # whether or not the output is used
      position:         # the XY position of the output
        x: int
        y: int
      size:             # the size of the output, must match a resolution that the output supports, otherwise ignored
        width: int
        height: int
      refresh: double   # the refresh rate of the output, must match a valid resolution that the output supports, otherwise ignored
      orientation: normal | inverted | left | right
      scale: float      # a scale factor for the whole output
      group_id: int     # when non-zero, outputs with the same group_id will display the same content

Example

The following example is similar to something that might populate the default configuration. It tells the displays to be displayed side-by-side with their own content at normal orientations.

# ~/.config/miracle-wm/display.yaml 
layouts:
  - name: default
    outputs:
      - enabled: true
        name: HDMI-A-1
        position:
          x: 0
          y: 0
        size:
          width: 1920
          height: 1290
        refresh: 60
        orientation: normal
        scale: 1
        group_id: 0
      - enabled: true
        name: HDMI-A-2
        position:
          x: 1280
          y: 0
        size:
          width: 800
          height: 600
        refresh: 60
        orientation: normal
        scale: 1
        group_id: 0