-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
Hi!
Describe the bug
When maximizing the kitty window on GNOME wayland, there is a small corner-like shadow in the terminal. It is more noticeable with a light background, but happens also with darker ones (though with black it's invisible). The position of the shadow changes with the initial size of the window (bigger -> shadow closer to the bottom right corner) but not its position. I tried both the latest release and the master branch, and the error occurred in both cases
It does not happen on Xorg nor with setting hide_window_decorations yes. Changing the wayland decoration color between background and system does not fix problem.
I do not have another wayland window manager or desktop environment installed so I don't know if this is GNOME-specific or not.
To Reproduce
- Open kitty with window decorations on GNOME wayland
- Maximize the window
- See error
Screenshots
Environment details
The requested kitty environment info along with some debug logs using --debug-gl in case they are useful
Kitty environment info
kitty 0.35.2 (75d0dcab8d) created by Kovid Goyal
Linux yoga 6.10.3-arch1-1 #1 SMP PREEMPT_DYNAMIC Sun, 04 Aug 2024 05:11:32 +0000 x86_64
Arch Linux 6.10.3-arch1-1 (/dev/tty)
Running under: Wayland (GNOME Shell 46.4) missing: layer_shell
OpenGL: '4.6 (Core Profile) Mesa 24.1.5-arch1.1' Detected version: 4.6
Frozen: False
Fonts:
medium: JetBrainsMonoNF-Regular: /usr/share/fonts/TTF/JetBrainsMonoNerdFont-Regular.ttf:0
bold: JetBrainsMonoNF-SemiBold: /usr/share/fonts/TTF/JetBrainsMonoNerdFont-SemiBold.ttf:0
italic: JetBrainsMonoNF-Italic: /usr/share/fonts/TTF/JetBrainsMonoNerdFont-Italic.ttf:0
bi: JetBrainsMonoNF-SemiBoldItalic: /usr/share/fonts/TTF/JetBrainsMonoNerdFont-SemiBoldItalic.ttf:0
Paths:
kitty: /usr/bin/kitty
base dir: /usr/lib/kitty
extensions dir: /usr/lib/kitty/kitty
system shell: /usr/bin/zsh
Loaded config files:
/home/vandal/.config/kitty/kitty.conf
Config options different from defaults:
allow_remote_control yes
disable_ligatures 1
enable_audio_bell False
font_family JetBrainsMono Nerd Font
font_size 10.0
listen_on unix:/tmp/mykitty
mouse_hide_wait 0.0
remember_window_size False
shell_integration frozenset({'no-cursor'})
Changed mouse actions:
ctrl+shift+right press ungrabbed → combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output
Added shortcuts:
ctrl+alt+enter → launch --cwd=current
kitty_mod+alt+w → set_window_title
kitty_mod+m → new_os_window_with_cwd
Changed shortcuts:
kitty_mod+g → kitty_scrollback_nvim --config ksb_builtin_last_cmd_output
kitty_mod+h → kitty_scrollback_nvim
Colors:
active_border_color #2e7de9
active_tab_background #2e7de9
active_tab_foreground #e9e9ec
background #e1e2e7
color0 #e9e9ed
color1 #f52a65
color10 #587539
color11 #8c6c3e
color12 #2e7de9
color13 #9854f1
color14 #007197
color15 #3760bf
color16 #b15c00
color17 #c64343
color2 #587539
color3 #8c6c3e
color4 #2e7de9
color5 #9854f1
color6 #007197
color7 #6172b0
color8 #a1a6c5
color9 #f52a65
cursor #3760bf
cursor_text_color #e1e2e7
foreground #3760bf
inactive_border_color #c4c8da
inactive_tab_background #c4c8da
inactive_tab_foreground #8990b3
selection_background #b6bfe2
selection_foreground #3760bf
url_color #387068
wayland_titlebar_color background
Important environment variables seen by the kitty process:
PATH /home/vandal/.local/bin:/home/vandal/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/var/lib/flatpak/exports/bin:/opt/fv:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
LANG en_CA.UTF-8
EDITOR nvim
SHELL /usr/bin/zsh
DISPLAY :0
WAYLAND_DISPLAY wayland-0
USER vandal
XDG_DATA_DIRS /home/vandal/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/
XDG_RUNTIME_DIR /run/user/1000
XDG_CURRENT_DESKTOP GNOME
XDG_MENU_PREFIX gnome-
XDG_SESSION_CLASS user
XDG_SESSION_DESKTOP gnome
XDG_SESSION_TYPE wayland
Debug log with Xorg (bug does not happen)
[0.188] OS Window created
[0.203] Child launched
[0.205] Got notification server capabilities: frozenset({'actions', 'body-markup', 'persistence', 'sound', 'body', 'icon-static'})
[2.272] SIGWINCH sent to child in window: 1 with size: (58, 240, 3840, 2088)
[3.758] SIGWINCH sent to child in window: 1 with size: (11, 40, 640, 396)
[0.154] GL version string: '4.6 (Core Profile) Mesa 24.1.5-arch1.1' Detected version: 4.6
Debug log with Wayland and decorations disabled (bug does not happen)
[0.045] Compositor missing capabilities: layer_shell
[0.060] Creating window 1 at size: 640x400 and scale 1
[0.076] CSD: old.size: 0x0 new.size: 640x400 needs_update: 1 shadow_changed: 1 size_changed: 1 state_changed: 0 buffer_destroyed: 0
[0.076] Created decoration buffers at scale: 1.000000
[0.083] Fractional scale requested: 180/120 = 1.50 for window 1
[0.083] Resizing framebuffer of window: 1 to: 960x600 window size: 640x400 at scale: 1.500
[0.083] Waiting for swap to commit Wayland surface for window: 1
[0.083] CSD: old.size: 640x400 new.size: 640x400 needs_update: 1 shadow_changed: 0 size_changed: 1 state_changed: 0 buffer_destroyed: 0
[0.084] Created decoration buffers at scale: 1.500000
[0.084] Preferred integer buffer scale changed to: 2 for window 1
[0.084] Compositor set top-level bounds of: 2560x1440 for window 1
[0.084] Compositor top-level capabilities: maximize=1 minimize=1 window_menu=1 fullscreen=1
[0.084] XDG top-level configure event for window 1: size: 0x0 states:
[0.084] XDG surface configure event received and acknowledged for window 1
[0.084] Waiting for swap to commit Wayland surface for window: 1
[0.084] CSD: old.size: 640x400 new.size: 640x400 needs_update: 0 shadow_changed: 0 size_changed: 0 state_changed: 0 buffer_destroyed: 0
[0.084] Final window 1 content size: 640x400 resized: 0
[0.084] Setting window 1 "visible area" geometry in configure event: x=0 y=-24 640x424 viewport: 640x400
[0.084] Fractional scale requested: 240/120 = 2.00 for window 1
[0.084] Resizing framebuffer of window: 1 to: 1280x800 window size: 640x400 at scale: 2.000
[0.084] Waiting for swap to commit Wayland surface for window: 1
[0.084] CSD: old.size: 640x400 new.size: 640x400 needs_update: 1 shadow_changed: 0 size_changed: 1 state_changed: 0 buffer_destroyed: 0
[0.086] Created decoration buffers at scale: 2.000000
[0.104] CSD: old.size: 640x400 new.size: 640x400 needs_update: 0 shadow_changed: 0 size_changed: 0 state_changed: 0 buffer_destroyed: 0
[0.107] OS Window created
[0.122] Child launched
[0.122] CSD: old.size: 640x400 new.size: 640x400 needs_update: 0 shadow_changed: 0 size_changed: 0 state_changed: 0 buffer_destroyed: 0
[0.123] Window 1 swapped committing surface
[0.149] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x5e33b27ef3f0 and serial: 0
[0.149] Got notification server capabilities: frozenset({'sound', 'body-markup', 'persistence', 'actions', 'icon-static', 'body'})
[0.149] Fractional scale requested: 180/120 = 1.50 for window 1
[0.149] Resizing framebuffer of window: 1 to: 960x600 window size: 640x400 at scale: 1.500
[0.149] Waiting for swap to commit Wayland surface for window: 1
[0.149] CSD: old.size: 640x400 new.size: 640x400 needs_update: 1 shadow_changed: 0 size_changed: 1 state_changed: 0 buffer_destroyed: 1
[0.152] Created decoration buffers at scale: 1.500000
[0.152] Compositor set top-level bounds of: 2560x1440 for window 1
[0.152] XDG top-level configure event for window 1: size: 640x424 states: TOPLEVEL_STATE_ACTIVATED
[0.152] XDG surface configure event received and acknowledged for window 1
[0.152] CSD: old.size: 640x400 new.size: 640x400 needs_update: 1 shadow_changed: 0 size_changed: 0 state_changed: 1 buffer_destroyed: 0
[0.153] Final window 1 content size: 640x400 resized: 0
[0.153] Setting window 1 "visible area" geometry in configure event: x=0 y=-24 640x424 viewport: 640x400
[0.153] Window 1 swapped committing surface
[0.179] CSD: old.size: 640x400 new.size: 640x400 needs_update: 1 shadow_changed: 0 size_changed: 0 state_changed: 0 buffer_destroyed: 1
[0.181] Created decoration buffers at scale: 1.500000
[0.263] CSD: old.size: 640x400 new.size: 640x400 needs_update: 1 shadow_changed: 0 size_changed: 0 state_changed: 0 buffer_destroyed: 1
[0.264] Created decoration buffers at scale: 1.500000
[0.264] SIGWINCH sent to child in window: 1 with size: (22, 80, 960, 594)
[2.156] Compositor set top-level bounds of: 2560x1440 for window 1
[2.156] XDG top-level configure event for window 1: size: 2560x1440 states: TOPLEVEL_STATE_MAXIMIZED TOPLEVEL_STATE_ACTIVATED TOPLEVEL_STATE_TILED_TOP TOPLEVEL_STATE_TILED_RIGHT TOPLEVEL_STATE_TILED_BOTTOM TOPLEVEL_STATE_TILED_LEFT
[2.157] XDG surface configure event received and acknowledged for window 1
[2.157] Resizing framebuffer of window: 1 to: 3840x2124 window size: 2560x1416 at scale: 1.500
[2.157] Waiting for swap to commit Wayland surface for window: 1
[2.157] CSD: old.size: 640x400 new.size: 2560x1416 needs_update: 1 shadow_changed: 1 size_changed: 1 state_changed: 1 buffer_destroyed: 1
[2.158] Created decoration buffers at scale: 1.500000
[2.158] Final window 1 content size: 2560x1416 resized: 1
[2.158] Setting window 1 "visible area" geometry in configure event: x=0 y=-24 2560x1440 viewport: 2560x1416
[2.164] Window 1 swapped committing surface
[2.209] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x5e33b27ef3f0 and serial: 395
[2.259] SIGWINCH sent to child in window: 1 with size: (78, 320, 3840, 2106)
[2.261] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x5e33b27ef3f0 and serial: 395
[3.282] Compositor set top-level bounds of: 2560x1440 for window 1
[3.282] XDG top-level configure event for window 1: size: 640x424 states: TOPLEVEL_STATE_ACTIVATED
[3.282] XDG surface configure event received and acknowledged for window 1
[3.282] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x5e33b27ef3f0 and serial: 395
[3.282] Resizing framebuffer of window: 1 to: 960x600 window size: 640x400 at scale: 1.500
[3.283] Waiting for swap to commit Wayland surface for window: 1
[3.283] CSD: old.size: 2560x1416 new.size: 640x400 needs_update: 1 shadow_changed: 1 size_changed: 1 state_changed: 1 buffer_destroyed: 1
[3.283] Created decoration buffers at scale: 1.500000
[3.283] Final window 1 content size: 640x400 resized: 1
[3.283] Setting window 1 "visible area" geometry in configure event: x=0 y=-24 640x424 viewport: 640x400
[3.285] Window 1 swapped committing surface
[3.333] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x5e33b27ef3f0 and serial: 395
[3.385] SIGWINCH sent to child in window: 1 with size: (22, 80, 960, 594)
[0.076] GL version string: '4.6 (Core Profile) Mesa 24.1.5-arch1.1' Detected version: 4.6
Debug log with Xorg
[0.048] Compositor missing capabilities: layer_shell
[0.063] Creating window 1 at size: 640x400 and scale 1
[0.085] Fractional scale requested: 180/120 = 1.50 for window 1
[0.085] Resizing framebuffer of window: 1 to: 960x600 window size: 640x400 at scale: 1.500
[0.085] Waiting for swap to commit Wayland surface for window: 1
[0.085] Preferred integer buffer scale changed to: 2 for window 1
[0.085] Compositor set top-level bounds of: 2560x1440 for window 1
[0.085] Compositor top-level capabilities: maximize=1 minimize=1 window_menu=1 fullscreen=1
[0.085] XDG top-level configure event for window 1: size: 0x0 states:
[0.085] XDG surface configure event received and acknowledged for window 1
[0.085] Waiting for swap to commit Wayland surface for window: 1
[0.085] Final window 1 content size: 640x400 resized: 0
[0.085] Setting window 1 "visible area" geometry in configure event: x=0 y=0 640x400 viewport: 640x400
[0.108] OS Window created
[0.122] Child launched
[0.123] Window 1 swapped committing surface
[0.150] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x6453cacb13f0 and serial: 0
[0.150] Got notification server capabilities: frozenset({'persistence', 'body-markup', 'body', 'icon-static', 'actions', 'sound'})
[0.150] Fractional scale requested: 240/120 = 2.00 for window 1
[0.150] Resizing framebuffer of window: 1 to: 1280x800 window size: 640x400 at scale: 2.000
[0.150] Waiting for swap to commit Wayland surface for window: 1
[0.150] Fractional scale requested: 180/120 = 1.50 for window 1
[0.150] Resizing framebuffer of window: 1 to: 960x600 window size: 640x400 at scale: 1.500
[0.151] Waiting for swap to commit Wayland surface for window: 1
[0.151] Compositor set top-level bounds of: 2560x1440 for window 1
[0.151] XDG top-level configure event for window 1: size: 640x400 states: TOPLEVEL_STATE_ACTIVATED
[0.151] XDG surface configure event received and acknowledged for window 1
[0.151] Final window 1 content size: 640x400 resized: 0
[0.151] Setting window 1 "visible area" geometry in configure event: x=0 y=0 640x400 viewport: 640x400
[0.152] Window 1 swapped committing surface
[1.166] Compositor set top-level bounds of: 2560x1440 for window 1
[1.167] XDG top-level configure event for window 1: size: 2560x1440 states: TOPLEVEL_STATE_MAXIMIZED TOPLEVEL_STATE_ACTIVATED TOPLEVEL_STATE_TILED_TOP TOPLEVEL_STATE_TILED_RIGHT TOPLEVEL_STATE_TILED_BOTTOM TOPLEVEL_STATE_TILED_LEFT
[1.167] XDG surface configure event received and acknowledged for window 1
[1.167] Resizing framebuffer of window: 1 to: 3840x2160 window size: 2560x1440 at scale: 1.500
[1.167] Waiting for swap to commit Wayland surface for window: 1
[1.167] Final window 1 content size: 2560x1440 resized: 1
[1.167] Setting window 1 "visible area" geometry in configure event: x=0 y=0 2560x1440 viewport: 2560x1440
[1.174] Window 1 swapped committing surface
[1.236] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x6453cacb13f0 and serial: 676
[1.269] SIGWINCH sent to child in window: 1 with size: (80, 320, 3840, 2160)
[1.286] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x6453cacb13f0 and serial: 676
[2.234] Compositor set top-level bounds of: 2560x1440 for window 1
[2.235] XDG top-level configure event for window 1: size: 640x400 states: TOPLEVEL_STATE_ACTIVATED
[2.235] XDG surface configure event received and acknowledged for window 1
[2.235] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x6453cacb13f0 and serial: 676
[2.235] Resizing framebuffer of window: 1 to: 960x600 window size: 640x400 at scale: 1.500
[2.235] Waiting for swap to commit Wayland surface for window: 1
[2.235] Final window 1 content size: 640x400 resized: 1
[2.235] Setting window 1 "visible area" geometry in configure event: x=0 y=0 640x400 viewport: 640x400
[2.236] Window 1 swapped committing surface
[2.285] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x6453cacb13f0 and serial: 676
[2.337] SIGWINCH sent to child in window: 1 with size: (22, 80, 960, 594)
[0.079] GL version string: '4.6 (Core Profile) Mesa 24.1.5-arch1.1' Detected version: 4.6
Additional context
This minimal config should be enough to reproduce the bug (on GNOME wayland at least).
hide_window_decorations no
foreground #000000
background #dddddd
