Related bug: #4895 (tile reflow on Niri when Flameshot opens)
On Wayland, the Flameshot screenshot overlay currently opens as a fullscreen
xdg_toplevel. This causes visible tile reflow on tiling window managers
(Niri, Hyprland, Sway, etc.) because the compositor recalculates the layout
when the window is mapped and unmapped.
The proper Wayland approach for overlay-type windows (screenshot tools,
notification daemons, launchers) is to use wlr-layer-shell. This is already
the standard used by:
- dunst (notifications)
- rofi (launcher)
- waybar (status bar)
Using layer-shell would make the Flameshot overlay:
- Floating above all windows (no tiling, no reflow)
- Not requesting fullscreen (no layout disruption)
- Working identically across all compositors without per-WM config
Currently, users on tiling WMs (Niri on my case) must manually add a window rule:
window-rule {
match app-id="flameshot"
open-floating true
open-fullscreen false
}
This is a workaround, not a fix. With layer-shell, no user-side config would
be needed and the overlay would behave correctly from first use.
Scope:
- Replace the fullscreen xdg_toplevel with a layer-shell surface (overlay layer) on Wayland
- Keep the existing X11 behavior unchanged
- The overlay should still cover the full output (or selected output)
This is a medium-scope change (requires adding a wlr-layer-shell client
implementation to the Wayland backend) but could resolve #4895 and
similar reports on all tiling compositors permanently.
Related bug: #4895 (tile reflow on Niri when Flameshot opens)
On Wayland, the Flameshot screenshot overlay currently opens as a fullscreen
xdg_toplevel. This causes visible tile reflow on tiling window managers
(Niri, Hyprland, Sway, etc.) because the compositor recalculates the layout
when the window is mapped and unmapped.
The proper Wayland approach for overlay-type windows (screenshot tools,
notification daemons, launchers) is to use wlr-layer-shell. This is already
the standard used by:
Using layer-shell would make the Flameshot overlay:
Currently, users on tiling WMs (Niri on my case) must manually add a window rule:
This is a workaround, not a fix. With layer-shell, no user-side config would
be needed and the overlay would behave correctly from first use.
Scope:
This is a medium-scope change (requires adding a wlr-layer-shell client
implementation to the Wayland backend) but could resolve #4895 and
similar reports on all tiling compositors permanently.