Multiseat for FatDog64 901

Moderators: kirk, jamesbond, p310don, JakeSFR, step, Forum moderators

Post Reply
devildog
Posts: 25
Joined: Thu Jul 08, 2021 11:28 am
Has thanked: 9 times
Been thanked: 2 times

Multiseat for FatDog64 901

Post by devildog »

Hello again!

So - 3 days before my final exam this year the laptop died.

While it did not take all the work with it (most files backed up on server and 2.5" HDD from the laptop is fitted into a caddy now) this left us with only one machine. With a triple headed graphics card. Two screens. Two Keyboards. And Two Mice.

The graphics card is a 5 series radeon with 3 heads.

The following gave us a second mouse and keyboard - enough to get the work done on time.

Code: Select all

xinput list
xinput create-master Second
sleep 3&&xinput reattach 9 20&&xinput reattach 8 19
^^ change that line for your own setup

Since the exam is done now am looking at doing this right. Simply - what do we have to do to lock one mouse and one keyboard to each screen so Evil Girl and self can play wow together?!

Saw James' post on multiseat but couldn't work out how to apply it.
https://www.lightofdawn.org/wiki/wiki.c ... xMultiSeat

Our current xorg.conf looks like this:

Code: Select all

Section "ServerLayout"
    Identifier "Layout0"
    Screen 0 "Screen0" 0 0
    Screen 1 "Screen1" RightOf "Screen0"
    InputDevice "Keyboard0" "CoreKeyboard"      # BTC USB Keyboard for Screen0
    InputDevice "Mouse0" "CorePointer"          # USB OPTICAL MOUSE 1 for Screen0
    InputDevice "Keyboard1" "CoreKeyboard"      # SEMICO USB Keyboard for Screen1
    InputDevice "Mouse1" "CorePointer"          # USB OPTICAL MOUSE 2 for Screen1
EndSection

Section "InputDevice"
    Identifier "Keyboard0"
    Driver "libinput"
    Option "Device" "/dev/input/event8"         # BTC USB Keyboard
    Option "CoreKeyboard"
EndSection

Section "InputDevice"
    Identifier "Mouse0"
    Driver "libinput"
    Option "Device" "/dev/input/event2"         # USB OPTICAL MOUSE 1
    Option "CorePointer"
EndSection

Section "InputDevice"
    Identifier "Keyboard1"
    Driver "libinput"
    Option "Device" "/dev/input/event4"         # SEMICO USB Keyboard
    Option "CoreKeyboard"
EndSection

Section "InputDevice"
    Identifier "Mouse1"
    Driver "libinput"
    Option "Device" "/dev/input/event3"         # USB OPTICAL MOUSE 2
    Option "CorePointer"
EndSection

Section "Monitor"
    Identifier  "Monitor0"
    VendorName  "Monitor Vendor"
    ModelName   "Monitor Model"
EndSection

Section "Monitor"
    Identifier  "Monitor1"
    VendorName  "Monitor Vendor"
    ModelName   "Monitor Model"
EndSection

Section "Device"
    Identifier  "Device0"
    Driver      "radeon"
    BusID       "PCI:2:0:0"
    Option      "Monitor-DVI-0" "Monitor0"
    Option      "Monitor-VGA-0" "Monitor1"
EndSection

Section "Screen"
    Identifier  "Screen0"
    Device      "Device0"
    Monitor     "Monitor0"
    DefaultDepth 24
    SubSection  "Display"
        Depth   24
        Modes   "1024x768"
    EndSubSection
EndSection

Section "Screen"
    Identifier  "Screen1"
    Device      "Device0"
    Monitor     "Monitor1"
    DefaultDepth 24
    SubSection  "Display"
        Depth   24
        Modes   "1024x768"
    EndSubSection
EndSection

This produces what may be the correct server layout - but only one mouse-focus (the mice operate a single pointer - we want 2!)

We won't be fitting another graphics card (tiiiiny PSU in that machine barely starts as it is).

Is it possible to get multiseat working on this setup?

Code: Select all

From the FD info tool...

Session-
        Type : x11
-Wayland-
  Current Display Name : (Not Available)
-X Server-
  Current Display Name : :0
                Vendor : The X.Org Foundation
               Version : 21.1.8
        Release Number : 12101008
-Screens-
    Screen 0 : 2048x768 pixels
-Outputs (XRandR)-
      HDMI-0 : Disconnected; Unused
       DVI-0 : Connected; 1024x768 pixels, offset (0, 0)
       VGA-0 : Connected; 1024x768 pixels, offset (1024, 0)
-OpenGL (GLX)-
                                    Vendor : X.Org
                                  Renderer : AMD TURKS (DRM 2.50.0 / 6.1.46, LLVM 15.0.7)
                          Direct Rendering : Yes
                   Version (Compatibility) : 4.5 (Compatibility Profile) Mesa 22.3.7
  Shading Language Version (Compatibility) : 4.50
                            Version (Core) : 4.5 (Core Profile) Mesa 22.3.7
           Shading Language Version (Core) : 4.50
                              Version (ES) : OpenGL ES 3.1 Mesa 22.3.7
             Shading Language Version (ES) : OpenGL ES GLSL ES 3.10
                               GLX Version : 1.4

Currently it's a bit of a mess.
Two Xservers ... will not work in my configuration - single graphics card multiple heads?
Not sure how to try that out.

jamesbond
Posts: 716
Joined: Tue Aug 11, 2020 3:02 pm
Location: The Pale Blue Dot
Has thanked: 124 times
Been thanked: 402 times

Re: Multiseat for FatDog64 901

Post by jamesbond »

It has been a while since I did it, and things may have changed since then.
I need to take a look and see what needs to be updated to make it work again ... will have to bear with me for a while.

Perhaps others with similar experience/setup can also help you in the meanwhile.

devildog
Posts: 25
Joined: Thu Jul 08, 2021 11:28 am
Has thanked: 9 times
Been thanked: 2 times

Re: Multiseat for FatDog64 901

Post by devildog »

Understand completely - you're very kind to look at it. Will keep poking around the edges myself. I doubt you have one of these triple headed cards yourself so it will not be easy to replicate our setup.

User avatar
stemsee
Posts: 779
Joined: Sun Jul 26, 2020 8:11 am
Location: lattitude 8
Has thanked: 185 times
Been thanked: 131 times

Re: Multiseat for FatDog64 901

Post by stemsee »

Some info from the old forum.https://oldforum.puppylinux.com/viewtopic.php?t=96434

I was very interested in multi-seat on linux. I had mixed success. Also multi-cursor as a separate function.

Although systemd is not essential, systems with systemd initialised do offer automatic multi-seat configuration, preferably using one usb hub with sound and mouse and keyboad - per seat.

Windows 11 multi-server even allowed dividing up a single monitor into several screens, which makes sense now with 4k and 8k 50" + screens to play with.

I am looking forward to seeing what jamesbond comes up with.

devildog
Posts: 25
Joined: Thu Jul 08, 2021 11:28 am
Has thanked: 9 times
Been thanked: 2 times

Re: Multiseat for FatDog64 901

Post by devildog »

Hi Guys - thanks for thinking about this.

Currently have a bodge working...

Using the default FatDog setup we set both displays to 1024x768

Code: Select all

FD Control Panel > Display > Display Properties (Alternate)

Next, in two separate terminals we run...

Code: Select all

xinput list

and ...

Code: Select all

xinput create-master Second
xinput list

Which enables us to compare the two and deduce ...

Code: Select all

sleep 3&&xinput reattach 8 19&&xinput reattach 9 20

This gives the second KB and Mouse focus.

Next we set up two new wine containers.
In our case these are at /root/wine-001 and /root/wine-002

Run Wine configuration in each container and change to "Virtual Desktop" 1024x768.

Code: Select all

WINEPREFIX=/root/wine-001 winecfg

and...

Code: Select all

WINEPREFIX=/root/wine-002 winecfg

Each Wine container will of course need a copy of the client - the second and further can be built from symlinks making them fairly small.

--------

Running it ...

Open two terminals in the respective wine client folders and execute the following.

Terminal 1

Code: Select all

WINEPREFIX=/root/wine-001 wine Wow.exe -opengl

Terminal 2

Code: Select all

WINEPREFIX=/root/wine-002 wine Wow.exe -opengl

You will find the second instance opens on the same monitor as the first, obscuring it.
We use compiz so CTL-ALT-LEFT allows us to move to another desktop, right click the last wine instance in the task bar and "Move to next monitor".
Move the associated terminal session as well if required (it should be in the right screen already).
Your mileage may vary.

Set the graphics options in WoW ...
We found a full screen window to work best.

This ^^ makes a sort of playable 2 handed setup.

Issues remain:
Mice do not respect their monitor boundaries.
Second mouse "MOUSELOOK" sort of unusable... camera spins on mouse drag. Using keyboard to look about and camera view key bindings helps.
Sometimes the second KB looses focus - alt-tab to the CORRECT terminal session ... click in it ... type something ... then click the wow client. Fixed.

Otherwise - very playable!

A better solution would involve 2 xervers with their own mice and keyboards.
Still looking at that but most of what I've found is suitable for machines with 2 graphics cards not a single card with mult-pupple outputs.

xxx.

Post Reply

Return to “FatDog”