Sunday, 30 November 2025

Linux Operating System _ Multiseat on Ubuntu 25.10 _1

 

 Hi Copilot , the other day you gave me an explanation or you taught me how to do MULTISEAT on a DEBIAN 13 PC/Desktop . But on second thought , I would prefer to do MULTISEAT on a UBUNTU 25 Linux . I guess I feel more comfortable with UBUNTU 25 Linux than DEBIAN 13 , so Copilot , do you think you can teach me or give me a step-by-step procedure on how I can do MULTISEAT on a UBUNTU 25.10 Linux PC/Desktop , so much so that , my daughter is doing his own thing on her UBUNTU 25 PC/Desktop , and at the same time , I am doing my own thing on her UBUNTU 25 PC/Desktop ? THANKS Copilot.

 

MICROSOFT  Copilot  Answer 

 

Got it — you want to set up multiseat on Ubuntu 25.10 so that you and your daughter can each use the same PC at the same time, with separate monitors, keyboards, and mice. Here’s a clear step‑by‑step guide tailored for Ubuntu:


🖥️ What multiseat means

Multiseat allows one physical computer to act like multiple independent desktops. Each “seat” has:

  • Its own monitor (GPU or GPU output)
  • Its own keyboard and mouse
  • Optionally, its own audio device

Ubuntu uses systemd‑logind and a display manager (GDM or LightDM) to manage seats.


⚙️ Step‑by‑step procedure

1. Prepare hardware

  • Connect two monitors (ideally on separate GPUs, or one GPU with multiple outputs).
  • Connect two keyboards and two mice (USB hubs help keep them grouped).

2. Identify devices

Run these commands to list devices:

ls -l /dev/input/by-id
ls -l /dev/dri
  • /dev/input/by-id → shows keyboards/mice.
  • /dev/dri/card0, /dev/dri/card1 → show GPUs.

To get vendor/product IDs for inputs:

udevadm info --attribute-walk --name=/dev/input/eventX

3. Create udev rules for seat assignment

Make a new rules file:

sudo nano /etc/udev/rules.d/90-seat1.rules

Add entries like:

# Assign keyboard to seat1
SUBSYSTEM=="input", ATTRS{idVendor}=="abcd", ATTRS{idProduct}=="1234", ENV{ID_INPUT_KEYBOARD}=="1", ENV{ID_SEAT}="seat1"

# Assign mouse to seat1
SUBSYSTEM=="input", ATTRS{idVendor}=="abcd", ATTRS{idProduct}=="5678", ENV{ID_INPUT_MOUSE}=="1", ENV{ID_SEAT}="seat1"

# Assign GPU card1 to seat1
SUBSYSTEM=="drm", KERNEL=="card1", ENV{ID_SEAT}="seat1"

Replace abcd/1234 with the actual IDs from udevadm.

4. Reload udev and check seats

sudo udevadm control --reload
sudo udevadm trigger
loginctl list-seats
loginctl seat-status seat1

You should see seat1 with its devices.

5. Configure display manager

  • GDM (default in Ubuntu):

    • Edit /etc/gdm3/custom.conf and ensure Wayland is enabled:
      #WaylandEnable=false
      
    • Restart GDM:
      sudo systemctl restart gdm
      
    • Each seat should now get its own login screen.
  • LightDM (alternative, more control with Xorg):

    sudo apt install lightdm
    sudo dpkg-reconfigure lightdm
    

    Then edit /etc/lightdm/lightdm.conf:

    [Seat:seat0]
    xserver-command=X -seat seat0 -sharevts -novtswitch
    
    [Seat:seat1]
    xserver-command=X -seat seat1 -sharevts -novtswitch -isolateDevice PCI:1:0:0
    

    Replace PCI:1:0:0 with the BusID of your second GPU.

Restart LightDM:

sudo systemctl restart lightdm

6. Test

  • Each monitor should show a login prompt.
  • Each keyboard/mouse pair should only control its assigned seat.
  • Log in separately and run independent sessions.

🔧 Troubleshooting

  • Devices not bound correctly: Double‑check vendor/product IDs in udev rules.
  • Only one greeter appears: Ensure GPU assignment is correct (card1 vs card0).
  • Inputs overlap seats: Use USB hub path matching in udev if vendor/product IDs are identical.
  • Audio: Use USB sound cards and assign them to seats with similar udev rules.

👉 If you share your GPU model(s) and how your keyboards/mice are connected, I can refine the exact udev rules for your setup. Would you like me to tailor the config for a single GPU with two outputs, or are you planning to use two separate GPUs?

 

 

No comments:

Post a Comment