$schema: "http://json-schema.org/draft-07/schema#" description: over-engineered conky schema required: [modules, layout] additionalProperties: false properties: modules: additionalProperties: false properties: filesystem: required: [show_smart, fs_paths] additionalProperties: false properties: show_smart: description: show the smart deamon indicator type: boolean fs_paths: description: the filesystem paths for which usage should be shown type: array minItems: 1 items: type: object required: [name, path] additionalProperties: false properties: name: type: string path: type: string graphics: required: [show_temp, show_clock, show_gpu_util, show_mem_util, show_vid_util] additionalProperties: false properties: show_temp: description: show the GPU temp type: boolean show_clock: description: show the GPU clock speeds type: boolean show_gpu_util: description: show the GPU utilization plot type: boolean show_mem_util: description: show the GPU memory utilization plot type: boolean show_vid_util: description: show the GPU video utilization plot type: boolean memory: required: [show_stats, show_plot, show_table] additionalProperties: false properties: show_stats: description: show memory stats/dial type: boolean show_plot: description: show the RAM utilization plot type: boolean show_table: description: show the memory process table type: boolean power: required: [battery, rapl_specs] additionalProperties: false properties: battery: description: the battery device to use (if applicable) anyOf: - type: string - type: "null" rapl_specs: description: the Intel RAPL specs for which plots should be made type: array items: type: object required: [name, address] additionalProperties: false properties: name: type: string address: type: string processor: required: [show_cores, show_stats, show_plot, show_table] additionalProperties: false properties: show_cores: description: show individual CPU cores type: boolean show_stats: description: show frequency/HWP stats type: boolean show_plot: description: show CPU utilization plot type: boolean show_table: description: show the CPU process table type: boolean readwrite: required: [devices] additionalProperties: false properties: devices: description: the devices to include in I/O summations type: array minItems: 1 items: type: string layout: required: [anchor, panels] additionalProperties: false properties: anchor: description: the coordinates of the upper-left corner to anchor the app type: array minItems: 2 maxItems: 2 items: type: integer panels: description: either a panel (object) or padding between panels (int) type: array items: anyOf: - type: integer minimum: 0 - type: object description: layout for a single panel required: [columns, margins] additionalProperties: false properties: margins: type: array minItems: 2 maxItems: 2 items: type: integer columns: description: | either the columns in this panel (object) or padding between columns (int) type: array minItems: 1 items: anyOf: - type: integer minimum: 0 - type: object required: [blocks, width] additionalProperties: false properties: width: description: the width of all modules in this column type: integer minimum: 0 blocks: description: | either a module name (string) or padding (int) type: array minItems: 1 items: anyOf: - type: integer minimum: 0 - type: string pattern: "^system|graphics|processor|readwrite|\ network|pacman|filesystem|power|memory$" theme: required: [font, patterns] additionalProperties: false properties: font: description: the font to use type: string patterns: required: [header, panel, text, border, plot, indicator] additionalProperties: false properties: header: &pattern oneOf: - type: integer - type: object oneOf: - required: [color, alpha] - required: [gradient] - required: [gradient_alpha] properties: color: type: integer alpha: anyOf: - type: "null" - &alpha {type: number, minimum: 0, maximum: 1} gradient: type: array minItems: 2 items: type: object required: [stop, color] additionalProperties: false properties: &gradient stop: type: number minimum: 0 maximum: 1 color: type: integer gradient_alpha: type: array minItems: 2 items: type: object required: [stop, color, alpha] additionalProperties: false properties: <<: *gradient alpha: *alpha panel: required: [bg] additionalProperties: false properties: bg: *pattern text: required: [active, inactive, critical] additionalProperties: false properties: active: *pattern inactive: *pattern critical: *pattern border: *pattern plot: required: [grid, outline, data] additionalProperties: false properties: grid: *pattern outline: *pattern data: required: [border, fill] additionalProperties: false properties: border: *pattern fill: *pattern indicator: required: [bg, fg] additionalProperties: false properties: bg: *pattern fg: required: [active, critical] additionalProperties: false properties: active: *pattern critical: *pattern