{"record":{"id":"98d3ffbe26b64a47","repo":"kovidgoyal/kitty","slug":"invalid-mouse-hide-wait-x-ignoring","errorCode":null,"errorMessage":"Invalid mouse_hide_wait: {x}, ignoring","messagePattern":"Invalid mouse_hide_wait: (.+?), ignoring","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"kitty/options/utils.py","lineNumber":1790,"sourceCode":"            raise KeyError(f'{func_name} is not a valid easing function')\n    return interval, m[0], m[1]\n\n\ndef cursor_blink_interval(spec: str) -> tuple[float, EasingFunction, EasingFunction]:\n    return parse_animation(spec)\n\n\nclass MouseHideWait(NamedTuple):\n    hide_wait: float\n    show_wait: float\n    show_threshold: int\n    scroll_show: bool\n\n\ndef mouse_hide_wait(x: str) -> MouseHideWait:\n    parts = x.split(maxsplit=3)\n    if len(parts) != 1 and len(parts) != 4:\n        log_error(f'Invalid mouse_hide_wait: {x}, ignoring')\n        return MouseHideWait(3.0, 0.0, 40, True)\n    if len(parts) == 1:\n        return MouseHideWait(float(parts[0]), 0.0, 40, True)\n    else:\n        return MouseHideWait(float(parts[0]), float(parts[1]), int(parts[2]), to_bool(parts[3]))\n\n\ndef visual_bell_duration(spec: str) -> tuple[float, EasingFunction, EasingFunction]:\n    return parse_animation(spec, interval=0.0)\n\n\npointer_shape_names = (\n    # start pointer shape names (auto generated by gen-key-constants.py do not edit)\n    'arrow',\n    'beam',\n    'text',\n    'pointer',\n    'hand',","sourceCodeStart":1772,"sourceCodeEnd":1808,"githubUrl":"https://github.com/kovidgoyal/kitty/blob/6d5d0c440603ad9bdf6dcd599f73f6dde21acb44/kitty/options/utils.py#L1772-L1808","documentation":"mouse_hide_wait must be either a single number or exactly four tokens (base multiplier interval-to-repeat enable-flag). Any other token count logs this warning and falls back to defaults (3.0 0.0 40 True).","triggerScenarios":"'mouse_hide_wait 3 0' (2 tokens) or 'mouse_hide_wait 3 0 40' (3 tokens) instead of 1 or 4 tokens.","commonSituations":"Partially filling the extended form; older configs migrating to the 4-value syntax; forgetting the boolean tail token.","solutions":["Use a single number: mouse_hide_wait 3.0","Or the full 4-token form: mouse_hide_wait <base> <multiplier> <repeat-interval> <bool>, e.g. mouse_hide_wait 3.0 0.0 40 true","Do not use 2 or 3 tokens."],"exampleFix":"# before\nmouse_hide_wait 3 0\n\n# after\nmouse_hide_wait 3.0 0.0 40 true","handlingStrategy":"validation","validationCode":"def valid_mouse_hide_wait(x: str) -> bool:\n    n = len(x.split())\n    return n == 1 or n == 4","typeGuard":"def is_mhw_arity(x: str) -> bool:\n    n = len(x.split())\n    return n in (1, 4)","tryCatchPattern":null,"preventionTips":["Use single number or all four fields","Never 2 or 3 tokens"],"tags":["kitty","config","mouse","mouse-hide-wait"],"backgroundTag":"config-value-validation-failed","analyzedSha":"6d5d0c440603ad9bdf6dcd599f73f6dde21acb44","analyzedAt":"2026-08-27T14:20:20.142Z","schemaVersion":2},"datasetVersion":"2026-08-27T19:17:21.184Z"}