[systemd-devel] [PATCH] Ship new udev rules file to create per-seat symlinks for input devices

Peter Hutterer peter.hutterer at who-t.net
Fri Feb 14 14:54:17 PST 2014


On 15/02/2014 01:52 , Laércio de Sousa wrote:
> This rules file tells udev to create symlinks for input devices
> (keyboard and mouse, at this moment) separated by seat, so it could
> be easier for one to get quickly the devpath of a given input
> device attached to a given seat.
>
> Example: the keyboard attached to seat-foo will receive a symlink
> with path /dev/input/by-seat/seat-foo.kbd-event
>
> It can be very handful specially for Xephyr-based multiseat setups,
> where input devpaths must be passed via command line options
> like -keybd and -mouse.

tbh, this seems like something that should be added to Xephyr, not 
hacked up through udev rules. We have enough udev lookup code in the 
device-independent X bits of the server, using this from Xephyr is possible.

Cheers,
   Peter


> ---
>   Makefile.am                   | 3 ++-
>   src/login/74-seat-input.rules | 9 +++++++++
>   2 files changed, 11 insertions(+), 1 deletion(-)
>   create mode 100644 src/login/74-seat-input.rules
>
> diff --git a/Makefile.am b/Makefile.am
> index 79c49e6..b78df52 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -4262,7 +4262,8 @@ endif
>
>   dist_udevrules_DATA += \
>   	src/login/70-uaccess.rules \
> -	src/login/70-power-switch.rules
> +	src/login/70-power-switch.rules \
> +	src/login/74-seat-input.rules
>
>   nodist_udevrules_DATA += \
>   	src/login/71-seat.rules \
> diff --git a/src/login/74-seat-input.rules b/src/login/74-seat-input.rules
> new file mode 100644
> index 0000000..059a8de
> --- /dev/null
> +++ b/src/login/74-seat-input.rules
> @@ -0,0 +1,9 @@
> +# Rules for seat0
> +SUBSYSTEM=="input", ENV{ID_SEAT}=="", ENV{ID_INPUT_KEYBOARD}=="1", SYMLINK+="input/by-seat/seat0.kbd-event"
> +SUBSYSTEM=="input", ENV{ID_SEAT}=="", ENV{ID_INPUT_MOUSE}=="1", KERNEL=="event*", SYMLINK+="input/by-seat/seat0.mouse-event"
> +SUBSYSTEM=="input", ENV{ID_SEAT}=="", ENV{ID_INPUT_MOUSE}=="1", KERNEL=="mouse*", SYMLINK+="input/by-seat/seat0.mouse"
> +
> +# Rules for other seats
> +SUBSYSTEM=="input", ENV{ID_SEAT}!="", ENV{ID_INPUT_KEYBOARD}=="1", SYMLINK+="input/by-seat/$env{ID_SEAT}.kbd-event"
> +SUBSYSTEM=="input", ENV{ID_SEAT}!="", ENV{ID_INPUT_MOUSE}=="1", KERNEL=="event*", SYMLINK+="input/by-seat/$env{ID_SEAT}.mouse-event"
> +SUBSYSTEM=="input", ENV{ID_SEAT}!="", ENV{ID_INPUT_MOUSE}=="1", KERNEL=="mouse*", SYMLINK+="input/by-seat/$env{ID_SEAT}.mouse"
>



More information about the systemd-devel mailing list