{"record":{"id":"284d08789a2b9e44","repo":"kovidgoyal/kitty","slug":"the-os-window-os-window-id-is-a-desktop-panel-th","errorCode":null,"errorMessage":"The OS Window {os_window_id} is a desktop panel that cannot be made fullscreen","messagePattern":"The OS Window (.+?) is a desktop panel that cannot be made fullscreen","errorType":"exception","errorClass":"RemoteControlErrorWithoutTraceback","httpStatus":null,"severity":"warning","filePath":"kitty/rc/resize_os_window.py","lineNumber":158,"sourceCode":"                            raise RemoteControlErrorWithoutTraceback(str(e))\n                    else:\n                        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","sourceCodeStart":140,"sourceCodeEnd":176,"githubUrl":"https://github.com/kovidgoyal/kitty/blob/6d5d0c440603ad9bdf6dcd599f73f6dde21acb44/kitty/rc/resize_os_window.py#L140-L176","documentation":"Raised when toggle-fullscreen is requested for a desktop panel and toggle_fullscreen(os_window_id) returns falsy. Panels are layer-shell surfaces anchored to screen edges; making them fullscreen is not a supported state, so kitty refuses the operation.","triggerScenarios":"kitten @ resize-os-window --action=toggle-fullscreen --match <panel-window> where the matched window is a layer-shell panel.","commonSituations":"Generic window-management scripts applying toggle-fullscreen to every window id; matchers that unintentionally select the panel window; hotkeys that assume a single window type.","solutions":["Exclude panel windows from fullscreen actions — check is_layer_shell before calling","Scope the match to the regular terminal window (title, app id, or the non-panel window id)","If fullscreen coverage from a panel edge is wanted, resize the panel edge/size instead"],"exampleFix":"# before\nfor id in $(kitten @ ls --json | jq '.[].id'); do kitten @ resize-os-window --match id:$id --action=toggle-fullscreen; done\n# after (skip layer-shell panels)\nkitten @ ls | grep -v 'panel' | ... # only toggle non-panel windows","handlingStrategy":"type-guard","validationCode":"metrics = get_window_metrics(os_window_id)\nif metrics['is_layer_shell']:\n    skip_fullscreen_action(os_window_id)","typeGuard":"def is_panel(w: dict) -> bool:\n    return bool(w.get('is_layer_shell'))","tryCatchPattern":null,"preventionTips":["Filter panel windows out of generic fullscreen loops","Branch on window type in automation scripts"],"tags":["kitty","remote-control","fullscreen","os-panel","layer-shell"],"backgroundTag":"unsupported-operation","analyzedSha":"6d5d0c440603ad9bdf6dcd599f73f6dde21acb44","analyzedAt":"2026-08-27T14:20:20.142Z","schemaVersion":2},"datasetVersion":"2026-08-27T19:17:21.184Z"}