Skip to content

Add a way to reveal shell on a fullscreen surface

The idea is to make the screen edges that have layer-surfaces placed on them reveal those layer-surfaces when swiping from those edges - without exiting the fullscreen. Those layer-surfaces are later hidden when interacting with the xdg-shell application again. This is inspired by what Android does in its "immersive mode". A short timer could be added there as well to hide the shell automatically when unused, but it's not part of this PoC.

When it comes to security: when revealing the shell, touch events are swallowed by compositor, so the fullscreen app isn't at all aware that user has swiped from the edge. This allows for some anti-phishing features being implemented in system dialogs (like "swipe from top to activate password field", which would make recreating system dialogs in a fullscreen app impossible - kinda similar to old "press CTRL+ALT+DEL to login" idea from early Windows NT ;))

What's interesting - I think it works reasonably well even without any sophisticated swiping detection. This however makes a short stripe of space in fullscreen apps near the active edges not being able to react to any touches - not just swipes. This could be fixed, but would have to be done carefully in regards to security implications.

Related: phosh#90 (closed)

Edited by Sebastian Krzyszkowiak

Merge request reports