diff --git a/backend/session/logind.c b/backend/session/logind.c index daff75b6..e9d4c8f3 100644 --- a/backend/session/logind.c +++ b/backend/session/logind.c @@ -347,12 +347,6 @@ static struct wlr_session *logind_session_create(struct wl_display *disp) { goto error; } - ret = sd_session_get_vt(session->id, &session->base.vtnr); - if (ret < 0) { - wlr_log(L_ERROR, "Session not running in virtual terminal"); - goto error; - } - char *seat; ret = sd_session_get_seat(session->id, &seat); if (ret < 0) { @@ -360,6 +354,14 @@ static struct wlr_session *logind_session_create(struct wl_display *disp) { goto error; } snprintf(session->base.seat, sizeof(session->base.seat), "%s", seat); + + if (strcmp(seat, "seat0") == 0) { + ret = sd_session_get_vt(session->id, &session->base.vtnr); + if (ret < 0) { + wlr_log(L_ERROR, "Session not running in virtual terminal"); + goto error; + } + } free(seat); ret = sd_bus_default_system(&session->bus);