From 8713c8eff2a95f72629b624c1089a59ef504abb0 Mon Sep 17 00:00:00 2001 From: Wu Zhenyu Date: Sat, 20 Jan 2024 12:01:37 +0800 Subject: [PATCH] other: add json schema (#1382) --- assets/bottom-schema.json | 384 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 384 insertions(+) create mode 100644 assets/bottom-schema.json diff --git a/assets/bottom-schema.json b/assets/bottom-schema.json new file mode 100644 index 000000000..826389d62 --- /dev/null +++ b/assets/bottom-schema.json @@ -0,0 +1,384 @@ +{ + "$id": "https://json.schemastore.org/bottom-schema.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "definitions": { + "row": { + "items": { + "properties": { + "ratio": { + "default": 1, + "type": "integer" + }, + "type": { + "enum": ["cpu", "mem", "proc", "net", "temp", "disk", "empty"], + "type": "string" + }, + "default": { + "default": true, + "type": "boolean" + } + }, + "patternProperties": { + "row(.child)+": { + "$ref": "#/definitions/row" + } + }, + "type": "object" + }, + "type": "array" + }, + "filter": { + "description": "hide specific temperature sensors, network interfaces, and disks using filters", + "properties": { + "is_list_ignored": { + "default": true, + "type": "boolean" + }, + "list": { + "type": "array" + }, + "regex": { + "default": true, + "type": "boolean" + }, + "case_sensitive": { + "default": false, + "type": "boolean" + }, + "whole_word": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + } + }, + "properties": { + "flags": { + "description": "This group of options represents a command-line flag/option. Flags explicitly added when running (ie: btm -a) will override this config file if an option is also set here", + "properties": { + "hide_avg_cpu": { + "default": false, + "description": "Whether to hide the average cpu entry", + "type": "boolean" + }, + "dot_marker": { + "default": false, + "description": "Whether to use dot markers rather than braille", + "type": "boolean" + }, + "rate": { + "default": 1000, + "description": "The update rate of the application", + "type": "integer" + }, + "left_legend": { + "default": false, + "description": "Whether to put the CPU legend to the left", + "type": "boolean" + }, + "current_usage": { + "default": false, + "description": "Whether to set CPU% on a process to be based on the total CPU or just current usage", + "type": "boolean" + }, + "unnormalized_cpu": { + "default": false, + "description": "Whether to set CPU% on a process to be based on the total CPU or per-core CPU% (not divided by the number of cpus)", + "type": "boolean" + }, + "group_processes": { + "default": false, + "description": "Whether to group processes with the same name together by default", + "type": "boolean" + }, + "case_sensitive": { + "default": false, + "description": "Whether to make process searching case sensitive by default", + "type": "boolean" + }, + "whole_word": { + "default": false, + "description": "Whether to make process searching look for matching the entire word by default", + "type": "boolean" + }, + "regex": { + "default": false, + "description": "Whether to make process searching use regex by default", + "type": "boolean" + }, + "temperature_type": { + "default": "k", + "enum": ["k", "f", "c", "kelvin", "fahrenheit", "celsius"], + "description": "Defaults to Celsius", + "type": "string" + }, + "default_time_value": { + "default": 60000, + "description": "The default time interval in milliseconds", + "type": "integer" + }, + "time_delta": { + "default": 15000, + "description": "The time delta on each zoom in/out action in milliseconds", + "type": "integer" + }, + "hide_time": { + "default": false, + "description": "Hides the time scale", + "type": "boolean" + }, + "default_widget_type": { + "default": "proc", + "description": "Override layout default widget", + "type": "string" + }, + "default_widget_count": { + "default": 1, + "description": "Override layout default widget", + "type": "integer" + }, + "expanded_on_startup": { + "default": true, + "description": "Expand selected widget upon starting the app", + "type": "boolean" + }, + "basic": { + "default": false, + "description": "Use basic mode", + "type": "boolean" + }, + "use_old_network_legend": { + "default": false, + "description": "Use the old network legend style", + "type": "boolean" + }, + "hide_table_gap": { + "default": false, + "description": "Remove space in tables", + "type": "boolean" + }, + "battery": { + "default": false, + "description": "Show the battery widgets", + "type": "boolean" + }, + "disable_click": { + "default": false, + "description": "Disable mouse clicks", + "type": "boolean" + }, + "color": { + "default": "default", + "enum": [ + "default", + "default-light", + "gruvbox", + "gruvbox-light", + "nord", + "nord-light" + ], + "description": "Built-in themes", + "type": "string" + }, + "mem_as_value": { + "default": false, + "description": "Show memory values in the processes widget as values by default", + "type": "boolean" + }, + "tree": { + "default": false, + "description": "Show tree mode by default in the processes widget", + "type": "boolean" + }, + "show_table_scroll_position": { + "default": false, + "description": "Shows an indicator in table widgets tracking where in the list you are", + "type": "boolean" + }, + "process_command": { + "default": false, + "description": "Show processes as their commands by default in the process widget", + "type": "boolean" + }, + "network_use_binary_prefix": { + "default": false, + "description": "Displays the network widget with binary prefixes", + "type": "boolean" + }, + "network_use_bytes": { + "default": false, + "description": "Displays the network widget using bytes", + "type": "boolean" + }, + "network_use_log": { + "default": false, + "description": "Displays the network widget with a log scale", + "type": "boolean" + }, + "disable_advanced_kill": { + "default": false, + "description": "Hides advanced options to stop a process on Unix-like systems", + "type": "boolean" + }, + "enable_gpu_memory": { + "default": false, + "description": "Shows GPU(s) memory", + "type": "boolean" + }, + "retention": { + "default": "10m", + "description": "How much data is stored at once in terms of time", + "type": "string" + } + }, + "type": "object" + }, + "colors": { + "description": "These are all the components that support custom theming. Note that colour support will depend on terminal support", + "properties": { + "table_header_color": { + "default": "LightBlue", + "description": "Represents the colour of table headers (processes, CPU, disks, temperature)", + "type": "string" + }, + "widget_title_color": { + "default": "Gray", + "description": "Represents the colour of the label each widget has", + "type": "string" + }, + "avg_cpu_color": { + "default": "Red", + "description": "Represents the average CPU color", + "type": "string" + }, + "cpu_core_colors": { + "items": { + "uniqueItems": true, + "minItems": 1, + "type": "string" + }, + "default": [ + "LightMagenta", + "LightYellow", + "LightCyan", + "LightGreen", + "LightBlue", + "LightRed", + "Cyan", + "Green", + "Blue", + "Red" + ], + "description": "Represents the colour the core will use in the CPU legend and graph", + "type": "array" + }, + "ram_color": { + "default": "LightMagenta", + "description": "Represents the colour RAM will use in the memory legend and graph", + "type": "string" + }, + "swap_color": { + "default": "LightYellow", + "description": "Represents the colour SWAP will use in the memory legend and graph", + "type": "string" + }, + "arc_color": { + "default": "LightCyan", + "description": "Represents the colour ARC will use in the memory legend and graph", + "type": "string" + }, + "gpu_core_colors": { + "items": { + "uniqueItems": true, + "minItems": 1, + "type": "string" + }, + "default": [ + "LightGreen", + "LightBlue", + "LightRed", + "Cyan", + "Green", + "Blue", + "Red" + ], + "description": "Represents the colour the GPU will use in the memory legend and graph", + "type": "array" + }, + "rx_color": { + "default": "LightCyan", + "description": "Represents the colour rx will use in the network legend and graph", + "type": "string" + }, + "tx_color": { + "default": "LightGreen", + "description": "Represents the colour tx will use in the network legend and graph", + "type": "string" + }, + "border_color": { + "default": "Gray", + "description": "Represents the colour of the border of unselected widgets", + "type": "string" + }, + "highlighted_border_color": { + "default": "LightBlue", + "description": "Represents the colour of the border of selected widgets", + "type": "string" + }, + "text_color": { + "default": "Gray", + "description": "Represents the colour of most text", + "type": "string" + }, + "selected_text_color": { + "default": "Black", + "description": "Represents the colour of text that is selected", + "type": "string" + }, + "selected_bg_color": { + "default": "LightBlue", + "description": "Represents the background colour of text that is selected", + "type": "string" + }, + "graph_color": { + "default": "Gray", + "description": "Represents the colour of the lines and text of the graph", + "type": "string" + }, + "high_battery_color": { + "default": "green", + "description": "Represents the colours of the battery based on charge", + "type": "string" + }, + "medium_battery_color": { + "default": "yellow", + "description": "Represents the colours of the battery based on charge", + "type": "string" + }, + "low_battery_color": { + "default": "red", + "description": "Represents the colours of the battery based on charge", + "type": "string" + } + } + }, + "row": { + "$ref": "#/definitions/row" + }, + "disk_filter": { + "$ref": "#/definitions/filter" + }, + "mount_filter": { + "$ref": "#/definitions/filter" + }, + "temp_filter": { + "$ref": "#/definitions/filter" + }, + "net_filter": { + "$ref": "#/definitions/filter" + } + }, + "title": "JSON schema for bottom", + "type": "object" +}