Table of Contents

Configuration Management

Terminal.Gui provides persistent configuration settings via the ConfigurationManager class.

  1. Settings. Settings are applied to the Application class. Settings are accessed via the Settings property of ConfigurationManager.
  2. Themes. Themes are a named collection of settings impacting how applications look. The default theme is named "Default". Two other built-in themes are provided: "Dark", and "Light". Additional themes can be defined in the configuration files.
  3. AppSettings. Applications can use the ConfigurationManager to store and retrieve application-specific settings.

The ConfigurationManager will look for configuration files in the .tui folder in the user's home directory (e.g. C:/Users/username/.tui or /usr/username/.tui), the folder where the Terminal.Gui application was launched from (e.g. ./.tui), or as a resource within the Terminal.Gui application's main assembly.

Settings that will apply to all applications (global settings) reside in files named config.json. Settings that will apply to a specific Terminal.Gui application reside in files named appname.config.json, where appname is the assembly name of the application (e.g. UICatalog.config.json).

Settings are applied using the following precedence (higher precedence settings overwrite lower precedence settings):

  1. Default - Default settings in the Terminal.Gui assembly -- Lowest precedence.

  2. Runtime - Settings stored in the RuntimeConfig static property.

  3. AppResources - App settings in app resources (Resources/config.json).

  4. AppHome - App-specific settings in the users's home directory (~/.tui/appname.config.json).

  5. AppCurrent - App-specific settings in the directory the app was launched from (./.tui/appname.config.json).

  6. GlobalHome - Global settings in the the user's home directory (~/.tui/config.json).

  7. GlobalCurrent - Global settings in the directory the app was launched from (./.tui/config.json) --- Hightest precedence.

The UI Catalog application provides an example of how to use the ConfigurationManager class to load and save configuration files. The Configuration Editor scenario provides an editor that allows users to edit the configuration files. UI Catalog also uses a file system watcher to detect changes to the configuration files to tell ConfigurationManager to reload them; allowing users to change settings without having to restart the application.

What Can Be Configured

Settings

(Note, this list may not be complete; search the source code for SerializableConfigurationProperty to find all settings that can be configured.)

Glyphs

The standard set of glyphs used for standard views (e.g. the default indicator for Button) and line drawing (e.g. LineCanvas) can be configured.

The value can be either a decimal number or a string. The string may be:

  • A Unicode char (e.g. "☑")
  • A hex value in U+ format (e.g. "U+2611")
  • A hex value in UTF-16 format (e.g. "\u2611")
  "Glyphs": {
    "RightArrow": "►",
    "LeftArrow": "U+25C4",
    "DownArrow": "\\u25BC",
    "UpArrow": 965010
  }

Themes

A Theme is a named collection of settings that impact the visual style of Terminal.Gui applications. The default theme is named "Default". The built-in configuration within the Terminal.Gui library defines two more themes: "Dark", and "Light". Additional themes can be defined in the configuration files. The JSON property Theme defines the name of the theme that will be used. If the theme is not found, the default theme will be used.

Themes support defining ColorSchemes as well as various default settings for Views. Both the default color schemes and user-defined color schemes can be configured. See ColorSchemes for more information.

Key Bindings

Key bindings are defined in the KeyBindings property of the configuration file. The value is an array of objects, each object defining a key binding. The key binding object has the following properties:

  • Key: The key to bind to. The format is a string describing the key (e.g. "q", "Q, "Ctrl+Q"). Function keys are specified as "F1", "F2", etc.

Configuration File Schema

Settings are defined in JSON format, according to the schema found here:

https://gui-cs.github.io/Terminal.Gui/schemas/tui-config-schema.json

Schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "description": "The JSON schema for the Terminal.Gui Configuration Manager (https://gui-cs.github.io/Terminal.GuiV2Docs/schemas/tui-config-schema.json).",
  "type": "object",
  "properties": {
    "Application.ArrangeKey": {
      "description": "Key eanable arrange mode (move/size with keyboard).",
      "$ref": "#/definitions/Key"
    },
    "Application.Force16Colors": {
      "description": "Force the application to use 16 colors.",
      "type": "boolean"
    },
    "Application.ForceDriver": {
      "description": "Force the application to use a specific driver.",
      "type": "string"
    },
    "Application.IsMouseDisabled": {
      "description": "Disable or enable the mouse. The mouse is enabled by default.",
      "type": "boolean"
    },
    "Application.NextTabGroupKey": {
      "description": "Key to navigate to the next tab group.",
      "$ref": "#/definitions/Key"
    },
    "Application.NextTabKey": {
      "description": "Key to navigate to the next tab.",
      "$ref": "#/definitions/Key"
    },
    "Application.PrevTabGroupKey": {
      "description": "Key to navigate to the previous tab group.",
      "$ref": "#/definitions/Key"
    },
    "Application.PrevTabKey": {
      "description": "Key to navigate to the previous tab.",
      "$ref": "#/definitions/Key"
    },
    "Application.QuitKey": {
      "description": "The key to quit the application. Esc is the default.",
      "$ref": "#/definitions/Key"
    },
    "AppSettings": {
      "description": "Application-specific settings.",
      "type": "object",
      "properties": {
        "ConfigurationEditor.EditorColorScheme": {
          "description": "Color scheme for the configuration editor.",
          "$ref": "#/definitions/ColorScheme"
        },
        "UICatalog.StatusBar": {
          "description": "Enable or disable the status bar in the UI catalog.",
          "type": "boolean"
        }
      }
    },
    "Colors16": {
      "description": "Mapping of 16 colors to their names.",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/Color"
      }
    },
    "ConfigurationManager.ThrowOnJsonErrors": {
      "description": "Throw exceptions on JSON errors.",
      "type": "boolean"
    },
    "ContextMenu.DefaultKey": {
      "description": "Default key for the context menu.",
      "$ref": "#/definitions/Key"
    },
    "FileDialog.MaxSearchResults": {
      "description": "Maximum number of search results in the file dialog.",
      "type": "integer"
    },
    "FileDialogStyle.DefaultUseColors": {
      "description": "Use colors in the file dialog by default.",
      "type": "boolean"
    },
    "FileDialogStyle.DefaultUseUnicodeCharacters": {
      "description": "Use Unicode characters in the file dialog by default.",
      "type": "boolean"
    },
    "Glyphs": {
      "description": "Custom glyphs used in the application.",
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "Key.Separator": {
      "description": "Separator used in key combinations.",
      "type": "string"
    },
    "Theme": {
      "description": "The currently selected theme. The default is 'Default'.",
      "type": "string"
    },
    "Themes": {
      "description": "An array of Theme objects. Each Theme specifies a set of settings for an application. Set Theme to the name of the active theme.",
      "type": "array",
      "items": {
        "$ref": "#/definitions/Theme"
      }
    }
  },
  "definitions": {
    "Theme": {
      "description": "A Theme is a collection of settings that are named.",
      "type": "object",
      "properties": {
        "Button.DefaultHighlightStyle": {
          "description": "Default highlight style for buttons.",
          "type": "string"
        },
        "Button.DefaultShadow": {
          "description": "Default shadow style for buttons.",
          "type": "string"
        },
        "CheckBox.DefaultHighlightStyle": {
          "description": "Default highlight style for checkboxes.",
          "type": "string"
        },
        "ColorSchemes": {
          "description": "The ColorSchemes defined for this Theme.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/ColorScheme"
          }
        },
        "Dialog.DefaultBorderStyle": {
          "description": "Default border style for dialogs.",
          "type": "string"
        },
        "Dialog.DefaultButtonAlignment": {
          "description": "Default button alignment for dialogs.",
          "type": "string"
        },
        "Dialog.DefaultButtonAlignmentModes": {
          "description": "Default button alignment modes for dialogs.",
          "type": "string"
        },
        "Dialog.DefaultMinimumHeight": {
          "description": "Default minimum height for dialogs.",
          "type": "integer"
        },
        "Dialog.DefaultMinimumWidth": {
          "description": "Default minimum width for dialogs.",
          "type": "integer"
        },
        "Dialog.DefaultShadow": {
          "description": "Default shadow style for dialogs.",
          "type": "string"
        },
        "FrameView.DefaultBorderStyle": {
          "description": "Default border style for frame views.",
          "type": "string"
        },
        "MessageBox.DefaultBorderStyle": {
          "description": "Default border style for message boxes.",
          "type": "string"
        },
        "MessageBox.DefaultButtonAlignment": {
          "description": "Default button alignment for message boxes.",
          "type": "string"
        },
        "MessageBox.DefaultMinimumHeight": {
          "description": "Default minimum height for message boxes.",
          "type": "integer"
        },
        "MessageBox.DefaultMinimumWidth": {
          "description": "Default minimum width for message boxes.",
          "type": "integer"
        },
        "NerdFonts.Enable": {
          "description": "Enable or disable Nerd Fonts.",
          "type": "boolean"
        },
        "Window.DefaultBorderStyle": {
          "description": "Default border style for windows.",
          "type": "string"
        },
        "Window.DefaultShadow": {
          "description": "Default shadow style for windows.",
          "type": "string"
        }
      }
    },
    "ColorScheme": {
      "description": "A Terminal.Gui ColorScheme. Specifies the Foreground & Background colors for modes of an Terminal.Gui app.",
      "type": "object",
      "properties": {
        "Normal": {
          "description": "The foreground and background color for text when the view is not focused, hot, or disabled.",
          "$ref": "#/definitions/Attribute"
        },
        "Focus": {
          "description": "The foreground and background color for text when the view has focus.",
          "$ref": "#/definitions/Attribute"
        },
        "HotNormal": {
          "description": "The foreground and background color for text when the view is highlighted (hot).",
          "$ref": "#/definitions/Attribute"
        },
        "HotFocus": {
          "description": "The foreground and background color for text when the view is highlighted (hot) and has focus.",
          "$ref": "#/definitions/Attribute"
        },
        "Disabled": {
          "description": "The foreground and background color for text when the view is disabled.",
          "$ref": "#/definitions/Attribute"
        }
      }
    },
    "Attribute": {
      "description": "A Terminal.Gui color attribute. Specifies the Foreground & Background colors for Terminal.Gui output.",
      "type": "object",
      "properties": {
        "Foreground": {
          "$ref": "#/definitions/Color"
        },
        "Background": {
          "$ref": "#/definitions/Color"
        }
      },
      "required": [
        "Foreground",
        "Background"
      ]
    },
    "Color": {
      "description": "One be either one of the W3C standard color names, an rgb(r,g,b) tuple, or a hex color string in the format #RRGGBB.",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "type": "string",
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "AliceBlue",
            "AntiqueWhite",
            "Aqua",
            "Aquamarine",
            "Azure",
            "Beige",
            "Bisque",
            "Black",
            "BlanchedAlmond",
            "Blue",
            "BlueViolet",
            "Brown",
            "BurlyWood",
            "CadetBlue",
            "Chartreuse",
            "Chocolate",
            "Coral",
            "CornflowerBlue",
            "Cornsilk",
            "Crimson",
            "Cyan",
            "DarkBlue",
            "DarkCyan",
            "DarkGoldenRod",
            "DarkGray",
            "DarkGreen",
            "DarkKhaki",
            "DarkMagenta",
            "DarkOliveGreen",
            "DarkOrange",
            "DarkOrchid",
            "DarkRed",
            "DarkSalmon",
            "DarkSeaGreen",
            "DarkSlateBlue",
            "DarkSlateGray",
            "DarkTurquoise",
            "DarkViolet",
            "DeepPink",
            "DeepSkyBlue",
            "DimGray",
            "DodgerBlue",
            "FireBrick",
            "FloralWhite",
            "ForestGreen",
            "Fuchsia",
            "Gainsboro",
            "GhostWhite",
            "Gold",
            "GoldenRod",
            "Gray",
            "Green",
            "GreenYellow",
            "HoneyDew",
            "HotPink",
            "IndianRed",
            "Indigo",
            "Ivory",
            "Khaki",
            "Lavender",
            "LavenderBlush",
            "LawnGreen",
            "LemonChiffon",
            "LightBlue",
            "LightCoral",
            "LightCyan",
            "LightGoldenRodYellow",
            "LightGray",
            "LightGreen",
            "LightPink",
            "LightSalmon",
            "LightSeaGreen",
            "LightSkyBlue",
            "LightSlateGray",
            "LightSteelBlue",
            "LightYellow",
            "Lime",
            "LimeGreen",
            "Linen",
            "Magenta",
            "Maroon",
            "MediumAquaMarine",
            "MediumBlue",
            "MediumOrchid",
            "MediumPurple",
            "MediumSeaGreen",
            "MediumSlateBlue",
            "MediumSpringGreen",
            "MediumTurquoise",
            "MediumVioletRed",
            "MidnightBlue",
            "MintCream",
            "MistyRose",
            "Moccasin",
            "NavajoWhite",
            "Navy",
            "OldLace",
            "Olive",
            "OliveDrab",
            "Orange",
            "OrangeRed",
            "Orchid",
            "PaleGoldenRod",
            "PaleGreen",
            "PaleTurquoise",
            "PaleVioletRed",
            "PapayaWhip",
            "PeachPuff",
            "Peru",
            "Pink",
            "Plum",
            "PowderBlue",
            "Purple",
            "RebeccaPurple",
            "Red",
            "RosyBrown",
            "RoyalBlue",
            "SaddleBrown",
            "Salmon",
            "SandyBrown",
            "SeaGreen",
            "SeaShell",
            "Sienna",
            "Silver",
            "SkyBlue",
            "SlateBlue",
            "SlateGray",
            "Snow",
            "SpringGreen",
            "SteelBlue",
            "Tan",
            "Teal",
            "Thistle",
            "Tomato",
            "Turquoise",
            "Violet",
            "Wheat",
            "White",
            "WhiteSmoke",
            "Yellow",
            "YellowGreen"
          ]
        },
        {
          "type": "string",
          "pattern": "^rgb\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}\\s*,\\s*\\d{1,3}\\s*\\)$"
        },
        {
          "type": "string",
          "pattern": "^#[0-9a-fA-F]{6}$"
        }
      ]
    },
    "Key": {
      "description": "A key pressed on the keyboard (e.g. \"Ctrl+Q\")",
      "type": "string"
    }
  }
}

The Default Config File

To illustrate the syntax, the below is the config.json file found in Terminal.Gui.dll:

{
  // Specifies the "source of truth" for default values for all Terminal.Gui settings managed by
  // ConfigurationManager. It is automatically loaded, and applied, each time Application.Init
  // is run (via the ConfigurationManager.Reset method).
  //
  // In other words, initial values set in the the codebase are always overwritten by the contents of this 
  // resource embedded in the Terminal.Gui.dll assembly.
  //
  // The Unit Test method "ConfigurationManagerTests.SaveDefaults" can be used to re-create the base of this file, but
  // note that not all values here will be recreated (e.g. the Light and Dark themes and any property initialized
  // null).
  //
  "$schema": "https://gui-cs.github.io/Terminal.GuiV2Docs/schemas/tui-config-schema.json",

  // Set this to true in a .config file to be loaded to cause JSON parsing errors
  // to throw exceptions. 
  "ConfigurationManager.ThrowOnJsonErrors": false,

  // --------------- Application Settings ---------------
  "Key.Separator": "+",

  "Application.ArrangeKey": "Ctrl+F5",
  "Application.Force16Colors": false,
  //"Application.ForceDriver": "", // TODO: ForceDriver should be nullable
  "Application.IsMouseDisabled": false,
  "Application.NextTabGroupKey": "F6",
  "Application.NextTabKey": "Tab",
  "Application.PrevTabGroupKey": "Shift+F6",
  "Application.PrevTabKey": "Shift+Tab",
  "Application.QuitKey": "Esc",

  // --------------- Colors ---------------


  // --------------- View Specific Settings ---------------
  "ContextMenu.DefaultKey": "Shift+F10",
  "FileDialog.MaxSearchResults": 10000,
  "FileDialogStyle.DefaultUseColors": false,
  "FileDialogStyle.DefaultUseUnicodeCharacters": false,

  // --------------- Glyphs ---------------
  "Glyphs": {
    "File": "☰",
    "Folder": "꤉",
    "HorizontalEllipsis": "…",
    "VerticalFourDots": "⁞",
    "CheckStateChecked": "☑",
    "CheckStateUnChecked": "☐",
    "CheckStateNone": "☒",
    "Selected": "◉",
    "UnSelected": "○",
    "RightArrow": "►",
    "LeftArrow": "◄",
    "DownArrow": "▼",
    "UpArrow": "▲",
    "LeftDefaultIndicator": "►",
    "RightDefaultIndicator": "◄",
    "LeftBracket": "⟦",
    "RightBracket": "⟧",
    "BlocksMeterSegment": "▌",
    "ContinuousMeterSegment": "█",
    "Stipple": "░",
    "Diamond": "◊",
    "Close": "✘",
    "Minimize": "❏",
    "Maximize": "✽",
    "Dot": "∙",
    "BlackCircle": "●",
    "Expand": "+",
    "Collapse": "-",
    "IdenticalTo": "≡",
    "Move": "◊",
    "SizeHorizontal": "↔",
    "SizeVertical": "↕",
    "SizeTopLeft": "↖",
    "SizeTopRight": "↗",
    "SizeBottomRight": "↘",
    "SizeBottomLeft": "↙",
    "Apple": "\uD83C\uDF4E",
    "AppleBMP": "❦",
    "HLine": "─",
    "VLine": "│",
    "HLineDbl": "═",
    "VLineDbl": "║",
    "HLineHvDa2": "╍",
    "VLineHvDa3": "┇",
    "HLineHvDa3": "┅",
    "HLineHvDa4": "┉",
    "VLineHvDa2": "╏",
    "VLineHvDa4": "┋",
    "HLineDa2": "╌",
    "VLineDa3": "┆",
    "HLineDa3": "┄",
    "HLineDa4": "┈",
    "VLineDa2": "╎",
    "VLineDa4": "┊",
    "HLineHv": "━",
    "VLineHv": "┃",
    "HalfLeftLine": "╴",
    "HalfTopLine": "╵",
    "HalfRightLine": "╶",
    "HalfBottomLine": "╷",
    "HalfLeftLineHv": "╸",
    "HalfTopLineHv": "╹",
    "HalfRightLineHv": "╺",
    "HalfBottomLineLt": "╻",
    "RightSideLineLtHv": "╼",
    "BottomSideLineLtHv": "╽",
    "LeftSideLineHvLt": "╾",
    "TopSideLineHvLt": "╿",
    "ULCorner": "┌",
    "ULCornerDbl": "╔",
    "ULCornerR": "╭",
    "ULCornerHv": "┏",
    "ULCornerHvLt": "┎",
    "ULCornerLtHv": "┍",
    "ULCornerDblSingle": "╓",
    "ULCornerSingleDbl": "╒",
    "LLCorner": "└",
    "LLCornerHv": "┗",
    "LLCornerHvLt": "┖",
    "LLCornerLtHv": "┕",
    "LLCornerDbl": "╚",
    "LLCornerSingleDbl": "╘",
    "LLCornerDblSingle": "╙",
    "LLCornerR": "╰",
    "URCorner": "┐",
    "URCornerDbl": "╗",
    "URCornerR": "╮",
    "URCornerHv": "┓",
    "URCornerHvLt": "┑",
    "URCornerLtHv": "┒",
    "URCornerDblSingle": "╖",
    "URCornerSingleDbl": "╕",
    "LRCorner": "┘",
    "LRCornerDbl": "╝",
    "LRCornerR": "╯",
    "LRCornerHv": "┛",
    "LRCornerDblSingle": "╜",
    "LRCornerSingleDbl": "╛",
    "LRCornerLtHv": "┙",
    "LRCornerHvLt": "┚",
    "LeftTee": "├",
    "LeftTeeDblH": "╞",
    "LeftTeeDblV": "╟",
    "LeftTeeDbl": "╠",
    "LeftTeeHvH": "┝",
    "LeftTeeHvV": "┠",
    "LeftTeeHvDblH": "┣",
    "RightTee": "┤",
    "RightTeeDblH": "╡",
    "RightTeeDblV": "╢",
    "RightTeeDbl": "╣",
    "RightTeeHvH": "┥",
    "RightTeeHvV": "┨",
    "RightTeeHvDblH": "┫",
    "TopTee": "┬",
    "TopTeeDblH": "╤",
    "TopTeeDblV": "╥",
    "TopTeeDbl": "╦",
    "TopTeeHvH": "┯",
    "TopTeeHvV": "┰",
    "TopTeeHvDblH": "┳",
    "BottomTee": "┴",
    "BottomTeeDblH": "╧",
    "BottomTeeDblV": "╨",
    "BottomTeeDbl": "╩",
    "BottomTeeHvH": "┷",
    "BottomTeeHvV": "┸",
    "BottomTeeHvDblH": "┻",
    "Cross": "┼",
    "CrossDblH": "╪",
    "CrossDblV": "╫",
    "CrossDbl": "╬",
    "CrossHvH": "┿",
    "CrossHvV": "╂",
    "CrossHv": "╋",
    "ShadowVerticalStart": "▖",
    "ShadowVertical": "▌",
    "ShadowHorizontalStart": "▝",
    "ShadowHorizontal": "▀",
    "ShadowHorizontalEnd": "▘"
  },

  // --------------- Themes -----------------
  "Theme": "Default",
  "Themes": [
    {
      "Default": {
        "Dialog.DefaultButtonAlignment": "End",
        "Dialog.DefaultButtonAlignmentModes": "AddSpaceBetweenItems",
        "Dialog.DefaultBorderStyle": "Heavy",
        "Dialog.DefaultShadow": "Transparent",
        "FrameView.DefaultBorderStyle": "Single",
        "Window.DefaultBorderStyle": "Single",
        "MessageBox.DefaultButtonAlignment": "Center",
        "MessageBox.DefaultBorderStyle": "Heavy",
        "Button.DefaultShadow": "Opaque",
        "ColorSchemes": [
          {
            "TopLevel": {
              "Normal": {
                "Foreground": "BrightGreen",
                "Background": "#505050" // DarkerGray
              },
              "Focus": {
                "Foreground": "White",
                "Background": "#696969" // DimGray
              },
              "HotNormal": {
                "Foreground": "Yellow",
                "Background": "#505050" // DarkerGray
              },
              "HotFocus": {
                "Foreground": "Yellow",
                "Background": "#696969" // DimGray
              },
              "Disabled": {
                "Foreground": "DarkGray",
                "Background": "#505050" // DarkerGray
              }
            }
          },
          {
            "Base": {
              "Normal": {
                "Foreground": "White",
                "Background": "Blue"
              },
              "Focus": {
                "Foreground": "DarkBlue",
                "Background": "LightGray"
              },
              "HotNormal": {
                "Foreground": "BrightCyan",
                "Background": "Blue"
              },
              "HotFocus": {
                "Foreground": "BrightBlue",
                "Background": "LightGray"
              },
              "Disabled": {
                "Foreground": "DarkGray",
                "Background": "Blue"
              }
            }
          },
          {
            "Dialog": {
              "Normal": {
                "Foreground": "Black",
                "Background": "LightGray"
              },
              "Focus": {
                "Foreground": "DarkGray",
                "Background": "LightGray"
              },
              "HotNormal": {
                "Foreground": "Blue",
                "Background": "LightGray"
              },
              "HotFocus": {
                "Foreground": "BrightBlue",
                "Background": "LightGray"
              },
              "Disabled": {
                "Foreground": "Gray",
                "Background": "DarkGray"
              }
            }
          },
          {
            "Menu": {
              "Normal": {
                "Foreground": "White",
                "Background": "DarkBlue"
              },
              "Focus": {
                "Foreground": "White",
                "Background": "Blue"
              },
              "HotNormal": {
                "Foreground": "Yellow",
                "Background": "DarkBlue"
              },
              "HotFocus": {
                "Foreground": "Yellow",
                "Background": "Blue"
              },
              "Disabled": {
                "Foreground": "Gray",
                "Background": "DarkGray"
              }
            }
          },
          {
            "Error": {
              "Normal": {
                "Foreground": "Red",
                "Background": "Pink"
              },
              "Focus": {
                "Foreground": "White",
                "Background": "BrightRed"
              },
              "HotNormal": {
                "Foreground": "Black",
                "Background": "Pink"
              },
              "HotFocus": {
                "Foreground": "Pink",
                "Background": "BrightRed"
              },
              "Disabled": {
                "Foreground": "DarkGray",
                "Background": "White"
              }
            }
          }
        ]
      }
    },
    {
      "Dark": {
        "Dialog.DefaultButtonAlignment": "End",
        "Dialog.DefaultButtonAlignmentModes": "AddSpaceBetweenItems",
        "Dialog.DefaultBorderStyle": "Heavy",
        "Dialog.DefaultShadow": "Transparent",
        "FrameView.DefaultBorderStyle": "Single",
        "Window.DefaultBorderStyle": "Single",
        "MessageBox.DefaultButtonAlignment": "Center",
        "MessageBox.DefaultBorderStyle": "Heavy",
        "Button.DefaultShadow": "Opaque",
        "ColorSchemes": [
          {
            "TopLevel": {
              "Normal": {
                "Foreground": "Gray",
                "Background": "Black"
              },
              "Focus": {
                "Foreground": "White",
                "Background": "BrightGreen"
              },
              "HotNormal": {
                "Foreground": "BrightGreen",
                "Background": "Black"
              },
              "HotFocus": {
                "Foreground": "Cyan",
                "Background": "Black"
              },
              "Disabled": {
                "Foreground": "Black",
                "Background": "Gray"
              }
            }
          },
          {
            "Base": {
              "Normal": {
                "Foreground": "Gray",
                "Background": "Black"
              },
              "Focus": {
                "Foreground": "BrightYellow",
                "Background": "DarkGray"
              },
              "HotNormal": {
                "Foreground": "BrightYellow",
                "Background": "Black"
              },
              "HotFocus": {
                "Foreground": "Cyan",
                "Background": "Black"
              },
              "Disabled": {
                "Foreground": "Black",
                "Background": "Gray"
              }
            }
          },
          {
            "Dialog": {
              "Normal": {
                "Foreground": "Gray",
                "Background": "Black"
              },
              "Focus": {
                "Foreground": "BrightCyan",
                "Background": "Black"
              },
              "HotNormal": {
                "Foreground": "White",
                "Background": "Black"
              },
              "HotFocus": {
                "Foreground": "White",
                "Background": "Black"
              },
              "Disabled": {
                "Foreground": "Black",
                "Background": "Gray"
              }
            }
          },
          {
            "Menu": {
              "Normal": {
                "Foreground": "LightGray",
                "Background": "#505050" // DarkerGray
              },
              "Focus": {
                "Foreground": "White",
                "Background": "Black"
              },
              "HotNormal": {
                "Foreground": "White",
                "Background": "#505050" // DarkerGray
              },
              "HotFocus": {
                "Foreground": "White",
                "Background": "Black"
              },
              "Disabled": {
                "Foreground": "Gray",
                "Background": "Black"
              }
            }
          },
          {
            "Error": {
              "Normal": {
                "Foreground": "BrightYellow",
                "Background": "DarkGray"
              },
              "Focus": {
                "Foreground": "DarkGray",
                "Background": "BrightYellow"
              },
              "HotNormal": {
                "Foreground": "BrightYellow",
                "Background": "DarkGray"
              },
              "HotFocus": {
                "Foreground": "Red",
                "Background": "BrightYellow"
              },
              "Disabled": {
                "Foreground": "DarkGray",
                "Background": "Gray"
              }
            }
          }
        ]
      }
    },
    {
      "Light": {
        "Dialog.DefaultButtonAlignment": "End",
        "Dialog.DefaultButtonAlignmentModes": "AddSpaceBetweenItems",
        "Dialog.DefaultBorderStyle": "Heavy",
        "Dialog.DefaultShadow": "Transparent",
        "FrameView.DefaultBorderStyle": "Single",
        "Window.DefaultBorderStyle": "Single",
        "MessageBox.DefaultButtonAlignment": "Center",
        "MessageBox.DefaultBorderStyle": "Heavy",
        "Button.DefaultShadow": "Opaque",
        "ColorSchemes": [
          {
            "TopLevel": {
              "Normal": {
                "Foreground": "DarkGray",
                "Background": "White"
              },
              "Focus": {
                "Foreground": "Black",
                "Background": "White"
              },
              "HotNormal": {
                "Foreground": "BrightGreen",
                "Background": "White"
              },
              "HotFocus": {
                "Foreground": "Cyan",
                "Background": "White"
              },
              "Disabled": {
                "Foreground": "Gray",
                "Background": "White"
              }
            }
          },
          {
            "Base": {
              "Normal": {
                "Foreground": "#505050", // DarkerGray
                "Background": "White"
              },
              "Focus": {
                "Foreground": "BrightRed",
                "Background": "Gray"
              },
              "HotNormal": {
                "Foreground": "Red",
                "Background": "White"
              },
              "HotFocus": {
                "Foreground": "Cyan",
                "Background": "DarkGray"
              },
              "Disabled": {
                "Foreground": "Black",
                "Background": "Gray"
              }
            }
          },
          {
            "Dialog": {
              "Normal": {
                "Foreground": "Black",
                "Background": "Gray"
              },
              "Focus": {
                "Foreground": "Blue",
                "Background": "Gray"
              },
              "HotNormal": {
                "Foreground": "Black",
                "Background": "Gray"
              },
              "HotFocus": {
                "Foreground": "BrightBlue",
                "Background": "Gray"
              },
              "Disabled": {
                "Foreground": "Black",
                "Background": "Gray"
              }
            }
          },
          {
            "Menu": {
              "Normal": {
                "Foreground": "DarkGray",
                "Background": "LightGray"
              },
              "Focus": {
                "Foreground": "DarkGray",
                "Background": "White"
              },
              "HotNormal": {
                "Foreground": "BrightRed",
                "Background": "LightGray"
              },
              "HotFocus": {
                "Foreground": "BrightRed",
                "Background": "White"
              },
              "Disabled": {
                "Foreground": "Gray",
                "Background": "White"
              }
            }
          },
          {
            "Error": {
              "Normal": {
                "Foreground": "BrightYellow",
                "Background": "DarkGray"
              },
              "Focus": {
                "Foreground": "DarkGray",
                "Background": "BrightYellow"
              },
              "HotNormal": {
                "Foreground": "BrightYellow",
                "Background": "DarkGray"
              },
              "HotFocus": {
                "Foreground": "Red",
                "Background": "BrightYellow"
              },
              "Disabled": {
                "Foreground": "DarkGray",
                "Background": "Gray"
              }
            }
          }
        ]
      }
    },
    {
      "Black & White": {
        "Dialog.DefaultShadow": "None",
        "FrameView.DefaultBorderStyle": "Single",
        "Window.DefaultBorderStyle": "Single",
        "MessageBox.DefaultButtonAlignment": "Center",
        "MessageBox.DefaultBorderStyle": "Heavy",
        "Button.DefaultShadow": "None",
        "ColorSchemes": [
          {
            "TopLevel": {
              "Normal": {
                "Foreground": "White",
                "Background": "Black"
              },
              "Focus": {
                "Foreground": "Black",
                "Background": "White"
              },
              "HotNormal": {
                "Foreground": "Black",
                "Background": "White"
              },
              "HotFocus": {
                "Foreground": "White",
                "Background": "Black"
              },
              "Disabled": {
                "Foreground": "Black",
                "Background": "Black"
              }
            }
          },
          {
            "Base": {
              "Normal": {
                "Foreground": "White",
                "Background": "Black"
              },
              "Focus": {
                "Foreground": "Black",
                "Background": "White"
              },
              "HotNormal": {
                "Foreground": "Black",
                "Background": "White"
              },
              "HotFocus": {
                "Foreground": "White",
                "Background": "Black"
              },
              "Disabled": {
                "Foreground": "Black",
                "Background": "Black"
              }
            }
          },
          {
            "Dialog": {
              "Normal": {
                "Foreground": "Black",
                "Background": "White"
              },
              "Focus": {
                "Foreground": "White",
                "Background": "Black"
              },
              "HotNormal": {
                "Foreground": "White",
                "Background": "Black"
              },
              "HotFocus": {
                "Foreground": "Black",
                "Background": "White"
              },
              "Disabled": {
                "Foreground": "White",
                "Background": "White"
              }
            }
          },
          {
            "Menu": {
              "Normal": {
                "Foreground": "Black",
                "Background": "White"
              },
              "Focus": {
                "Foreground": "White",
                "Background": "Black"
              },
              "HotNormal": {
                "Foreground": "White",
                "Background": "Black"
              },
              "HotFocus": {
                "Foreground": "Black",
                "Background": "White"
              },
              "Disabled": {
                "Foreground": "White",
                "Background": "White"
              }
            }
          },
          {
            "Error": {
              "Normal": {
                "Foreground": "White",
                "Background": "Black"
              },
              "Focus": {
                "Foreground": "Black",
                "Background": "White"
              },
              "HotNormal": {
                "Foreground": "Black",
                "Background": "White"
              },
              "HotFocus": {
                "Foreground": "White",
                "Background": "Black"
              },
              "Disabled": {
                "Foreground": "Black",
                "Background": "Black"
              }
            }
          }
        ]
      }
    },
    {
      "Gray Scale": {
        "Dialog.DefaultButtonAlignment": "End",
        "Dialog.DefaultButtonAlignmentModes": "AddSpaceBetweenItems",
        "Dialog.DefaultBorderStyle": "Heavy",
        "Dialog.DefaultShadow": "Transparent",
        "FrameView.DefaultBorderStyle": "Single",
        "Window.DefaultBorderStyle": "Single",
        "MessageBox.DefaultButtonAlignment": "Center",
        "MessageBox.DefaultBorderStyle": "Heavy",
        "Button.DefaultShadow": "Opaque",
        "ColorSchemes": [
          {
            "TopLevel": {
              "Normal": {
                "Foreground": "#A9A9A9", // DarkGray
                "Background": "#505050" // DarkerGray
              },
              "Focus": {
                "Foreground": "White",
                "Background": "#696969" // DimGray
              },
              "HotNormal": {
                "Foreground": "#808080", // Gray
                "Background": "#505050" // DarkerGray
              },
              "HotFocus": {
                "Foreground": "White",
                "Background": "#808080" // Gray
              },
              "Disabled": {
                "Foreground": "#505050", // DarkerGray
                "Background": "Black"
              }
            }
          },
          {
            "Base": {
              "Normal": {
                "Foreground": "#A9A9A9", // DarkGray
                "Background": "Black"
              },
              "Focus": {
                "Foreground": "White",
                "Background": "#505050" // DarkerGray
              },
              "HotNormal": {
                "Foreground": "#808080", // Gray
                "Background": "Black"
              },
              "HotFocus": {
                "Foreground": "White",
                "Background": "#505050" // DarkerGray
              },
              "Disabled": {
                "Foreground": "#696969", // DimGray
                "Background": "Black"
              }
            }
          },
          {
            "Dialog": {
              "Normal": {
                "Foreground": "#505050", // DarkerGray
                "Background": "White"
              },
              "Focus": {
                "Foreground": "Black",
                "Background": "#D3D3D3" // LightGray
              },
              "HotNormal": {
                "Foreground": "#808080", // Gray
                "Background": "White"
              },
              "HotFocus": {
                "Foreground": "Black",
                "Background": "#D3D3D3" // LightGray
              },
              "Disabled": {
                "Foreground": "#696969", // DimGray
                "Background": "White"
              }
            }
          },
          {
            "Menu": {
              "Normal": {
                "Foreground": "#D3D3D3", // LightGray
                "Background": "#505050" // DarkerGray
              },
              "Focus": {
                "Foreground": "White",
                "Background": "#808080" // Gray
              },
              "HotNormal": {
                "Foreground": "#808080", // Gray
                "Background": "#505050" // DarkerGray
              },
              "HotFocus": {
                "Foreground": "White",
                "Background": "#808080" // Gray
              },
              "Disabled": {
                "Foreground": "#505050", // DarkerGray
                "Background": "#505050" // DarkerGray
              }
            }
          },
          {
            "Error": {
              "Normal": {
                "Foreground": "Black",
                "Background": "White"
              },
              "Focus": {
                "Foreground": "White",
                "Background": "Black"
              },
              "HotNormal": {
                "Foreground": "Black",
                "Background": "#D3D3D3" // LightGray
              },
              "HotFocus": {
                "Foreground": "White",
                "Background": "Black"
              },
              "Disabled": {
                "Foreground": "#696969", // DimGray
                "Background": "White"
              }
            }
          }
        ]
      }
    }
  ]
}