Switch VT on Ctrl+Alt+F<n>
Only works when switching to fbcon for now. We need to stop page-flipping when the DRM FD is paused to support switching to another compositor. References: https://github.com/Plagman/gamescope/issues/6
This commit is contained in:
parent
16d74b8e15
commit
dced8a88da
1 changed files with 10 additions and 1 deletions
|
@ -134,6 +134,15 @@ static void wlserver_handle_key(struct wl_listener *listener, void *data)
|
||||||
struct wlserver_keyboard *keyboard = wl_container_of( listener, keyboard, key );
|
struct wlserver_keyboard *keyboard = wl_container_of( listener, keyboard, key );
|
||||||
struct wlr_event_keyboard_key *event = data;
|
struct wlr_event_keyboard_key *event = data;
|
||||||
|
|
||||||
|
xkb_keycode_t keycode = event->keycode + 8;
|
||||||
|
xkb_keysym_t keysym = xkb_state_key_get_one_sym(keyboard->device->keyboard->xkb_state, keycode);
|
||||||
|
|
||||||
|
if (wlserver.wlr.session && event->state == WLR_KEY_PRESSED && keysym >= XKB_KEY_XF86Switch_VT_1 && keysym <= XKB_KEY_XF86Switch_VT_12) {
|
||||||
|
unsigned vt = keysym - XKB_KEY_XF86Switch_VT_1 + 1;
|
||||||
|
wlr_session_change_vt(wlserver.wlr.session, vt);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
wlr_seat_set_keyboard( wlserver.wlr.seat, keyboard->device);
|
wlr_seat_set_keyboard( wlserver.wlr.seat, keyboard->device);
|
||||||
wlr_seat_keyboard_notify_key( wlserver.wlr.seat, event->time_msec, event->keycode, event->state );
|
wlr_seat_keyboard_notify_key( wlserver.wlr.seat, event->time_msec, event->keycode, event->state );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue