Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-137374

Wayland - Problem in multi seat environments: wl_seat#54: error 0: wl_seat.get_keyboard called when no keyboard capability has existed

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • P1: Critical
    • None
    • 6.9.0
    • None
    • Linux/Wayland
    • Linux/Wayland

    Description

      Hi,

      I ran into this problem recently while trying to stream from a system with a Wacom graphics tablet connected and was able to reproduce it on a Thinkpad X1 Tablet Gen 2.

      Right after starting it, OBS crashes with a following error:

      wl_seat#56: error 0: wl_seat.get_keyboard called when no keyboard capability has existed
      warning: The Wayland connection experienced a fatal error: Protocol error

      and the OBS-people send me here, since this is apparently a QT issue according to them.

      I've so far been unable to get more information, if you need anything, I'll help as best as I can.

      How to reproduce:

      On wayland/swaywm (wlroots based compositors):
      1. Create a additional seat for touch/tablet input that does not have a keyboard attached

      This shows that I have only 2 devices attached to the second seat, none of them are a keyboard (touch and tablet_tool):

      % swaymsg -t get_seats --raw [12:09:09]
      [
      {
      "name": "tablet0",
      "capabilities": 5,
      "focus": 13,
      "devices": [
      {
      "identifier": "1386:20757:Wacom_HID_5115_Finger",
      "name": "Wacom HID 5115 Finger",
      "type": "touch",
      "libinput":

      Unknown macro: { "send_events"}

      ,
      "vendor": 1386,
      "product": 20757
      },
      {
      "identifier": "1386:20757:Wacom_HID_5115_Pen",
      "name": "Wacom HID 5115 Pen",
      "type": "tablet_tool",
      "libinput":

      Unknown macro: { "send_events"}

      ,
      "vendor": 1386,
      "product": 20757
      }
      ]
      },
      {
      "name": "seat0",
      "capabilities": 3,
      "focus": 7,
      "devices": [
      { ...

      2. Try to start OBS

      Workaround

      I can get OBS to start by removing the second seat and attaching touch and pen input to `seat0`, but that is really annoying to work with since it will constantly warp my normal pointer back to the graphics tablet with every touch of the pen.

      Solution?

      Is it possible to listen on all available seats or look for a seat with a keyboard attached?

      Thank you!

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            davidedmundson David Edmundson
            chron Alexander Kempen
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes