]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/login/71-seat.rules.in
catalog: update Polish translation
[thirdparty/systemd.git] / src / login / 71-seat.rules.in
CommitLineData
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
10ACTION=="remove", GOTO="seat_end"
11
12TAG=="uaccess", SUBSYSTEM!="sound", TAG+="seat"
13SUBSYSTEM=="sound", KERNEL=="card*", TAG+="seat"
14SUBSYSTEM=="input", KERNEL=="input*", TAG+="seat"
6260d28b 15SUBSYSTEM=="graphics", KERNEL=="fb[0-9]*", TAG+="seat"
17f377ef 16
3841f57b
LP
17# Assign keyboard and LCD backlights to the seat
18SUBSYSTEM=="leds", TAG+="seat"
19SUBSYSTEM=="backlight", TAG+="seat"
20
17f377ef
ML
21# HyperV currently doesn't do DRM, hence we need to synthesize for HyperV's fb device instead
22SUBSYSTEM=="graphics", KERNEL=="fb[0-9]", DRIVERS=="hyperv_fb", TAG+="master-of-seat"
23
183e8c0b
AJ
24# Allow efifb / uvesafb to be a master if KMS is disabled
25SUBSYSTEM=="graphics", KERNEL=="fb[0-9]", IMPORT{cmdline}="nomodeset", TAG+="master-of-seat"
26
0325f719
ZJS
27# Allow any PCI graphics device to be a master and synthesize a seat if KMS
28# is disabled and the kernel doesn't have a driver that would work with this device.
29SUBSYSTEM=="pci", ENV{ID_PCI_CLASS_FROM_DATABASE}=="Display controller", \
30 ENV{DRIVER}=="", IMPORT{cmdline}="nomodeset", TAG+="seat", TAG+="master-of-seat"
31
ed817cd4 32SUBSYSTEM=="drm", KERNEL=="card[0-9]*", TAG+="seat", TAG+="master-of-seat"
f0199438
AN
33
34# Allow individual USB ports to be assigned to a seat
35SUBSYSTEM=="usb", ATTR{bDeviceClass}=="00", TAG+="seat"
36
37# Allow USB hubs (and all downstream ports) to be assigned to a seat
d7e1c95e
LP
38SUBSYSTEM=="usb", ATTR{bDeviceClass}=="09", TAG+="seat"
39
99fdffaa 40# 'Plugable' USB hub, sound, network, graphics adapter
d7e1c95e
LP
41SUBSYSTEM=="usb", ATTR{idVendor}=="2230", ATTR{idProduct}=="000[13]", ENV{ID_AUTOSEAT}="1"
42
a92a81d8 43# qemu (version 2.4+) has a PCI-PCI bridge (-device pci-bridge-seat) to group
aa6b0ac4 44# devices belonging to one seat. See:
a92a81d8
GH
45# http://git.qemu.org/?p=qemu.git;a=blob;f=docs/multiseat.txt
46SUBSYSTEM=="pci", ATTR{vendor}=="0x1b36", ATTR{device}=="0x000a", TAG+="seat", ENV{ID_AUTOSEAT}="1"
47
8e3480eb
RK
48# Video adapter of Parallels virtualization platform
49# Seat should be synthesized for it. But there's no in-kernel driver for this
50# device so matching by vid/pid.
51SUBSYSTEM=="pci", ATTRS{vendor}=="0x1ab8", ATTRS{device}=="0x4005", TAG+="seat", TAG+="master-of-seat"
52
d7e1c95e
LP
53# Mimo 720, with integrated USB hub, displaylink graphics, and e2i
54# touchscreen. This device carries no proper VID/PID in the USB hub,
55# but it does carry good ID data in the graphics component, hence we
56# check it from the parent. There's a bit of a race here however,
57# given that the child devices might not exist yet at the time this
58# rule is executed. To work around this we'll trigger the parent from
59# the child if we notice that the parent wasn't recognized yet.
60
61# Match parent
62SUBSYSTEM=="usb", ATTR{idVendor}=="058f", ATTR{idProduct}=="6254", \
63 ATTR{%k.2/idVendor}=="17e9", ATTR{%k.2/idProduct}=="401a", ATTR{%k.2/product}=="mimo inc", \
64 ENV{ID_AUTOSEAT}="1", ENV{ID_AVOID_LOOP}="1"
65
66# Match child, look for parent's ID_AVOID_LOOP
67SUBSYSTEM=="usb", ATTR{idVendor}=="17e9", ATTR{idProduct}=="401a", ATTR{product}=="mimo inc", \
68 ATTR{../idVendor}=="058f", ATTR{../idProduct}=="6254", \
69 IMPORT{parent}="ID_AVOID_LOOP"
70
71# Match child, retrigger parent
72SUBSYSTEM=="usb", ATTR{idVendor}=="17e9", ATTR{idProduct}=="401a", ATTR{product}=="mimo inc", \
73 ATTR{../idVendor}=="058f", ATTR{../idProduct}=="6254", \
74 ENV{ID_AVOID_LOOP}=="", \
f432bb91 75 RUN+="@rootbindir@/udevadm trigger --parent-match=%p/.."
d7e1c95e
LP
76
77TAG=="seat", ENV{ID_PATH}=="", IMPORT{builtin}="path_id"
78TAG=="seat", ENV{ID_FOR_SEAT}=="", ENV{ID_PATH_TAG}!="", ENV{ID_FOR_SEAT}="$env{SUBSYSTEM}-$env{ID_PATH_TAG}"
79
7212a8a9
LP
80SUBSYSTEM=="input", ATTR{name}=="Wiebetech LLC Wiebetech", RUN+="@rootbindir@/loginctl lock-sessions"
81
d7e1c95e 82LABEL="seat_end"