diff --git a/src/libply-splash-core/ply-terminal.c b/src/libply-splash-core/ply-terminal.c index 2e95dc8..e3d3a1a 100644 --- a/src/libply-splash-core/ply-terminal.c +++ b/src/libply-splash-core/ply-terminal.c @@ -946,6 +946,16 @@ ply_terminal_deactivate_vt (ply_terminal_t *terminal) return false; } + /* we must set the console mode back to KD_TEXT if we are the last user + * of it, otherwise VT switching will be stuck. See set_console in vt.c + * in the linux kernel. + */ + if (ioctl (terminal->fd, KDSETMODE, KD_TEXT) < 0) + { + ply_trace ("failed to set terminal to KD_TEXT mode"); + return; + } + if (terminal->initial_vt_number < 0) { ply_trace ("Don't know where to jump to");