summaryrefslogtreecommitdiffhomepage
path: root/packages/kernel/src/server_impl.hpp
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-13 16:05:28 +0900
committerAdam Malczewski <[email protected]>2026-06-13 16:05:28 +0900
commit9ee2d3ceee93ff0d0afdb47f594ea4fee95455fc (patch)
tree4a1b73d8f140c88775d0487434ba23e807fc441f /packages/kernel/src/server_impl.hpp
parent11812b0374d5de395e2c17532c6bf89a903ee043 (diff)
downloadunbox-9ee2d3ceee93ff0d0afdb47f594ea4fee95455fc.tar.gz
unbox-9ee2d3ceee93ff0d0afdb47f594ea4fee95455fc.zip
Kernel: Ctrl+Alt+F1..F12 VT switching (session escape hatch)
Intercept the XF86Switch_VT_1..12 keysyms before the keybinding filter and call wlr_session_change_vt, so the user can always switch consoles while unbox runs. Clean no-op without a session (headless/nested). Pure vt_for_keysym helper + doctest; wlroots reached via the wlr.hpp wrapper. Real-seat verified on the CF-AX3.
Diffstat (limited to 'packages/kernel/src/server_impl.hpp')
-rw-r--r--packages/kernel/src/server_impl.hpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/packages/kernel/src/server_impl.hpp b/packages/kernel/src/server_impl.hpp
index 3407883..ef4a479 100644
--- a/packages/kernel/src/server_impl.hpp
+++ b/packages/kernel/src/server_impl.hpp
@@ -69,6 +69,10 @@ struct Server::Impl : detail::DisableSink {
wl_display* display = nullptr;
wlr_backend* backend = nullptr;
+ // The libseat/logind session, captured from wlr_backend_autocreate's
+ // out-param at init. NULL under headless/nested backends (no real seat) —
+ // the VT-switch escape hatch no-ops cleanly then. Owned by the backend.
+ wlr_session* session = nullptr;
wlr_renderer* renderer = nullptr;
wlr_allocator* allocator = nullptr;
wlr_scene* scene = nullptr;