Quake-style drop-down window: portal and layering first #12
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Terminalko is a normal windowed application:
TkWindowis anadw::ApplicationWindowcreated on activation(
crates/terminalko/src/application.rs). It already has fullscreen (F11, withthe header bar revealed at the top edge) and multiple windows
(
Ctrl+Shift+N).The original plan's M7 listed a quake-style drop-down window: a terminal that
slides in from an edge on a global key, over whatever is on screen, and hides
again.
The hard part is not the window
Under Wayland an application cannot bind a global shortcut itself, and cannot
place or raise its own window. The two things this feature needs are exactly the
two things the display protocol refuses. So:
portal (
org.freedesktop.portal.GlobalShortcuts), which the user grants onceand can revoke; a compositor without it means no shortcut at all;
zwlr_layer_shell_v1or the compositor'sequivalent, which GTK does not expose. GTK4 has no supported way to make a
layer-shell surface;
gtk4-layer-shellexists as a separate library and worksby intercepting surface creation.
That makes this a genuinely different kind of change from everything else in this
repository, and it may reasonably be declined: a session-oriented terminal
whose whole point is that sessions outlive their windows overlaps oddly with a
window that hides itself.
If it is attempted
shortcut. That much is achievable and useful, and does not need layer-shell;
gtk4-layer-shellfor the drop-down placement, behind abuild option, so a build without it still works;
the obvious answer — and the agent already makes that sensible: the session
keeps running while the window is hidden;
Acceptance criteria
window, and the session inside it keeps running while hidden.
normally, with an explanation rather than a broken shortcut.
./build-aux/smoke.shstill passes.docs/spec/gains a spec explaining the portal and layering decisions.Notes
gtk4-layer-shellis MIT, which is compatible; record it inNOTICEifit is used.