Logitech Ultrathin Touch Mouse is reported as keyboard
This Bluetooth device reports as a power supply, but as keyboard instead of as a mouse:
Device: /org/freedesktop/UPower/devices/keyboard_hid_00o1fo20o96o42o4b_battery
native-path: hid-00:1f:20:96:42:4b-battery
model: Ultrathin Touch Mouse
power supply: no
updated: 2019-06-19T11:34:22 CEST (11 seconds ago)
has history: yes
has statistics: yes
keyboard
present: yes
rechargeable: yes
state: discharging
warning-level: none
percentage: 56%
icon-name: 'battery-good-symbolic'
To determine if a particular power supply is a mouse, up-device-supply.c tries to find a sibling device with subsystem input
, and then checks for the presence of the ID_INPUT_MOUSE
property. Unfortunately, this mouse is represented by several devices with that subsystem, including one that is named Ultrathin Touch Mouse Keyboard
, which does not have ID_INPUT_MOUSE
, but only ID_INPUT_KEYBOARD
(partial udevadm dump):
P: /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:512/0005:046D:B00D.000B
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:512/0005:046D:B00D.000B
E: SUBSYSTEM=hid
E: DRIVER=hid-generic
E: HID_ID=0005:0000046D:0000B00D
E: HID_NAME=Ultrathin Touch Mouse
E: HID_PHYS=04:ea:56:ac:63:a8
E: HID_UNIQ=00:1f:20:96:42:4b
E: MODALIAS=hid:b0005g0001v0000046Dp0000B00D
P: /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:512/0005:046D:B00D.000B/input/input71
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:512/0005:046D:B00D.000B/input/input71
E: SUBSYSTEM=input
E: PRODUCT=5/46d/b00d/700
E: NAME="Ultrathin Touch Mouse Keyboard"
E: PHYS="04:ea:56:ac:63:a8"
E: UNIQ="00:1f:20:96:42:4b"
E: PROP=0
E: EV=120013
E: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
E: MSC=10
E: LED=1f
E: MODALIAS=input:b0005v046DpB00De0700-e0,1,4,11,14,k71,72,73,74,75,77,79,7A,7B,7C,7D,7E,7F,80,81,82,83,84,85,86,87,88,89,8A,8C,8E,96,98,9E,9F,A1,A3,A4,A5,A6,AD,B0,B1,B2,B3,B4,B7,B8,B9,BA,BB,BC,BD,BE,BF,C0,C1,C2,F0,ram4,l0,1,2,3,4,sfw
E: USEC_INITIALIZED=474846450575
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_BUS=bluetooth
E: ID_PATH=pci-0000:00:14.0-usb-0:7:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_7_1_0
E: ID_FOR_SEAT=input-pci-0000_00_14_0-usb-0_7_1_0
E: TAGS=:seat:
P: /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:512/0005:046D:B00D.000B/input/input72
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:512/0005:046D:B00D.000B/input/input72
E: SUBSYSTEM=input
E: PRODUCT=5/46d/b00d/700
E: NAME="Ultrathin Touch Mouse"
E: PHYS="04:ea:56:ac:63:a8"
E: UNIQ="00:1f:20:96:42:4b"
E: PROP=0
E: EV=17
E: KEY=1f0000 0 0 0 0
E: REL=1943
E: MSC=10
E: MODALIAS=input:b0005v046DpB00De0700-e0,1,2,4,k110,111,112,113,114,r0,1,6,8,B,C,am4,lsfw
E: USEC_INITIALIZED=474846451995
E: ID_INPUT=1
E: ID_INPUT_MOUSE=1
E: ID_BUS=bluetooth
E: ID_PATH=pci-0000:00:14.0-usb-0:7:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_7_1_0
E: ID_FOR_SEAT=input-pci-0000_00_14_0-usb-0_7_1_0
E: TAGS=:seat:
P: /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:512/0005:046D:B00D.000B/power_supply/hid-00:1f:20:96:42:4b-battery
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:512/0005:046D:B00D.000B/power_supply/hid-00:1f:20:96:42:4b-battery
E: SUBSYSTEM=power_supply
E: POWER_SUPPLY_NAME=hid-00:1f:20:96:42:4b-battery
E: POWER_SUPPLY_PRESENT=1
E: POWER_SUPPLY_ONLINE=1
E: POWER_SUPPLY_CAPACITY=56
E: POWER_SUPPLY_MODEL_NAME=Ultrathin Touch Mouse
E: POWER_SUPPLY_STATUS=Discharging
E: POWER_SUPPLY_SCOPE=Device
Since up_device_supply_get_sibling_with_subsystem
only returns one device, if the one with only ID_INPUT_KEYBOARD
is returned, it will mark the device as a keyboard.