SwallowNoInheritFullScreen - bakkeby/dusk GitHub Wiki

If a child window swallows a terminal then by default it will inherit the terminal's size and position.

Likewise the terminal window will inherit the size and position of the child window when it is being unswallowed. This also applies for the fullscreen state.

If desirable it is possible to prevent a specific window, or terminal window, from inheriting the fullscreen state of the accompanying window on swallow / unswallow. This can be done by adding the SwallowNoInheritFullScreen flag which can be set via client rules.

The below tables describe the expected floating, tiled and fullscreen states on swallow and unswallow for the terminal window and normal window.

Expected default behaviour for swallow state inheritance

Terminal before Swallowing window >> State at unswallow Terminal after
Tiled Tiled >> Tiled Tiled
Tiled Tiled >> Floating Floating
Tiled Tiled >> Fullscreen (tiled) Fullscreen (tiled)
Tiled Tiled >> Fullscreen (floating) Fullscreen (floating)
Floating Floating >> Tiled Tiled
Floating Floating >> Floating Floating
Floating Floating >> Fullscreen (tiled) Fullscreen (tiled)
Floating Floating >> Fullscreen (floating) Fullscreen (floating)
Fullscreen (tiled) Fullscreen (tiled) >> Tiled Tiled
Fullscreen (tiled) Fullscreen (tiled) >> Floating Floating
Fullscreen (tiled) Fullscreen (tiled) >> Fullscreen (tiled) Fullscreen (tiled)
Fullscreen (tiled) Fullscreen (tiled) >> Fullscreen (floating) Fullscreen (floating)
Fullscreen (floating) Fullscreen (floating) >> Tiled Tiled
Fullscreen (floating) Fullscreen (floating) >> Floating Floating
Fullscreen (floating) Fullscreen (floating) >> Fullscreen (tiled) Fullscreen (tiled)
Fullscreen (floating) Fullscreen (floating) >> Fullscreen (floating) Fullscreen (floating)

Expected behaviour when the terminal window has the SwallowNoInheritFullScreen flag

Terminal before Swallowing window >> State at unswallow Terminal after
Tiled Tiled >> Tiled Tiled
Tiled Tiled >> Floating Floating
Tiled Tiled >> Fullscreen (tiled) $${\color{orange}Tiled}$$
Tiled Tiled >> Fullscreen (floating) $${\color{orange}Floating}$$
Floating Floating >> Tiled Tiled
Floating Floating >> Floating Floating
Floating Floating >> Fullscreen (tiled) $${\color{orange}Tiled}$$
Floating Floating >> Fullscreen (floating) $${\color{orange}Floating}$$
Fullscreen (tiled) Fullscreen (tiled) >> Tiled Tiled
Fullscreen (tiled) Fullscreen (tiled) >> Floating Floating
Fullscreen (tiled) Fullscreen (tiled) >> Fullscreen (tiled) Fullscreen (tiled)
Fullscreen (tiled) Fullscreen (tiled) >> Fullscreen (floating) Fullscreen (floating)
Fullscreen (floating) Fullscreen (floating) >> Tiled Tiled
Fullscreen (floating) Fullscreen (floating) >> Floating Floating
Fullscreen (floating) Fullscreen (floating) >> Fullscreen (tiled) Fullscreen (tiled)
Fullscreen (floating) Fullscreen (floating) >> Fullscreen (floating) Fullscreen (floating)

Expected behaviour when the normal window has the SwallowNoInheritFullScreen flag

Terminal before Swallowing window >> State at unswallow Terminal after
Tiled Tiled >> Tiled Tiled
Tiled Tiled >> Floating Floating
Tiled Tiled >> Fullscreen (tiled) Fullscreen (tiled)
Tiled Tiled >> Fullscreen (floating) Fullscreen (floating)
Floating Floating >> Tiled Tiled
Floating Floating >> Floating Floating
Floating Floating >> Fullscreen (tiled) Fullscreen (tiled)
Floating Floating >> Fullscreen (floating) Fullscreen (floating)
Fullscreen (tiled) $${\color{orange}Tiled}$$ >> Tiled Tiled
Fullscreen (tiled) $${\color{orange}Tiled}$$ >> Floating Floating
Fullscreen (tiled) $${\color{orange}Tiled}$$ >> Fullscreen (tiled) Fullscreen (tiled)
Fullscreen (tiled) $${\color{orange}Tiled}$$ >> Fullscreen (floating) Fullscreen (floating)
Fullscreen (floating) $${\color{orange}Floating}$$ >> Tiled Tiled
Fullscreen (floating) $${\color{orange}Floating}$$ >> Floating Floating
Fullscreen (floating) $${\color{orange}Floating}$$ >> Fullscreen (tiled) Fullscreen (tiled)
Fullscreen (floating) $${\color{orange}Floating}$$ >> Fullscreen (floating) Fullscreen (floating)

Expected behaviour when the both the normal window and terminal window has the SwallowNoInheritFullScreen flag

Terminal before Swallowing window >> State at unswallow Terminal after
Tiled Tiled >> Tiled Tiled
Tiled Tiled >> Floating Floating
Tiled Tiled >> Fullscreen (tiled) $${\color{orange}Tiled}$$
Tiled Tiled >> Fullscreen (floating) $${\color{orange}Floating}$$
Floating Floating >> Tiled Tiled
Floating Floating >> Floating Floating
Floating Floating >> Fullscreen (tiled) $${\color{orange}Tiled}$$
Floating Floating >> Fullscreen (floating) $${\color{orange}Floating}$$
Fullscreen (tiled) $${\color{orange}Tiled}$$ >> Tiled $${\color{orange}Fullscreen (tiled)}$$
Fullscreen (tiled) $${\color{orange}Tiled}$$ >> Floating $${\color{orange}Fullscreen (floating)}$$
Fullscreen (tiled) $${\color{orange}Tiled}$$ >> Fullscreen (tiled) Fullscreen (tiled)
Fullscreen (tiled) $${\color{orange}Tiled}$$ >> Fullscreen (floating) Fullscreen (floating)
Fullscreen (floating) $${\color{orange}Floating}$$ >> Tiled $${\color{orange}Fullscreen (tiled)}$$
Fullscreen (floating) $${\color{orange}Floating}$$ >> Floating $${\color{orange}Fullscreen (floating)}$$
Fullscreen (floating) $${\color{orange}Floating}$$ >> Fullscreen (tiled) Fullscreen (tiled)
Fullscreen (floating) $${\color{orange}Floating}$$ >> Fullscreen (floating) Fullscreen (floating)

Back to Features > Flags > Swallow.

⚠️ **GitHub.com Fallback** ⚠️