{"record":{"id":"e92f1b2e4d5d7a1d","repo":"kovidgoyal/kitty","slug":"the-os-window-os-window-id-is-a-desktop-panel-n","errorCode":null,"errorMessage":"The OS Window {os_window_id} is a desktop panel, no actions other than resizing are supported for it","messagePattern":"The OS Window (.+?) is a desktop panel, no actions other than resizing are supported for it","errorType":"exception","errorClass":"RemoteControlErrorWithoutTraceback","httpStatus":null,"severity":"warning","filePath":"kitty/rc/resize_os_window.py","lineNumber":160,"sourceCode":"                        from kitty.launch import layer_shell_config_from_panel_opts\n\n                        try:\n                            lsc = layer_shell_config_from_panel_opts(panels)\n                        except Exception as e:\n                            raise RemoteControlErrorWithoutTraceback(f'Invalid panel options specified: {e}')\n                    if not set_layer_shell_config(os_window_id, lsc):\n                        raise RemoteControlErrorWithoutTraceback(f'Failed to change panel configuration for OS Window {os_window_id}')\n                elif ac == 'toggle-visibility':\n                    toggle_os_window_visibility(os_window_id)\n                elif ac == 'hide':\n                    toggle_os_window_visibility(os_window_id, False)\n                elif ac == 'show':\n                    toggle_os_window_visibility(os_window_id, True)\n                elif ac == 'toggle-fullscreen':\n                    if not toggle_fullscreen(os_window_id):\n                        raise RemoteControlErrorWithoutTraceback(f'The OS Window {os_window_id} is a desktop panel that cannot be made fullscreen')\n                elif is_panel:\n                    raise RemoteControlErrorWithoutTraceback(\n                        f'The OS Window {os_window_id} is a desktop panel, no actions other than resizing are supported for it'\n                    )\n                elif ac == 'resize':\n                    boss.resize_os_window(\n                        os_window_id,\n                        width=payload_get('width'),\n                        height=payload_get('height'),\n                        unit=payload_get('unit'),\n                        incremental=payload_get('incremental'),\n                        metrics=metrics,\n                    )\n                elif ac == 'toggle-maximized':\n                    boss.toggle_maximized(os_window_id)\n        return None\n\n\nresize_os_window = ResizeOSWindow()\n","sourceCodeStart":142,"sourceCodeEnd":178,"githubUrl":"https://github.com/kovidgoyal/kitty/blob/6d5d0c440603ad9bdf6dcd599f73f6dde21acb44/kitty/rc/resize_os_window.py#L142-L178","documentation":"Catch-all raised when any action other than the panel-specific ones (os-panel, hide, show, toggle-visibility, toggle-fullscreen) is requested for a window that is a desktop panel. Panels only support visibility and panel-resizing operations; generic actions like resize, size, center fall through to this guard.","triggerScenarios":"kitten @ resize-os-window --action=resize (or size/center) targeting a layer-shell panel window.","commonSituations":"Window-management loops that call resize on all windows; scripts written before panels existed; matching by ambiguous criteria that hits the panel.","solutions":["Use --action=os-panel with panel options to resize panels","Verify is_layer_shell / window type before choosing the action","Tighten the --match expression to select regular windows only","For layout scripts, branch: normal windows -> resize, panels -> os-panel"],"exampleFix":"# before\nkitten @ resize-os-window --match id:$PANEL_ID --action=resize --width=80\n# after\nkitten @ resize-os-window --match id:$PANEL_ID --action=os-panel --os-panel-size=80","handlingStrategy":"type-guard","validationCode":"metrics = get_window_metrics(os_window_id)\naction = 'os-panel' if metrics['is_layer_shell'] else 'resize'\nsend({'cmd': 'resize_os_window', 'action': action, ...})","typeGuard":"def is_panel(w: dict) -> bool:\n    return bool(w.get('is_layer_shell'))","tryCatchPattern":null,"preventionTips":["Classify windows before choosing resize actions","Reserve generic resize loops for non-layer-shell windows"],"tags":["kitty","remote-control","os-panel","layer-shell","window-matching"],"backgroundTag":"unsupported-operation","analyzedSha":"6d5d0c440603ad9bdf6dcd599f73f6dde21acb44","analyzedAt":"2026-08-27T14:20:20.142Z","schemaVersion":2},"datasetVersion":"2026-08-27T19:17:21.184Z"}