{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://raw.githubusercontent.com/U-C-S/Hurl/main/Utils/UserSettings.schema.json", "title": "Hurl UserSettings Schema", "type": "object", "properties": { "LastUpdated": { "type": "string" }, "Browsers": { "type": "array", "items": { "type": "object", "properties": { "Name": { "type": "string", "description": "The name of the browser. This must be unique." }, "ExePath": { "type": "string", "description": "The path to the browser executable. Use LaunchArgs to pass arguments to the executable." }, "CustomIconPath": { "type": "string", "description": "The path to a custom icon for the browser. This must be a .ico file." }, "LaunchArgs": { "type": "string", "description": "Arguments to pass to the browser executable. Use {url} to insert the URL." }, "Hidden": { "type": "boolean", "description": "If true, the browser will not be shown in the browser list." }, "AlternateLaunches": { "type": "array", "description": "Alternate ways to launch the browser. These will be shown in the browser list through a context menu.", "items": { "type": "object", "properties": { "ItemName": { "type": "string" }, "LaunchArgs": { "type": "string" } }, "required": ["ItemName", "LaunchArgs"] } } }, "required": ["Name", "ExePath"] } }, "AppSettings": { "type": "object", "properties": { "LaunchUnderMouse": { "type": "boolean", "description": "If true, the browser will be launched under the mouse cursor." }, "NoWhiteBorder": { "type": "boolean", "description": "If true, the white border around the browser window will be removed." }, "RuleMatching": { "type": "boolean", "description": "If true, Enables Rule Matching feature with the rules defined in the 'Rulesets' Property." }, "BackgroundType": { "type": "string", "description": "The type of background to use for the browser window. mica or acrylic.", "enum": ["mica", "acrylic"] }, "WindowSize": { "type": "array", "description": "The size of the Hurl browser selector window. define as an array of two integers for width and height.", "items": [ { "type": "integer" }, { "type": "integer" } ] } } }, "Rulesets": { "type": "array", "description": "Rulesets to apply to URLs. Each Ruleset can contain multiple rules and One browser can be assigned to multiple Rulesets.", "items": { "type": "object", "properties": { "Rules": { "type": "array", "items": { "type": "string", "description": "The URL pattern prefixed with s$, g$, r$ or d$, followed by the pattern to match. s$ = simple string, g$ = glob, r$ = regex, d$ = domain.", "pattern": "^(s\\$|g\\$|r\\$|d\\$).*" } }, "BrowserName": { "type": "string", "description": "The name of the browser to launch for this Ruleset. should match the Name property of a browser in the Browsers array." }, "RulesetName": { "type": "string", "description": "The name of the Ruleset. This should ideally be unique." }, "AltLaunchIndex": { "type": "integer", "description": "The index of the Alternate Launch to used. Index starts from 0,1,2..." } }, "required": ["Rules", "BrowserName"] } } }, "required": ["Browsers"] }