# yaml-language-server: $schema=https://json-schema.org/draft/2020-12/schema $schema: https://json-schema.org/draft/2020-12/schema $id: https://raw.githubusercontent.com/alex-courtis/way-displays/refs/heads/master/schema/cfg-1.0.0.yaml type: object title: way-displays cfg description: |- Schema for https://github.com/alex-courtis/way-displays cfg.yaml properties: ARRANGE: enum: - ROW - COLUMN default: ROW ALIGN: $ref: 'types-1.0.0.yaml#/$defs/align' default: TOP ORDER: type: array description: |- ROW is arranged in order left to right. COLUMN is top to bottom. ORDER defaults to the order in which displays are discovered. items: $ref: 'types-1.0.0.yaml#/$defs/fuzzy_display_match' SCALING: type: boolean description: |- Enable scaling, overrides AUTO_SCALE and SCALE. default: true AUTO_SCALE: type: boolean description: |- The default is to scale each display by DPI. This may be disabled and scale 1 will be used, unless a SCALE has been specified. default: true AUTO_SCALE_MIN: type: number description: |- Set minimum value for auto scaling. default: 1.0 AUTO_SCALE_MAX: type: number description: |- Set maximum value for auto scaling. Ignored if below AUTO_SCALE_MIN. SCALE: type: array description: |- Auto scale may be overridden for each display. items: $ref: 'types-1.0.0.yaml#/$defs/scale' MODE: type: array description: |- Override the preferred mode. WARNING: this may result in an unusable display. See https://github.com/alex-courtis/way-displays#known-issues-with-workarounds items: $ref: 'types-1.0.0.yaml#/$defs/mode' TRANSFORM: type: array description: |- Rotate or translate the display. items: $ref: 'types-1.0.0.yaml#/$defs/transform' VRR_OFF: type: array description: |- VRR / adaptive sync is enabled by default. Disable it per display. items: $ref: 'types-1.0.0.yaml#/$defs/fuzzy_display_match' CALLBACK_CMD: type: string description: |- Sets a /bin/sh command to be executed following most events. Obeys LOG_THRESHOLD ${CALLBACK_MSG} contains a human readable message ${CALLBACK_LEVEL} LOG_THRESHOLD NOTE: Depending on your compositor this could get executed multiple times when a change happens. Especially likely on a (dis-)connect. LAPTOP_DISPLAY_PREFIX: type: string description: |- Laptop displays usually start with eDP e.g. eDP-1. This may be overridden if your laptop is different. LOG_THRESHOLD: $ref: 'types-1.0.0.yaml#/$defs/log_threshold' default: INFO description: |- Applies to logs and callbacks. DISABLED: type: array description: |- Disable the specified displays. items: $ref: 'types-1.0.0.yaml#/$defs/disabled' additionalProperties: false