214 lines
8.5 KiB
JSON
214 lines
8.5 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "WallReel Configuration",
|
|
"type": "object",
|
|
"properties": {
|
|
"wallpaper": {
|
|
"type": "object",
|
|
"properties": {
|
|
"paths": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": [],
|
|
"description": "List of paths to images."
|
|
},
|
|
"dirs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "Path to the directory."
|
|
},
|
|
"recursive": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Whether to search the directory recursively."
|
|
}
|
|
}
|
|
},
|
|
"default": [],
|
|
"description": "Directories to search for images."
|
|
},
|
|
"excludes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": [],
|
|
"description": "Exclude patterns (regex)"
|
|
}
|
|
}
|
|
},
|
|
"theme": {
|
|
"type": "object",
|
|
"properties": {
|
|
"palettes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "Name of the palette"
|
|
},
|
|
"colors": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "Name of the color"
|
|
},
|
|
"value": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "Color value in hex format, e.g. \"#ff0000\" for red"
|
|
}
|
|
}
|
|
},
|
|
"default": [],
|
|
"description": "List of colors in the palette"
|
|
}
|
|
}
|
|
},
|
|
"default": []
|
|
}
|
|
}
|
|
},
|
|
"action": {
|
|
"type": "object",
|
|
"properties": {
|
|
"previewDebounceTime": {
|
|
"type": "integer",
|
|
"default": 300,
|
|
"description": "Debounce time for preview action in milliseconds"
|
|
},
|
|
"printSelected": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Whether to print the selected wallpaper path to stdout on confirm"
|
|
},
|
|
"printPreview": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Whether to print the previewed wallpaper path to stdout on preview"
|
|
},
|
|
"onSelected": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "Command to execute on confirmation"
|
|
},
|
|
"onPreview": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "Command to execute on preview"
|
|
},
|
|
"saveState": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"key": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "Key of value to save, used as {{ key }} in onRestore command"
|
|
},
|
|
"fallback": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "Value to save, used when \"command\" is not set or command execution fails or output is empty"
|
|
},
|
|
"command": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "Command that outputs(to stdout) the value to save when executed"
|
|
},
|
|
"timeout": {
|
|
"type": "integer",
|
|
"default": 3000,
|
|
"description": "Timeout for executing command in milliseconds. 0 or negative means no timeout"
|
|
}
|
|
}
|
|
},
|
|
"default": [],
|
|
"description": "Useful for restore command"
|
|
},
|
|
"onRestore": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "Command to execute on restore ({{ key }} -> value defined or obtained in saveState)"
|
|
},
|
|
"quitOnSelected": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Whether to quit the application after confirming a wallpaper"
|
|
},
|
|
"restoreOnClose": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Whether to run the restore command after closing the application without confirming a wallpaper"
|
|
}
|
|
}
|
|
},
|
|
"style": {
|
|
"type": "object",
|
|
"properties": {
|
|
"image_width": {
|
|
"type": "integer",
|
|
"default": 320,
|
|
"description": "Width of each image"
|
|
},
|
|
"image_height": {
|
|
"type": "integer",
|
|
"default": 180,
|
|
"description": "Height of each image"
|
|
},
|
|
"image_focus_scale": {
|
|
"type": "number",
|
|
"default": 1.5,
|
|
"minimum": 1.0,
|
|
"description": "Scale of the focused image (relative to unfocused image)"
|
|
},
|
|
"window_width": {
|
|
"type": "integer",
|
|
"default": 750,
|
|
"description": "Initial window width"
|
|
},
|
|
"window_height": {
|
|
"type": "integer",
|
|
"default": 500,
|
|
"description": "Initial window height"
|
|
}
|
|
}
|
|
},
|
|
"cache": {
|
|
"type": "object",
|
|
"properties": {
|
|
"saveSortMethod": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Whether to persist the sort type and order"
|
|
},
|
|
"savePalette": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Whether to persist the selected palette"
|
|
},
|
|
"maxImageEntries": {
|
|
"type": "integer",
|
|
"default": 1000,
|
|
"description": "Maximum number of entries in the image cache (older entries will be evicted)"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|