I need to take a step back to fully understand the requirements on this one.
The simple case for this is:
- 1 processor
- 1 video card with two outputs
- Two keyboards/mice
On startup two login screens are displayed and two people can use this processor simultaneously and independently?
My first question is, can logind handle this case? Can it create two seats and assign the input devices to each seat. Can it communicate to an X server that it should only use one output?
If logind can't handle this case we should first investigate if we can make it do so as that will make this a lot more consistent with the other multi-seat cases.
If it's not possible/appropriate for logind to do this, then I think the structure inside LightDM should be to have a "SeatManager" class that decides how the seats are laid out. In this multi-head multi-seat case we don't use the LogindSeatManager, instead we use a MultiHeadSeatManager which starts and manages the parent X server. We don't want to use the Seat class for something that is not a seat.
This feature sounds a bit borderline to me. If we can't implement this cleanly, I think the answer will be "the supported method of multi-seat is to have separate output devices".
I need to take a step back to fully understand the requirements on this one.
The simple case for this is:
- 1 processor
- 1 video card with two outputs
- Two keyboards/mice
On startup two login screens are displayed and two people can use this processor simultaneously and independently?
My first question is, can logind handle this case? Can it create two seats and assign the input devices to each seat. Can it communicate to an X server that it should only use one output?
If logind can't handle this case we should first investigate if we can make it do so as that will make this a lot more consistent with the other multi-seat cases.
If it's not possible/ appropriate for logind to do this, then I think the structure inside LightDM should be to have a "SeatManager" class that decides how the seats are laid out. In this multi-head multi-seat case we don't use the LogindSeatManager, instead we use a MultiHeadSeatMa nager which starts and manages the parent X server. We don't want to use the Seat class for something that is not a seat.
This feature sounds a bit borderline to me. If we can't implement this cleanly, I think the answer will be "the supported method of multi-seat is to have separate output devices".