]>
Commit | Line | Data |
---|---|---|
d9215cd8 ZJS |
1 | # SPDX-License-Identifier: LGPL-2.1+ |
2 | # | |
d7e1c95e LP |
3 | # This file is part of systemd. |
4 | # | |
5 | # systemd is free software; you can redistribute it and/or modify it | |
6 | # under the terms of the GNU Lesser General Public License as published by | |
7 | # the Free Software Foundation; either version 2.1 of the License, or | |
8 | # (at your option) any later version. | |
9 | ||
10 | ACTION=="remove", GOTO="seat_end" | |
11 | ||
12 | TAG=="uaccess", SUBSYSTEM!="sound", TAG+="seat" | |
13 | SUBSYSTEM=="sound", KERNEL=="card*", TAG+="seat" | |
14 | SUBSYSTEM=="input", KERNEL=="input*", TAG+="seat" | |
2d96536d | 15 | SUBSYSTEM=="graphics", KERNEL=="fb[0-9]*", TAG+="seat", TAG+="master-of-seat" |
ed817cd4 | 16 | SUBSYSTEM=="drm", KERNEL=="card[0-9]*", TAG+="seat", TAG+="master-of-seat" |
d7e1c95e LP |
17 | SUBSYSTEM=="usb", ATTR{bDeviceClass}=="09", TAG+="seat" |
18 | ||
19 | # 'Plugable' USB hub, sound, network, graphics adapter | |
20 | SUBSYSTEM=="usb", ATTR{idVendor}=="2230", ATTR{idProduct}=="000[13]", ENV{ID_AUTOSEAT}="1" | |
21 | ||
a92a81d8 | 22 | # qemu (version 2.4+) has a PCI-PCI bridge (-device pci-bridge-seat) to group |
aa6b0ac4 | 23 | # devices belonging to one seat. See: |
a92a81d8 GH |
24 | # http://git.qemu.org/?p=qemu.git;a=blob;f=docs/multiseat.txt |
25 | SUBSYSTEM=="pci", ATTR{vendor}=="0x1b36", ATTR{device}=="0x000a", TAG+="seat", ENV{ID_AUTOSEAT}="1" | |
26 | ||
d7e1c95e LP |
27 | # Mimo 720, with integrated USB hub, displaylink graphics, and e2i |
28 | # touchscreen. This device carries no proper VID/PID in the USB hub, | |
29 | # but it does carry good ID data in the graphics component, hence we | |
30 | # check it from the parent. There's a bit of a race here however, | |
31 | # given that the child devices might not exist yet at the time this | |
32 | # rule is executed. To work around this we'll trigger the parent from | |
33 | # the child if we notice that the parent wasn't recognized yet. | |
34 | ||
35 | # Match parent | |
36 | SUBSYSTEM=="usb", ATTR{idVendor}=="058f", ATTR{idProduct}=="6254", \ | |
37 | ATTR{%k.2/idVendor}=="17e9", ATTR{%k.2/idProduct}=="401a", ATTR{%k.2/product}=="mimo inc", \ | |
38 | ENV{ID_AUTOSEAT}="1", ENV{ID_AVOID_LOOP}="1" | |
39 | ||
40 | # Match child, look for parent's ID_AVOID_LOOP | |
41 | SUBSYSTEM=="usb", ATTR{idVendor}=="17e9", ATTR{idProduct}=="401a", ATTR{product}=="mimo inc", \ | |
42 | ATTR{../idVendor}=="058f", ATTR{../idProduct}=="6254", \ | |
43 | IMPORT{parent}="ID_AVOID_LOOP" | |
44 | ||
45 | # Match child, retrigger parent | |
46 | SUBSYSTEM=="usb", ATTR{idVendor}=="17e9", ATTR{idProduct}=="401a", ATTR{product}=="mimo inc", \ | |
47 | ATTR{../idVendor}=="058f", ATTR{../idProduct}=="6254", \ | |
48 | ENV{ID_AVOID_LOOP}=="", \ | |
f432bb91 | 49 | RUN+="@rootbindir@/udevadm trigger --parent-match=%p/.." |
d7e1c95e LP |
50 | |
51 | TAG=="seat", ENV{ID_PATH}=="", IMPORT{builtin}="path_id" | |
52 | TAG=="seat", ENV{ID_FOR_SEAT}=="", ENV{ID_PATH_TAG}!="", ENV{ID_FOR_SEAT}="$env{SUBSYSTEM}-$env{ID_PATH_TAG}" | |
53 | ||
7212a8a9 LP |
54 | SUBSYSTEM=="input", ATTR{name}=="Wiebetech LLC Wiebetech", RUN+="@rootbindir@/loginctl lock-sessions" |
55 | ||
d7e1c95e | 56 | LABEL="seat_end" |