{
  "$comment": "This schema should be ported to https://github.com/jesseduffield/lazygit repository and be autogenerated",
  "$id": "https://json.schemastore.org/lazygit.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false,
  "definitions": {
    "color": {
      "type": "string",
      "oneOf": [
        {
          "enum": [
            "black",
            "red",
            "green",
            "yellow",
            "blue",
            "magenta",
            "cyan",
            "white",
            "bold",
            "default",
            "reverse",
            "underline",
            "strikethrough"
          ]
        },
        {
          "pattern": "^#[0-9a-fA-F]{6}$",
          "examples": ["#ff00ff"]
        }
      ]
    },
    "keybinding": {
      "type": ["string", "null"],
      "examples": ["<enter>", "<c-b>", "g"]
    },
    "custom-commands-prompts-type-property": {
      "title": "type",
      "description": "A type\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#common-fields",
      "type": "string",
      "enum": ["input", "confirm", "menu", "menuFromCommand"]
    },
    "custom-commands-prompts-title-property": {
      "title": "title",
      "description": "A title\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#common-fields",
      "type": "string",
      "examples": ["Remote branch:"]
    },
    "custom-commands-prompts-key-property": {
      "title": "key",
      "description": "A key\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#common-fields",
      "type": "string",
      "examples": ["Branch"]
    }
  },
  "description": "UI settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
  "properties": {
    "gui": {
      "title": "gui",
      "description": "Settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
      "type": "object",
      "properties": {
        "windowSize": {
          "title": "window size",
          "description": "A window size\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "string",
          "enum": ["normal", "half", "full"],
          "default": "normal"
        },
        "scrollHeight": {
          "title": "scroll height",
          "description": "A scroll height\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "integer",
          "minimum": 1,
          "default": 2
        },
        "scrollPastBottom": {
          "title": "scroll past bottom",
          "description": "Whether to allow scrolling past bottom of the current window\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": true
        },
        "sidePanelWidth": {
          "title": "side panel width",
          "description": "A width of the current side panel\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "number",
          "minimum": 0,
          "maximum": 1,
          "default": 0.3333
        },
        "expandFocusedSidePanel": {
          "title": "expand focused side panel",
          "description": "Whether to expand focused side panel\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": false
        },
        "mainPanelSplitMode": {
          "title": "main panel split mode",
          "description": "A split mode of the current main panel\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "string",
          "enum": ["horizontal", "flexible", "vertical"],
          "default": "flexible"
        },
        "language": {
          "title": "language",
          "description": "A language\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "string",
          "enum": [
            "auto",
            "en",
            "zh-CN",
            "zh-TW",
            "pl",
            "nl",
            "ja",
            "ko",
            "ru"
          ],
          "default": "auto"
        },
        "timeFormat": {
          "title": "time format",
          "description": "A time format\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "string",
          "default": "02 Jan 06"
        },
        "shortTimeFormat": {
          "title": "short time format",
          "description": "A short time format\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "string",
          "default": "3:04PM"
        },
        "theme": {
          "title": "theme",
          "description": "Settings of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "object",
          "properties": {
            "activeBorderColor": {
              "title": "active border color",
              "description": "Active border colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "array",
              "uniqueItems": true,
              "minItems": 1,
              "items": {
                "description": "An active border color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
                "$ref": "#/definitions/color"
              }
            },
            "inactiveBorderColor": {
              "title": "inactive border color",
              "description": "Inactive border colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "array",
              "uniqueItems": true,
              "minItems": 1,
              "items": {
                "description": "An inactive border color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
                "$ref": "#/definitions/color"
              }
            },
            "searchingActiveBorderColor": {
              "title": "searching active border color",
              "description": "Searching active border colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "array",
              "uniqueItems": true,
              "minItems": 1,
              "items": {
                "description": "A searching active border color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
                "$ref": "#/definitions/color"
              }
            },
            "optionsTextColor": {
              "title": "options text color",
              "description": "Option text colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "array",
              "uniqueItems": true,
              "minItems": 1,
              "items": {
                "description": "An option text color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
                "$ref": "#/definitions/color"
              }
            },
            "selectedLineBgColor": {
              "title": "selected line bg color",
              "description": "Selected line background colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "array",
              "uniqueItems": true,
              "minItems": 1,
              "items": {
                "description": "A selected line background color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
                "$ref": "#/definitions/color"
              }
            },
            "selectedRangeBgColor": {
              "title": "selected range bg color",
              "description": "Selected range background colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "array",
              "uniqueItems": true,
              "minItems": 1,
              "items": {
                "description": "A selected range background color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
                "$ref": "#/definitions/color"
              }
            },
            "cherryPickedCommitBgColor": {
              "title": "cherry picked commit bg color",
              "description": "Cherry picked commit background colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "array",
              "uniqueItems": true,
              "minItems": 1,
              "items": {
                "description": "A cherry picked commit background color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
                "$ref": "#/definitions/color"
              }
            },
            "cherryPickedCommitFgColor": {
              "title": "cherry picked commit fg color",
              "description": "Cherry picked commit foreground colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "array",
              "uniqueItems": true,
              "minItems": 1,
              "items": {
                "description": "A cherry picked commit foreground color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
                "$ref": "#/definitions/color"
              }
            },
            "unstagedChangesColor": {
              "title": "unstaged changes color",
              "description": "Unstaged changes colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "array",
              "uniqueItems": true,
              "minItems": 1,
              "items": {
                "description": "An unstaged changes color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
                "$ref": "#/definitions/color"
              }
            },
            "defaultFgColor": {
              "title": "default fg color",
              "description": "Default foreground colors of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "array",
              "uniqueItems": true,
              "minItems": 1,
              "items": {
                "description": "A default foreground color of the current theme\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
                "$ref": "#/definitions/color"
              }
            }
          },
          "additionalProperties": false
        },
        "commitLength": {
          "title": "commit length",
          "description": "Settings of the current commit length\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "object",
          "properties": {
            "show": {
              "title": "show",
              "description": "Whether to show the current commit length\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "boolean",
              "default": true
            }
          },
          "additionalProperties": false
        },
        "mouseEvents": {
          "title": "mouse events",
          "description": "Whether to enable mouse events\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": true
        },
        "skipDiscardChangeWarning": {
          "title": "skip discard change warning",
          "description": "Whether to disable change warning\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": false
        },
        "skipStashWarning": {
          "title": "skip stash warning",
          "description": "Whether to disable stash warning\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": false
        },
        "showFileTree": {
          "title": "show file tree",
          "description": "Whether to render render files in a tree format\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": true
        },
        "showListFooter": {
          "title": "show list footer",
          "description": "Whether to show list footer\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": true
        },
        "showRandomTip": {
          "title": "show random tip",
          "description": "Whether to show a random tip\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": true
        },
        "showBranchCommitHash": {
          "title": "show branch commit hash",
          "description": "Whether to show a branch commit hash\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": false
        },
        "showBottomLine": {
          "title": "show bottom line",
          "description": "Whether to show a bottom line unless there is an important information\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": true
        },
        "showCommandLog": {
          "title": "show command log",
          "description": "Whether to show command log\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": true
        },
        "nerdFontsVersion": {
          "title": "nerd fonts version",
          "description": "A nerd font version\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "string",
          "enum": ["2", "3", ""],
          "default": ""
        },
        "commandLogSize": {
          "title": "command log size",
          "description": "A command log size\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "integer",
          "minimum": 0,
          "default": 8
        },
        "splitDiff": {
          "title": "split diff",
          "description": "Whether to skip diff\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "string",
          "enum": ["auto", "always"],
          "default": "auto"
        },
        "skipRewordInEditorWarning": {
          "title": "skip reword in editor warning",
          "description": "Whether to skip a confirmation before launching a reword editor\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": false
        },
        "border": {
          "title": "border",
          "description": "A border style\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "string",
          "enum": ["single", "double", "rounded", "hidden"],
          "default": "single"
        },
        "animateExplosion": {
          "title": "animate explosion",
          "description": "Whether to show explosion animation while nuking working tree\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": true
        },
        "authorColors": {
          "title": "author colors",
          "description": "Author colors\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-author-color",
          "type": "object",
          "patternProperties": {
            ".": {
              "title": "author color",
              "description": "An author color\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-author-color",
              "$ref": "#/definitions/color"
            }
          },
          "additionalProperties": false
        },
        "branchColors": {
          "title": "branch colors",
          "description": "Branch colors\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-branch-color",
          "type": "object",
          "patternProperties": {
            ".": {
              "title": "branch color",
              "description": "A branch color\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-branch-color",
              "$ref": "#/definitions/color"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "git": {
      "title": "git",
      "description": "Git settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
      "type": "object",
      "properties": {
        "paging": {
          "title": "paging",
          "description": "Pager settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Pagers.md",
          "type": "object",
          "properties": {
            "colorArg": {
              "title": "color argument",
              "description": "A pager color argument\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Pagers.md",
              "type": "string",
              "enum": ["always", "never"],
              "default": "always"
            },
            "useConfig": {
              "title": "use config",
              "description": "Whether to use a config\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Pagers.md",
              "type": "boolean",
              "default": false
            },
            "pager": {
              "title": "pager",
              "description": "A pager\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Pagers.md",
              "type": "string",
              "minLength": 1,
              "examples": [
                "delta --dark --paging=never",
                "diff-so-fancy",
                "ydiff -p cat -s --wrap --width={{columnWidth}}"
              ]
            }
          },
          "additionalProperties": false
        },
        "commit": {
          "title": "commit",
          "description": "Commit settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "object",
          "properties": {
            "signOff": {
              "title": "sign off",
              "description": "Whether to sign commits off\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "boolean",
              "default": false
            }
          },
          "additionalProperties": false
        },
        "merging": {
          "title": "merging",
          "description": "Merging settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "object",
          "properties": {
            "manualCommit": {
              "title": "manual commit",
              "description": "Whether to use manual commits\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "boolean",
              "default": false
            },
            "args": {
              "title": "arguments",
              "description": "Additional CLI arguments for 'git merge'\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "string",
              "default": "",
              "examples": ["--no-ff"]
            }
          },
          "additionalProperties": false
        },
        "log": {
          "title": "log",
          "description": "Log settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "object",
          "properties": {
            "order": {
              "title": "order",
              "description": "A commit order\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "string",
              "enum": [
                "date-order",
                "author-date-order",
                "topo-order",
                "default"
              ],
              "default": "topo-order"
            },
            "showGraph": {
              "title": "show graph",
              "description": "Whether to show a graph\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "string",
              "enum": ["always", "never", "when-maximised"],
              "default": "when-maximised"
            },
            "showWholeGraph": {
              "title": "show whole graph",
              "description": "Whether to show the whole graph\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "boolean",
              "default": false
            }
          },
          "additionalProperties": false
        },
        "skipHookPrefix": {
          "title": "skip hook prefix",
          "description": "A prefix to skip\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "string",
          "default": "WIP"
        },
        "mainBranches": {
          "title": "main branches",
          "description": "Main branches\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "description": "A main branch\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
            "type": "string",
            "minLength": 1,
            "examples": ["main", "master"]
          },
          "default": ["main", "master"]
        },
        "autoFetch": {
          "title": "auto fetch",
          "description": "Whether to automatically fetch\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": true
        },
        "autoRefresh": {
          "title": "auto refresh",
          "description": "Whether to automatically refresh\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": true
        },
        "fetchAll": {
          "title": "fetch all",
          "description": "Whether to fetch everything\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": true
        },
        "branchLogCmd": {
          "title": "branch log cmd",
          "description": "A log command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "string",
          "default": "git log --graph --color=always --abbrev-commit --decorate --date=relative --pretty=medium {{branchName}} --"
        },
        "allBranchesLogCmd": {
          "title": "all branches log cmd",
          "description": "A log command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "string",
          "default": "git log --graph --all --color=always --abbrev-commit --decorate --date=relative --pretty=medium"
        },
        "overrideGpg": {
          "title": "override gpg",
          "description": "Whether not to spawn a separate process while using GPG\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": false
        },
        "disableForcePushing": {
          "title": "disable force pushing",
          "description": "Whether to disable force pushing\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": false
        },
        "parseEmoji": {
          "title": "parse emoji",
          "description": "Whether to parse emoji\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "boolean",
          "default": false
        },
        "diffContextSize": {
          "title": "diff context size",
          "description": "how many lines of context are shown around a change in diffs\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "integer",
          "default": 3
        },
        "commitPrefixes": {
          "title": "commit prefixes",
          "description": "Commit prefixes\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#predefined-commit-message-prefix",
          "type": "object",
          "patternProperties": {
            ".": {
              "title": "repository path",
              "description": "A repository path\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#predefined-commit-message-prefix",
              "type": "object",
              "required": ["pattern", "replace"],
              "properties": {
                "pattern": {
                  "title": "pattern",
                  "description": "A pattern\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#predefined-commit-message-prefix",
                  "type": "string",
                  "minLength": 1,
                  "examples": ["^\\w+\\/(\\w+-\\w+).*"]
                },
                "replace": {
                  "title": "replace",
                  "description": "A replacement\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#predefined-commit-message-prefix",
                  "type": "string",
                  "minLength": 1,
                  "examples": ["[$1] "]
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "os": {
      "title": "os",
      "description": "OS settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#configuring-file-editing",
      "type": "object",
      "properties": {
        "copyToClipboardCmd": {
          "title": "copy to clipboard cmd",
          "description": "A copy to clipboard command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#configuring-file-editing",
          "type": "string",
          "default": "",
          "examples": [
            "printf \"\\033]52;c;$(printf {{text}} | base64)\\a\" > /dev/tty"
          ]
        },
        "editPreset": {
          "title": "edit preset",
          "description": "An edit preset\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#configuring-file-editing",
          "type": "string",
          "oneOf": [
            {
              "enum": [
                "vim",
                "nvim",
                "emacs",
                "nano",
                "vscode",
                "sublime",
                "bbedit",
                "kakoune",
                "helix",
                "xcode"
              ]
            },
            {
              "const": ""
            }
          ],
          "default": ""
        },
        "edit": {
          "title": "edit",
          "description": "An editor command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#configuring-file-editing",
          "type": "string",
          "default": "",
          "examples": [
            "vim",
            "nvim",
            "emacs",
            "nano",
            "vscode",
            "sublime",
            "bbedit",
            "kakoune",
            "helix",
            "xcode"
          ]
        },
        "editAtLine": {
          "title": "edit at line",
          "description": "An editor command to open at specific line\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#configuring-file-editing",
          "type": "string",
          "default": "",
          "examples": [
            "vim +{{line}} {{filename}}",
            "nvim +{{line}} {{filename}}",
            "emacs +{{line}} {{filename}}",
            "nano +{{line}} {{filename}}",
            "vscode -g {{filename}}:{{line}}",
            "vscode --goto {{filename}}:{{line}}",
            "sublime {{filename}}:{{line}}"
          ]
        },
        "editAtLineAndWait": {
          "title": "edit at line and wait",
          "description": "An editor command to open at specific line and wait\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#configuring-file-editing",
          "type": "string",
          "default": "",
          "examples": [
            "vim +{{line}} {{filename}}",
            "nvim +{{line}} {{filename}}",
            "emacs +{{line}} {{filename}}",
            "nano +{{line}} {{filename}}",
            "vscode -g {{filename}}:{{line}} -w",
            "vscode --goto {{filename}}:{{line}} --wait",
            "sublime {{filename}}:{{line}} -w",
            "sublime {{filename}}:{{line}} --wait"
          ]
        },
        "open": {
          "title": "open",
          "description": "An editor command for non-text files\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#configuring-file-editing",
          "type": "string",
          "default": ""
        },
        "openLink": {
          "title": "open link",
          "description": "An open link\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "string",
          "default": ""
        }
      },
      "additionalProperties": false
    },
    "refresher": {
      "title": "refresher",
      "description": "Refresh settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
      "type": "object",
      "properties": {
        "refreshInterval": {
          "title": "refresh interval",
          "description": "A file/submodule refresh interval in seconds\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "integer",
          "minimum": 0,
          "default": 10
        },
        "fetchInterval": {
          "title": "fetch interval",
          "description": "A re-fetch interval in seconds\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "integer",
          "minimum": 0,
          "default": 60
        }
      },
      "additionalProperties": false
    },
    "update": {
      "title": "update",
      "description": "Update settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
      "type": "object",
      "properties": {
        "method": {
          "title": "method",
          "description": "A method\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "string",
          "enum": ["prompt", "background", "never"],
          "default": "prompt"
        },
        "days": {
          "title": "days",
          "description": "A day count\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "integer",
          "minimum": 0,
          "default": 14
        }
      },
      "additionalProperties": false
    },
    "confirmOnQuit": {
      "title": "confirm on quit",
      "description": "Whether to confirm on on quit\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
      "type": "boolean",
      "default": false
    },
    "quitOnTopLevelReturn": {
      "title": "quit on top level return",
      "description": "Whether to quit on 'esc' press while there is nothing to cancel/close\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
      "type": "boolean",
      "default": false
    },
    "disableStartupPopups": {
      "title": "disable startup popups",
      "description": "Whether to disable startup popups\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
      "type": "boolean",
      "default": false
    },
    "notARepository": {
      "title": "not a repository",
      "description": "An action for non-repositories\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
      "type": "string",
      "enum": ["prompt", "create", "skip", "quit"],
      "default": "prompt"
    },
    "promptToReturnFromSubprocess": {
      "title": "prompt to return from subprocess",
      "description": "Whether to show confirmation on subprocess termination\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
      "type": "boolean",
      "default": true
    },
    "keybinding": {
      "title": "keybinding",
      "description": "Keybinding settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
      "type": "object",
      "properties": {
        "universal": {
          "title": "universal",
          "description": "Universal keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "object",
          "properties": {
            "quit": {
              "title": "quit",
              "description": "A quit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "q"
            },
            "quit-alt1": {
              "title": "quit-alt1",
              "description": "A quit-alt1 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<c-c>"
            },
            "return": {
              "title": "return",
              "description": "A return keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<esc>"
            },
            "quitWithoutChangingDirectory": {
              "title": "quit without changing directory",
              "description": "A quit without changing directory keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "Q"
            },
            "togglePanel": {
              "title": "toggle panel",
              "description": "A toggle panel keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<tab>"
            },
            "prevItem": {
              "title": "prev item",
              "description": "A previous item keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<up>"
            },
            "nextItem": {
              "title": "next item",
              "description": "A next item keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<down>"
            },
            "prevItem-alt": {
              "title": "prev item-alt",
              "description": "A previous item-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "k"
            },
            "nextItem-alt": {
              "title": "next item-alt",
              "description": "A next item-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "j"
            },
            "prevPage": {
              "title": "prev page",
              "description": "A previous page keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": ","
            },
            "nextPage": {
              "title": "next page",
              "description": "A next page keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "."
            },
            "gotoTop": {
              "title": "goto top",
              "description": "A goto top keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<"
            },
            "gotoBottom": {
              "title": "goto bottom",
              "description": "A goto bottom keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": ">"
            },
            "scrollLeft": {
              "title": "scroll left",
              "description": "A scroll left keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "H"
            },
            "scrollRight": {
              "title": "scroll right",
              "description": "A scroll right keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "L"
            },
            "prevBlock": {
              "title": "prev block",
              "description": "A previous block keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<left>"
            },
            "nextBlock": {
              "title": "next block",
              "description": "A next block keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<right>"
            },
            "prevBlock-alt": {
              "title": "prev block-alt",
              "description": "A previous block-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "h"
            },
            "nextBlock-alt": {
              "title": "next block-alt",
              "description": "A next block-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "l"
            },
            "jumpToBlock": {
              "title": "jump to block",
              "description": "A jump to block keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "array",
              "default": ["1", "2", "3", "4", "5"]
            },
            "nextMatch": {
              "title": "next match",
              "description": "A next match keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "n"
            },
            "prevMatch": {
              "title": "prev match",
              "description": "A previous match keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "N"
            },
            "optionMenu": {
              "title": "option menu",
              "description": "An option menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "type": "null",
              "default": null
            },
            "optionMenu-alt1": {
              "title": "option menu-alt1",
              "description": "An option menu-alt1 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "?"
            },
            "select": {
              "title": "select",
              "description": "A select keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<space>"
            },
            "goInto": {
              "title": "go into",
              "description": "A go into keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<enter>"
            },
            "openRecentRepos": {
              "title": "open recent repos",
              "description": "An open recent repos keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<c-r>"
            },
            "confirm": {
              "title": "confirm",
              "description": "A confirm keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<enter>"
            },
            "remove": {
              "title": "remove",
              "description": "A remove keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "d"
            },
            "new": {
              "title": "new",
              "description": "A new keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "n"
            },
            "edit": {
              "title": "edit",
              "description": "A edit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "e"
            },
            "openFile": {
              "title": "open file",
              "description": "An open file keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "o"
            },
            "scrollUpMain": {
              "title": "scroll up main",
              "description": "A scroll up main keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<pgup>"
            },
            "scrollDownMain": {
              "title": "scroll down main",
              "description": "A scroll down main keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<pgdown>"
            },
            "scrollUpMain-alt1": {
              "title": "scroll up main-alt1",
              "description": "A scroll up main-alt1 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "K"
            },
            "scrollDownMain-alt1": {
              "title": "scroll down main-alt1",
              "description": "A scroll down main-alt1 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "J"
            },
            "scrollUpMain-alt2": {
              "title": "scroll up main-alt2",
              "description": "A scroll up main-alt2 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<c-u>"
            },
            "scrollDownMain-alt2": {
              "title": "scroll down main-alt2",
              "description": "A scroll down main-alt2 keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<c-d>"
            },
            "executeCustomCommand": {
              "title": "execute custom command",
              "description": "A execute custom command keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": ":"
            },
            "createRebaseOptionsMenu": {
              "title": "create rebase options menu",
              "description": "A create rebase options menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "m"
            },
            "pushFiles": {
              "title": "push files",
              "description": "A push files keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "P"
            },
            "pullFiles": {
              "title": "pull files",
              "description": "A pull files keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "p"
            },
            "refresh": {
              "title": "refresh",
              "description": "A refresh keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "R"
            },
            "createPatchOptionsMenu": {
              "title": "create patch options menu",
              "description": "A create patch options menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<c-p>"
            },
            "nextTab": {
              "title": "next tab",
              "description": "A next tab keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "]"
            },
            "prevTab": {
              "title": "prev tab",
              "description": "A previous tab keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "["
            },
            "nextScreenMode": {
              "title": "next screen mode",
              "description": "A next screen mode keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "+"
            },
            "prevScreenMode": {
              "title": "prev screen mode",
              "description": "A previous screen mode keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "_"
            },
            "undo": {
              "title": "undo",
              "description": "An undo keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "z"
            },
            "redo": {
              "title": "redo",
              "description": "A redo keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<c-z>"
            },
            "filteringMenu": {
              "title": "filtering menu",
              "description": "A filtering menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<c-s>"
            },
            "diffingMenu": {
              "title": "diffing menu",
              "description": "A diffing menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "W"
            },
            "diffingMenu-alt": {
              "title": "diffing menu-alt",
              "description": "A diffing menu-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<c-e>"
            },
            "copyToClipboard": {
              "title": "copy to clipboard",
              "description": "A copy to clipboard keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<c-o>"
            },
            "submitEditorText": {
              "title": "submit editor text",
              "description": "A submit editor text keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<enter>"
            },
            "extrasMenu": {
              "title": "extras menu",
              "description": "A extras menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "@"
            },
            "toggleWhitespaceInDiffView": {
              "title": "toggle whitespace in diff view",
              "description": "A toggle whitespace in diff view keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<c-w>"
            },
            "increaseContextInDiffView": {
              "title": "increase context in diff view",
              "description": "A increase context in diff view keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "}"
            },
            "decreaseContextInDiffView": {
              "title": "decrease context in diff view",
              "description": "A decrease context in diff view keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "{"
            }
          },
          "additionalProperties": false
        },
        "status": {
          "title": "status",
          "description": "Status keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "object",
          "properties": {
            "checkForUpdate": {
              "title": "check for update",
              "description": "A check for update keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "u"
            },
            "recentRepos": {
              "title": "recent repos",
              "description": "A recent repos keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<enter>"
            }
          },
          "additionalProperties": false
        },
        "files": {
          "title": "files",
          "description": "File keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "object",
          "properties": {
            "commitChanges": {
              "title": "commit changes",
              "description": "A commit changes keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "c"
            },
            "commitChangesWithoutHook": {
              "title": "commit changes without hook",
              "description": "A commit changes without hook keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "w"
            },
            "amendLastCommit": {
              "title": "amend last commit",
              "description": "A amend last commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "A"
            },
            "commitChangesWithEditor": {
              "title": "commit changes with editor",
              "description": "A commit changes with editor keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "C"
            },
            "ignoreFile": {
              "title": "ignore file",
              "description": "A ignore file keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "i"
            },
            "refreshFiles": {
              "title": "refresh files",
              "description": "A refresh files keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "r"
            },
            "stashAllChanges": {
              "title": "stash all changes",
              "description": "A stash all changes keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "s"
            },
            "viewStashOptions": {
              "title": "view stash options",
              "description": "A view stash options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "S"
            },
            "toggleStagedAll": {
              "title": "toggle staged all",
              "description": "A toggle staged all keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "a"
            },
            "viewResetOptions": {
              "title": "view reset options",
              "description": "A view reset options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "D"
            },
            "fetch": {
              "title": "fetch",
              "description": "A fetch keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "f"
            },
            "toggleTreeView": {
              "title": "toggle tree view",
              "description": "A toggle tree view keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "`"
            },
            "openMergeTool": {
              "title": "open merge tool",
              "description": "A open merge tool keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "M"
            },
            "openStatusFilter": {
              "title": "open status filter",
              "description": "A open status filter keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<c-b>"
            }
          },
          "additionalProperties": false
        },
        "branches": {
          "title": "branches",
          "description": "Branch keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "object",
          "properties": {
            "createPullRequest": {
              "title": "create pull request",
              "description": "A create pull request keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "o"
            },
            "viewPullRequestOptions": {
              "title": "view pull request options",
              "description": "A view pull request options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "O"
            },
            "checkoutBranchByName": {
              "title": "checkout branch by name",
              "description": "A checkout branch by name keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "c"
            },
            "forceCheckoutBranch": {
              "title": "force checkout branch",
              "description": "A force checkout branch keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "F"
            },
            "rebaseBranch": {
              "title": "rebase branch",
              "description": "A rebase branch keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "r"
            },
            "renameBranch": {
              "title": "rename branch",
              "description": "A rename branch keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "R"
            },
            "mergeIntoCurrentBranch": {
              "title": "merge into current branch",
              "description": "A merge into current branch keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "M"
            },
            "viewGitFlowOptions": {
              "title": "view git flow options",
              "description": "A view git flow options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "i"
            },
            "fastForward": {
              "title": "fast forward",
              "description": "A fast forward keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "f"
            },
            "createTag": {
              "title": "create tag",
              "description": "A create tag keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "T"
            },
            "pushTag": {
              "title": "push tag",
              "description": "A push tag keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "P"
            },
            "setUpstream": {
              "title": "set upstream",
              "description": "A set upstream keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "u"
            },
            "fetchRemote": {
              "title": "fetch remote",
              "description": "A fetch remote keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "f"
            }
          },
          "additionalProperties": false
        },
        "commits": {
          "title": "commits",
          "description": "Commit keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "object",
          "properties": {
            "squashDown": {
              "title": "squash down",
              "description": "A squash down keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "s"
            },
            "renameCommit": {
              "title": "rename commit",
              "description": "A rename commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "r"
            },
            "renameCommitWithEditor": {
              "title": "rename commit with editor",
              "description": "A rename commit with editor keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "R"
            },
            "viewResetOptions": {
              "title": "view reset options",
              "description": "A view reset options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "g"
            },
            "markCommitAsFixup": {
              "title": "mark commit as fixup",
              "description": "A mark commit as fixup keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "f"
            },
            "createFixupCommit": {
              "title": "create fixup commit",
              "description": "A create fixup commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "F"
            },
            "squashAboveCommits": {
              "title": "squash above commits",
              "description": "A squash above commits keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "S"
            },
            "moveDownCommit": {
              "title": "move down commit",
              "description": "A move down commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<c-j>"
            },
            "moveUpCommit": {
              "title": "move up commit",
              "description": "A move up commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<c-k>"
            },
            "amendToCommit": {
              "title": "amend to commit",
              "description": "A amend to commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "A"
            },
            "pickCommit": {
              "title": "pick commit",
              "description": "A pick commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "p"
            },
            "revertCommit": {
              "title": "revert commit",
              "description": "A revert commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "t"
            },
            "cherryPickCopy": {
              "title": "cherry pick copy",
              "description": "A cherry pick copy keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "c"
            },
            "cherryPickCopyRange": {
              "title": "cherry pick copy range",
              "description": "A cherry pick copy range keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "C"
            },
            "pasteCommits": {
              "title": "paste commits",
              "description": "A paste commits keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "v"
            },
            "tagCommit": {
              "title": "tag commit",
              "description": "A tag commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "T"
            },
            "checkoutCommit": {
              "title": "checkout commit",
              "description": "A checkout commit keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<space>"
            },
            "resetCherryPick": {
              "title": "reset cherry pick",
              "description": "A reset cherry pick keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<c-R>"
            },
            "copyCommitMessageToClipboard": {
              "title": "copy commit message to clipboard",
              "description": "A copy commit message to clipboard keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<c-y>"
            },
            "openLogMenu": {
              "title": "open log menu",
              "description": "A open log menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "<c-l>"
            },
            "viewBisectOptions": {
              "title": "view bisect options",
              "description": "A view bisect options keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "b"
            }
          },
          "additionalProperties": false
        },
        "stash": {
          "title": "stash",
          "description": "Stash keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "object",
          "properties": {
            "popStash": {
              "title": "pop stash",
              "description": "A pop stash keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "g"
            },
            "renameStash": {
              "title": "rename stash",
              "description": "A rename stash keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "r"
            }
          },
          "additionalProperties": false
        },
        "commitFiles": {
          "title": "commit files",
          "description": "Commit file keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "object",
          "properties": {
            "checkoutCommitFile": {
              "title": "checkout commit file",
              "description": "A checkout commit file keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "c"
            }
          },
          "additionalProperties": false
        },
        "main": {
          "title": "main",
          "description": "Main keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "object",
          "properties": {
            "toggleDragSelect": {
              "title": "toggle drag select",
              "description": "A toggle drag select keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "v"
            },
            "toggleDragSelect-alt": {
              "title": "toggle drag select-alt",
              "description": "A toggle drag select-alt keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "V"
            },
            "toggleSelectHunk": {
              "title": "toggle select hunk",
              "description": "A toggle select hunk keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "a"
            },
            "pickBothHunks": {
              "title": "pick both hunks",
              "description": "A pick both hunks keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "b"
            }
          },
          "additionalProperties": false
        },
        "submodules": {
          "title": "submodules",
          "description": "Submodules keybindings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
          "type": "object",
          "properties": {
            "init": {
              "title": "init",
              "description": "An init keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "i"
            },
            "update": {
              "title": "update",
              "description": "An update keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "u"
            },
            "bulkMenu": {
              "title": "bulk menu",
              "description": "A bulk menu keybinding\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#default",
              "$ref": "#/definitions/keybinding",
              "default": "b"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "services": {
      "title": "services",
      "description": "Service settings\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-pull-request-urls",
      "type": "object",
      "patternProperties": {
        ".": {
          "title": "service",
          "description": "A service\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-pull-request-urls",
          "type": "string",
          "pattern": "^[^:]+:[^:]+$"
        }
      },
      "additionalProperties": false
    },
    "customCommands": {
      "title": "custom commands",
      "description": "Custom commands\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings",
      "type": "array",
      "uniqueItems": true,
      "items": {
        "description": "A custom command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings",
        "type": "object",
        "required": ["key", "command", "context"],
        "properties": {
          "key": {
            "title": "key",
            "description": "A command trigger\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings",
            "$ref": "#/definitions/keybinding"
          },
          "command": {
            "title": "command",
            "description": "A command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings",
            "type": "string",
            "default": "",
            "examples": [
              "git fetch {{.Form.Remote}} {{.Form.Branch}} && git checkout FETCH_HEAD"
            ]
          },
          "context": {
            "title": "context",
            "description": "A context\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings",
            "type": "string",
            "enum": [
              "status",
              "files",
              "worktrees",
              "localBranches",
              "remotes",
              "remoteBranches",
              "tags",
              "commits",
              "reflogCommits",
              "subCommits",
              "commitFiles",
              "stash",
              "global"
            ]
          },
          "subprocess": {
            "title": "subprocess",
            "description": "Whether to run command in subprocess\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings",
            "type": "boolean",
            "default": false
          },
          "prompts": {
            "title": "prompts",
            "description": "Prompts before running a command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings",
            "type": "array",
            "items": {
              "description": "A prompt before running a command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings",
              "type": "object",
              "required": ["type", "title", "key"],
              "properties": {
                "type": {
                  "$ref": "#/definitions/custom-commands-prompts-type-property"
                },
                "title": {
                  "$ref": "#/definitions/custom-commands-prompts-title-property"
                },
                "key": {
                  "$ref": "#/definitions/custom-commands-prompts-key-property"
                }
              },
              "allOf": [
                {
                  "if": {
                    "properties": {
                      "type": {
                        "const": "input"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "$ref": "#/definitions/custom-commands-prompts-type-property"
                      },
                      "title": {
                        "$ref": "#/definitions/custom-commands-prompts-title-property"
                      },
                      "key": {
                        "$ref": "#/definitions/custom-commands-prompts-key-property"
                      },
                      "initialValue": {
                        "title": "initial value",
                        "description": "An initial value\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#input",
                        "type": "string"
                      },
                      "suggestions": {
                        "title": "suggestions",
                        "description": "Whether to show suggestions as the input is entered\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#input",
                        "type": "object",
                        "oneOf": [
                          {
                            "properties": {
                              "preset": {
                                "title": "preset",
                                "description": "A preset\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#input",
                                "type": "string",
                                "enum": [
                                  "authors",
                                  "branches",
                                  "files",
                                  "refs",
                                  "remotes",
                                  "remoteBranches",
                                  "tags"
                                ]
                              }
                            },
                            "additionalProperties": false
                          },
                          {
                            "properties": {
                              "command": {
                                "title": "command",
                                "description": "A command where each line in the output is suggestion\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#input",
                                "type": "string",
                                "default": "",
                                "examples": [
                                  "git branch --format='%(refname:short)'"
                                ]
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "if": {
                    "properties": {
                      "type": {
                        "const": "confirm"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "$ref": "#/definitions/custom-commands-prompts-type-property"
                      },
                      "title": {
                        "$ref": "#/definitions/custom-commands-prompts-title-property"
                      },
                      "key": {
                        "$ref": "#/definitions/custom-commands-prompts-key-property"
                      },
                      "body": {
                        "title": "body",
                        "description": "A body\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#confirm",
                        "type": "string",
                        "examples": [
                          "Are you sure you want to push to the remote?"
                        ]
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "if": {
                    "properties": {
                      "type": {
                        "const": "menu"
                      }
                    }
                  },
                  "then": {
                    "required": ["options"],
                    "properties": {
                      "type": {
                        "$ref": "#/definitions/custom-commands-prompts-type-property"
                      },
                      "title": {
                        "$ref": "#/definitions/custom-commands-prompts-title-property"
                      },
                      "key": {
                        "$ref": "#/definitions/custom-commands-prompts-key-property"
                      },
                      "options": {
                        "title": "options",
                        "description": "Options\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu",
                        "type": "array",
                        "uniqueItems": true,
                        "items": {
                          "description": "An option",
                          "type": "object",
                          "required": ["value"],
                          "properties": {
                            "name": {
                              "title": "name",
                              "description": "A first label part\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu",
                              "type": "string",
                              "default": ""
                            },
                            "description": {
                              "title": "description",
                              "description": "A second label part\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu",
                              "type": "string",
                              "default": ""
                            },
                            "value": {
                              "title": "value",
                              "description": "the value that will be used in the command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu",
                              "type": "string",
                              "minLength": 1,
                              "examples": ["feature"]
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "if": {
                    "properties": {
                      "type": {
                        "const": "menuFromCommand"
                      }
                    }
                  },
                  "then": {
                    "required": ["command"],
                    "properties": {
                      "type": {
                        "$ref": "#/definitions/custom-commands-prompts-type-property"
                      },
                      "title": {
                        "$ref": "#/definitions/custom-commands-prompts-title-property"
                      },
                      "key": {
                        "$ref": "#/definitions/custom-commands-prompts-key-property"
                      },
                      "command": {
                        "title": "command",
                        "description": "A command to generate options\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu-from-command",
                        "type": "string",
                        "default": "",
                        "examples": [
                          "git branch  -r --list {{.SelectedRemote.Name }}/*"
                        ]
                      },
                      "filter": {
                        "title": "filter",
                        "description": "A regex specifying groups which kept from command output\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu-from-command",
                        "type": "string",
                        "default": "",
                        "examples": [
                          ".*{{.SelectedRemote.Name }}/(?P<branch>.*)"
                        ]
                      },
                      "valueFormat": {
                        "title": "valueFormat",
                        "description": "A value format\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu-from-command",
                        "type": "string",
                        "default": "",
                        "examples": ["{{ .branch }}"]
                      },
                      "labelFormat": {
                        "title": "labelFormat",
                        "description": "A label format\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#menu-from-command",
                        "type": "string",
                        "default": "",
                        "examples": ["{{ .branch | green }}"]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              ]
            }
          },
          "loadingText": {
            "title": "loading text",
            "description": "Text to display while waiting for command to finish\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings",
            "type": "string",
            "default": "",
            "examples": ["Loading..."]
          },
          "description": {
            "title": "description",
            "description": "A description\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings",
            "type": "string",
            "default": "",
            "examples": ["Checkout a remote branch as FETCH_HEAD"]
          },
          "stream": {
            "title": "stream",
            "description": "Whether to stream command output to Command Log panel\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings",
            "type": "boolean",
            "default": false
          },
          "showOutput": {
            "title": "show output",
            "description": "Whether to show the command output in popup\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings",
            "type": "boolean",
            "default": false
          },
          "after": {
            "title": "after",
            "description": "Actions to take after the command has completed\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings",
            "type": "object",
            "properties": {
              "checkForConflicts": {
                "title": "check for conflicts",
                "description": "Whether to check for conflicts before running command\nhttps://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md#custom-command-keybindings",
                "type": "boolean",
                "default": false
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      }
    }
  },
  "title": "ui settings",
  "type": "object"
}
