{"record":{"id":"baf6857454beeaf4","repo":"kovidgoyal/kitty","slug":"send-text-val-is-invalid-msg-ignoring","errorCode":null,"errorMessage":"Send text: {val} is invalid ({msg}), ignoring","messagePattern":"Send text: (.+?) is invalid \\((.+?)\\), ignoring","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"kitty/options/utils.py","lineNumber":1899,"sourceCode":"    macos_show_window_title_in = ans.get('macos_show_window_title_in', 'all')\n    if to_bool(val):\n        if macos_show_window_title_in == 'none':\n            macos_show_window_title_in = 'menubar'\n        elif macos_show_window_title_in == 'window':\n            macos_show_window_title_in = 'all'\n    else:\n        if macos_show_window_title_in == 'all':\n            macos_show_window_title_in = 'window'\n        elif macos_show_window_title_in == 'menubar':\n            macos_show_window_title_in = 'none'\n    ans['macos_show_window_title_in'] = macos_show_window_title_in\n\n\ndef deprecated_send_text(key: str, val: str, ans: dict[str, Any]) -> None:\n    parts = val.split(' ')\n\n    def abort(msg: str) -> None:\n        log_error(f'Send text: {val} is invalid ({msg}), ignoring')\n\n    if len(parts) < 3:\n        return abort('Incomplete')\n    mode, sc = parts[:2]\n    text = ' '.join(parts[2:])\n    key_str = f'{sc} send_text {mode} {text}'\n    for k in parse_map(key_str):\n        ans['map'].append(k)\n\n\ndef deprecated_adjust_line_height(key: str, x: str, opts_dict: dict[str, Any]) -> None:\n    fm = {'adjust_line_height': 'cell_height', 'adjust_baseline': 'baseline', 'adjust_column_width': 'cell_width'}[key]\n    mtype = getattr(ModificationType, fm)\n    if x.endswith('%'):\n        ans = float(x[:-1].strip())\n        if ans < 0:\n            log_error(f'Percentage adjustments of {key} must be positive numbers')\n            return","sourceCodeStart":1881,"sourceCodeEnd":1917,"githubUrl":"https://github.com/kovidgoyal/kitty/blob/6d5d0c440603ad9bdf6dcd599f73f6dde21acb44/kitty/options/utils.py#L1881-L1917","documentation":"deprecated send_text lines must have at least 3 parts: mode, shortcut, and text. The abort helper logs 'Send text: {val} is invalid (Incomplete), ignoring' (message placeholders may render literally depending on logging formatting).","triggerScenarios":"A send_text line like 'send_text all' (2 tokens) or fewer; legacy syntax with missing text portion.","commonSituations":"Migrating very old kitty configs that used send_text with different arity; truncated paste of a config line.","solutions":["Use the modern map syntax: map <shortcut> send_text <mode> <text...>.","Remove legacy send_text lines.","Ensure mode, shortcut, and text tokens are all present if you must keep legacy syntax."],"exampleFix":"# before\nsend_text all\n\n# after\nmap ctrl+enter send_text all some text","handlingStrategy":"validation","validationCode":"def valid_legacy_send_text(val: str) -> bool:\n    return len(val.split(' ')) >= 3","typeGuard":"def is_send_text_complete(val: str) -> bool:\n    return len(val.split(' ')) >= 3","tryCatchPattern":null,"preventionTips":["Prefer map ... send_text all <text> syntax","Delete legacy send_text lines during upgrades"],"tags":["kitty","config","deprecation","send-text"],"backgroundTag":"deprecated-config-option","analyzedSha":"6d5d0c440603ad9bdf6dcd599f73f6dde21acb44","analyzedAt":"2026-08-27T14:20:20.142Z","schemaVersion":2},"datasetVersion":"2026-08-27T19:17:21.184Z"}