Describe the bug
When using --toggle-visibility with a single instance panel kitten the layer shell configuration is only updated if the given configuration is different than the original configuration when the kitten was first launched.
To Reproduce
Steps to reproduce the behavior:
- run
kitten panel --single-instance --instance-group=foo --edge=top &
- run
kitten panel --single-instance --instance-group=foo --edge=bottom --toggle-visibility
- run
kitten panel --single-instance --instance-group=foo --edge=top --toggle-visibility
- Notice the panel is still anchored to the bottom. This is because the layer shell configuration in step 3 is the same as in step 1 (the original configuration).
Environment details
kitty 0.42.2 (c30f8cec46) created by Kovid Goyal
Linux desk 6.16.5-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 04 Sep 2025 23:18:13 +0000 x86_64
Arch Linux 6.16.5-arch1-1 (/dev/tty)
DISTRIB_ID="Arch"
DISTRIB_RELEASE="rolling"
DISTRIB_DESCRIPTION="Arch Linux"
Running under: Wayland (sway version 1.11-6db1dede (Jun 10 2025, branch 'tabbed-stacked-layout-gaps')) missing: blur icon bell window-tag window-state-suspended color-manager
OpenGL: '4.6 (Core Profile) Mesa 25.2.2-arch1.1' Detected version: 4.6
Frozen: False
Fonts:
medium: FiraCodeRoman-Regular: /home/alex/.local/share/fonts/FiraCode/variable_ttf/FiraCode-VF.ttf:131072
Features: ()
bold: FiraCodeRoman-SemiBold: /home/alex/.local/share/fonts/FiraCode/woff2/FiraCode-VF.woff2:262144
Features: ()
italic: FiraCodeRoman-Regular: /home/alex/.local/share/fonts/FiraCode/woff2/FiraCode-VF.woff2:131072
Features: ()
bi: FiraCodeRoman-SemiBold: /home/alex/.local/share/fonts/FiraCode/woff2/FiraCode-VF.woff2:262144
Features: ()
Paths:
kitty: /home/alex/dev/kitty/kitty/launcher/kitty
base dir: /home/alex/dev/kitty
extensions dir: /home/alex/dev/kitty/kitty
system shell: /bin/bash
System color scheme: light. Applied color theme type: none
Loaded config files:
/home/alex/.config/kitty/kitty.conf
Config options different from defaults:
allow_remote_control password
bell_path /home/alex/.assets/bell.wav
box_drawing_scale (0.5, 1.0, 1.5, 2.0)
confirm_os_window_close (0, False)
cursor_stop_blinking_after 0
disable_ligatures 2
font_family Fira Code
font_size 16.0
listen_on unix:$XDG_RUNTIME_DIR/kitty
modify_font:
baseline 1
paste_actions frozenset({'confirm-if-large'})
placement_strategy top-left
remote_control_password: REDACTED FOR SECURITY
selection_background None
selection_foreground None
shell_integration frozenset({'no-cursor'})
symbol_map:
U+e000 - U+e00a → Symbols Nerd Font Mono
U+e0a0 - U+e0c8 → Symbols Nerd Font Mono
U+e0ca - U+e0ca → Symbols Nerd Font Mono
U+e0cc - U+e0d7 → Symbols Nerd Font Mono
U+e200 - U+e2a9 → Symbols Nerd Font Mono
U+e300 - U+e3e3 → Symbols Nerd Font Mono
U+e5fa - U+e6b1 → Symbols Nerd Font Mono
U+e700 - U+e7c5 → Symbols Nerd Font Mono
U+ea60 - U+ebeb → Symbols Nerd Font Mono
U+ed00 - U+efc1 → Symbols Nerd Font Mono
U+f000 - U+f2e0 → Symbols Nerd Font Mono
U+f000 - U+f2ff → Symbols Nerd Font Mono
U+f300 - U+f372 → Symbols Nerd Font Mono
U+f400 - U+f533 → Symbols Nerd Font Mono
U+f0001 - U+f1af0 → Symbols Nerd Font Mono
watcher:
{'watcher.py': 'watcher.py'}
wayland_enable_ime False
window_padding_width FloatEdges(left=6.0, top=6.0, right=6.0, bottom=6.0)
Added shortcuts:
kitty_mod+d → new_os_window_with_cwd
Changed shortcuts:
kitty_mod++ → no-op
kitty_mod+- → change_font_size current -2.0
kitty_mod+= → change_font_size current +2.0
kitty_mod+a > m → show_scrollback, set_background_opacity default, set_background_opacity 1, set_background_opacity -0.1, set_background_opacity +0.1
kitty_mod+backspace → change_font_size current 0
kitty_mod+h → no-op
kitty_mod+kp_add → no-op
kitty_mod+kp_subtract → no-op
kitty_mod+l → no-op
kitty_mod+w → no-op
Colors:
background #f9f5d7
color0 #ebdbb2
color1 #cc241d
color10 #79740e
color11 #b57614
color12 #076678
color13 #8f3f71
color14 #427b58
color15 #282828
color2 #98971a
color3 #d79921
color4 #458588
color5 #b16286
color6 #689d6a
color7 #7c6f64
color8 #928374
color9 #9d0006
cursor #665c54
cursor_text_color #bdae93
foreground #3c3836
url_color #458588
Important environment variables seen by the kitty process:
PATH /home/alex/dev/kitty/kitty/launcher:/home/alex/.pyenv/shims:/home/alex/.pyenv/bin:/home/alex/.pyenv/bin:/home/alex/.local/share/JetBrains/Toolbox/scripts:/home/alex/.local/bin:/home/alex/.cargo/bin:/home/alex/go/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/var/lib/flatpak/exports/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/lib/rustup/bin:/var/lib/snapd/snap/bin
LANG en_US.UTF-8
EDITOR vim
SHELL /bin/bash
DISPLAY :0
WAYLAND_DISPLAY wayland-1
USER alex
XCURSOR_SIZE 40
XDG_SEAT seat0
XDG_SESSION_TYPE wayland
XDG_CURRENT_DESKTOP sway
XDG_SESSION_CLASS user
XDG_VTNR 1
XDG_SESSION_ID 1
XDG_RUNTIME_DIR /run/user/1000
XDG_DATA_DIRS /home/alex/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop
Additional context
Basically it is impossible to reset a panel kitten to its original configuration using --toggle-visibility since set_layer_shell_config is only called if the given layer shell configuration is not equal to run_app.layer_shell_config, which is the initial configuration.
Describe the bug
When using
--toggle-visibilitywith a single instance panel kitten the layer shell configuration is only updated if the given configuration is different than the original configuration when the kitten was first launched.To Reproduce
Steps to reproduce the behavior:
kitten panel --single-instance --instance-group=foo --edge=top &kitten panel --single-instance --instance-group=foo --edge=bottom --toggle-visibilitykitten panel --single-instance --instance-group=foo --edge=top --toggle-visibilityEnvironment details
Additional context
Basically it is impossible to reset a panel kitten to its original configuration using
--toggle-visibilitysinceset_layer_shell_configis only called if the given layer shell configuration is not equal torun_app.layer_shell_config, which is the initial configuration.