input: Improve input device name format
The name now includes the type, for the case of a physical device advertising more than one logical device.
This commit is contained in:
parent
53f84b76f3
commit
422cd3e01f
@ -293,6 +293,8 @@ A complete list may be found in _/usr/include/linux/input-event-codes.h_
|
||||
|
||||
The _input_ command can be used to create a configuration rule for an input
|
||||
device identified by its _name_.
|
||||
The _name_ of an input device consists of its type, its numerical vendor id,
|
||||
its numerical product id and finally its self-advertised name, separated by -.
|
||||
|
||||
A list of all device properties that can be configured maybe found below.
|
||||
However note that not every input device supports every property.
|
||||
|
@ -46,11 +46,15 @@ pub const InputDevice = struct {
|
||||
identifier: []const u8,
|
||||
|
||||
pub fn init(self: *InputDevice, device: *wlr.InputDevice) !void {
|
||||
// The identifier is formatted exactly as in Sway
|
||||
const identifier = try std.fmt.allocPrint(
|
||||
util.gpa,
|
||||
"{}:{}:{s}",
|
||||
.{ device.vendor, device.product, mem.trim(u8, mem.span(device.name), &ascii.spaces) },
|
||||
"{s}-{}-{}-{s}",
|
||||
.{
|
||||
@tagName(device.type),
|
||||
device.vendor,
|
||||
device.product,
|
||||
mem.trim(u8, mem.span(device.name), &ascii.spaces),
|
||||
},
|
||||
);
|
||||
for (identifier) |*char| {
|
||||
if (char.* == ' ' or !std.ascii.isPrint(char.*)) {
|
||||
|
Loading…
Reference in New Issue
Block a user