chiark / gitweb /
inhibit: allow filtering --list by mode
[elogind.git] / src / login / logind-seat.c
index 3114de84de5811950248486d1a02862f29eb7fb1..99921951511cc3c9293c06d0be12fb3669cda899 100644 (file)
@@ -275,8 +275,13 @@ int seat_switch_to(Seat *s, unsigned int num) {
         if (!num)
                 return -EINVAL;
 
-        if (num >= s->position_count || !s->positions[num])
+        if (num >= s->position_count || !s->positions[num]) {
+                /* allow switching to unused VTs to trigger auto-activate */
+                if (seat_has_vts(s) && num < 64)
+                        return chvt(num);
+
                 return -EINVAL;
+        }
 
         return session_activate(s->positions[num]);
 }