{
// Example JSONC config file
// This needs to be renamed to "config.jsonc" ("config.json" will also work, even if the file is actually a jsonc) in order for oxker to automatically load
// oxker will also read .toml and .json files which use the same key/value structure & format as this file
// Every key is optional, with defaults that oxker will choose if missing or invalid
// The `--config-file` cli argument can be used to load configuration files from any readable location
// Docker update interval in ms, minimum effectively 1000
"docker_interval": 1000,
// Attempt to colorize the logs, conflicts with "raw"
"color_logs": false,
// Show raw logs, default is to remove ansi formatting, conflicts with "color"
"raw_logs": false,
// Show self (the oxker container) when running as a docker container
"show_self": false,
// Show std_err in logs
"show_std_err": true,
// Show a timestamp for every log entry
"show_timestamp": true,
// Don't draw gui - for debugging - mostly pointless
"gui": true,
// Docker host location. Will take priority over a DOCKER_HOST env.
// "host": "/var/run/docker.sock",
// Display the timestamp in a custom format, if given option is invalid, it will default to %Y-%m-%dT%H:%M:%S.%8f -> 2025-02-18T12:34:56.01234567
// *Should* accept any valid strftime string up to 32 chars, see https://strftime.org/
"timestamp_format": "%Y-%m-%dT%H:%M:%S.%8f",
// Display the container logs timestamp with a given timezone, if timezone is unknown, defaults to UTC
"timezone": "Etc/UTC",
// Directory for saving exported logs, defaults to `$HOME`, this is automatically *correctly* calculated for Linux, Mac, and Windows
// "save_dir": "$HOME",
// Force use of docker cli when execing into containers, honestly mostly pointless
"use_cli": false,
// Show the logs section - this can be changed during operation with the log_section_toggle key
"show_logs": true,
// Use case-sensitive matching for logs
"log_search_case_sensitive": true,
//////////////////
// Custom Keymap //
//////////////////
// Available keys are;
// 1) a-z and A-Z
// 2) 0-9
// WARNING if using the \ key, it needs to be escaped, e.g. "log_section_toggle": ["\\"]
// 3) / \ , . # ' [ ] ; = -
// 3) F1-F12
// 4) backspace, tab, backtab, delete, end, esc, home, insert, pagedown, pageup, left, right, up, down
// Each definition can have two keys associated with it
// WARNING "scroll_many" only accepts control, alt, shift, with no secondary option
// If any key clashes are found, oxker will revert to it's default keymap
"keymap": {
// Clear any popup boxes, filter panel, or help panel
"clear": [
"c",
"esc"
],
// Cancel delete - clear also works here
"delete_deny": [
"n"
],
// Confirm Delete
"delete_confirm": [
"y"
],
// Exec into the selected container
"exec": [
"e"
],
// Enter filter mode
"filter_mode": [
"/",
"F1"
],
// Enter log search mode
"log_search_mode": [
"#"
],
// Quit at anytime
"quit": [
"q"
],
// Save logs of selected container to file on disk
"save_logs": [
"s"
],
// Scroll down a list by one item
"scroll_down": [
"down",
"j"
],
// Scroll down to the end of a list
"scroll_end": [
"end"
],
// Modifier to scroll by 10 lines instead of one, used in conjunction with scroll_up/scroll_down
"scroll_many": [
"control"
],
// Scroll up to the start of a list
"scroll_start": [
"home"
],
// Scroll up a list by one item
"scroll_up": [
"up",
"k"
],
// Horizontal scroll of the logs
"scroll_forward": [
"right"
],
"scroll_back": [
"left"
],
// Select next panel
"select_next_panel": [
"tab"
],
// Select previous panel
"select_previous_panel": [
"backtab"
],
// Sort the containers based on specific column
"sort_by_name": [
"1"
],
"sort_by_state": [
"2"
],
"sort_by_status": [
"3"
],
"sort_by_cpu": [
"4"
],
"sort_by_memory": [
"5"
],
"sort_by_id": [
"6"
],
"sort_by_image": [
"7"
],
"sort_by_rx": [
"8"
],
"sort_by_tx": [
"9"
],
// Reset the sorted containers
"sort_reset": [
"0"
],
// Toggle the help panel
"toggle_help": [
"h"
],
// Toggle mouse capture
"toggle_mouse_capture": [
"m"
],
// Reduce the height of the logs list section
"log_section_height_decrease": [
"-"
],
// Increase the height of the logs list section
"log_section_height_increase": [
"+"
],
// Toggle visibility of the log section
"log_section_toggle": [
"\\"
],
// Toggle to inspect container screen
"inspect": [
"i"
],
// Force a complete clear & redraw of the screen
"force_redraw": [
"f"
]
},
////////////////////
// Custom Colors //
////////////////////
// Colors be listed as either;
// 1) named ANSI: 'red', case insensitive, see https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
// 2) Hex values: '#FF0000', case insensitive
// 3) 'reset' for transparency
// Some background/foreground combinations don't work, I *think* this is an issue/feature of ratatui - but I may have just made a mistake somewhere
"colors": {
// The single line bar at the uppermost of the display. Contains name/state/status headings etc
"headers_bar": {
// Background color of the entire line
"background": "magenta",
// Animated loading icon at the start of the bar
"loading_spinner": "white",
// Text color
"text": "black",
// Text color of a selected header
"text_selected": "gray"
},
// The borders around the selectable panels - Containers, Commands, Logs
"borders": {
// Border when selected
"selected": "lightcyan",
// Border when not selected
"unselected": "grey"
},
// The containers sections, in the future more color customization options should be made available in this section
"containers": {
// The icon use to illustrate which container is currently selected
"icon": "white",
// Background color of panel
"background": "reset",
// At the moment, this will only change the color of the name, id, and image columns
"text": "blue",
// Text color of the RX column
"text_rx": "#FFE9C1",
// Text color of the TX column
"text_tx": "#CD8C8C"
},
// Each state of a container has a color, which is used in multiple places, i.e. chart titles, state/status/cpu/memory columns in the container section
"container_state": {
"dead": "red",
"exited": "red",
"paused": "yellow",
"removing": "lightred",
"restarting": "lightgreen",
"running_healthy": "green",
"running_unhealthy": "#FFB224",
"unknown": "red"
},
// The color the of Docker commands available for each container
"commands": {
// Background color of panel
"background": "reset",
"pause": "yellow",
"restart": "magenta",
"stop": "red",
"delete": "gray",
"resume": "blue",
"start": "green"
},
// The cpu chart
"chart_cpu": {
// Background color of panel
"background": "reset",
// Border color
"border": "white",
// Chart title
"title": "green",
// Maximum CPU percentage
"max": "#FFB224",
// Points on the chart
"points": "magenta",
// The charts y-axis
"y_axis": "white"
},
// The memory chart
"chart_memory": {
// Background color of panel
"background": "reset",
// Border color
"border": "white",
// Chart title
"title": "green",
// Maximum memory use
"max": "#FFB224",
// Points on the chart
"points": "cyan",
// The charts y-axis
"y_axis": "white"
},
// The ports chart
"chart_ports": {
// Background color of panel
"background": "reset",
// Border color
"border": "white",
// Chart title
"title": "green",
// Private/Public/IP headings
"headings": "yellow",
// Ports & IP listing text
"text": "white"
},
// The bandwidth chart
"chart_bandwidth": {
//Background color of panel
"background": "reset",
// Border color
"border": "white",
// Maximum RX value - again paused & stopped colors not yet customizable
"max_rx": "#FFE9C1",
// # Maximum TX value - again paused & stopped colors not yet customizable
"max_tx": "#CD8C8C",
// RX points on the chart - again paused & stopped colors not yet customizable
"points_rx": "#FFE9C1",
// TX points on the chart - again paused & stopped colors not yet customizable
"points_tx": "#CD8C8C",
// RX title color
"title_rx": "#FFE9C1",
// TX title color
"title_tx": "#CD8C8C",
// The charts y-axis
"y_axis": "white"
},
// The filter panel
"filter": {
// Background color of panel
"background": "reset",
// color of text
"text": "gray",
// background color of the selected filter by item (Name/Image/Status/All)
"selected_filter_background": "gray",
// text color of the selected filter by item (Name/Image/Status/All)
"selected_filter_text": "black",
// Highlighted text color
"highlight": "magenta"
},
// The log search panel
"log_search": {
// Background color of panel
"background": "reset",
// color of text
"text": "gray",
// text color of the buttons text
"button_text": "black",
// Highlighted text color
"highlight": "magenta"
},
// The logs panel, will only be applied if color_logs is false
"logs": {
// Background color of panel
"background": "reset",
// text color
"text": "reset"
},
// The help popup
"popup_help": {
// Background color
"background": "magenta",
// Text color
"text": "black",
// Highlighted text color
"text_highlight": "white"
},
// The info popup - used to display small messages - such as saving logs to disk, or change of mouse capture settings
"popup_info": {
// Background color
"background": "blue",
// Text color
"text": "white"
},
// The delete popup - used to display a confirmation warning when about to delete a container
"popup_delete": {
// Background color
"background": "white",
// Text color
"text": "black",
// Highlighted text color
"text_highlight": "red"
},
// The error popup - hopefully you'll never have to see this
"popup_error": {
// Background color
"background": "red",
// Text color
"text": "white"
}
}
}