diff options
-rw-r--r-- | hwdb/70-mouse.hwdb | 92 | ||||
-rw-r--r-- | hwdb/Makefile.am | 3 | ||||
-rw-r--r-- | rules/70-mouse.rules | 15 | ||||
-rw-r--r-- | rules/Makefile.am | 1 |
4 files changed, 110 insertions, 1 deletions
diff --git a/hwdb/70-mouse.hwdb b/hwdb/70-mouse.hwdb new file mode 100644 index 0000000000..3d19f17179 --- /dev/null +++ b/hwdb/70-mouse.hwdb @@ -0,0 +1,92 @@ +# This file is part of systemd. +# +# Database for the DPI setting of mice, trackballs, other pointer devices that +# cannot be queried directly. +# +# The lookup keys are composed in: +# 70-mouse.rules +# +# Note: The format of the "mouse:" prefix match key is a +# contract between the rules file and the hardware data, it might +# change in later revisions to support more or better matches, it +# is not necessarily expected to be a stable ABI. +# +# Match string format: +# mouse:<subsystem>:v<vid>p<pid>:name:<name>: +# +# Supported subsystems: usb, bluetooth +# vid/pid as 4-digit hex lowercase vendor/product +# +# if vid/pid is unavailable, use +# mouse:*:name:<name>: +# if name is unavailable, use +# mouse:<subsystem>:v<vid>p<pid>:* +# +# For example, the following 5 matches all match the same mouse: +# mouse:usb:v17efp6019:name:Lenovo Optical USB Mouse: +# mouse:usb:*:name:Lenovo Optical USB Mouse: +# mouse:usb:v17efp6019:* +# mouse:*:name:Lenovo Optical USB Mouse: +# +# DPI settings are specified as +# MOUSE_DPI=<dpi>[@<frequency>] +# +# Where <dpi> is the resolution in dots per inch, and <frequency> the +# optional sampling frequency in Hz. +# +# The value of MOUSE_DPI is: +# - a single integer for single-resolution mice, e.g. +# MOUSE_DPI=800 +# or, if the frequency is known: +# MOUSE_DPI=800@120 +# - a space-separated list of resolutions for multi-resolution mice. +# The default resolution must be prefixed by an asterisk, the resultions +# in the database must be as shipped by the manufacturer. e.g. +# MOUSE_DPI=400 *800 2000 +# +# The order of resolutions is as configured by the HW manufacturer or in +# ascending order, whichever appropriate. +# +# The frequency must be given to either none or all resolutions. If the +# device supports multiple frequencies, the order of items is +# MOUSE_DPI=r1@f1 r2@f1 r3@f1 r1@f2 r2@f2 r3@f2 +# +# If the default manufacturer-set resolution is unclear, a resolution of +# 800 or 1000 should be set as default, if available. If neither is +# available, choose the "middle" resolution value of those available. +# +# The list may contain a single item which must be marked with an +# asterisk. +# +# Local changes to the a non-default resolution of the mouse (e.g. through +# third-party software) must not be entered into this file, use a local +# hwdb instead. +# +# To add local entries, create a new file +# /etc/udev/hwdb.d/71-mouse-local.hwdb +# and add your rules there. To load the new rules execute (as root): +# udevadm hwdb --update +# udevadm trigger /dev/input/eventXX +# where /dev/input/eventXX is the mouse in question. If in +# doubt, simply use /dev/input/event* to reload all input rules. +# +# If your changes are generally applicable, open a bug report on +# http://bugs.freedesktop.org/enter_bug.cgi?product=systemd +# and include your new rules, a description of the device, and the +# output of +# udevadm info /dev/input/eventXX +# (or /dev/input/event*). + +########################################## +# Lenovo +########################################## + +mouse:usb:v17efp6019:name:Lenovo Optical USB Mouse: + MOUSE_DPI=1000@125 + +########################################## +# Logitech +########################################## + +mouse:usb:v046dpc24e:name:Logitech G500s Laser Gaming Mouse: + MOUSE_DPI=400@500 *800@500 2000@500 diff --git a/hwdb/Makefile.am b/hwdb/Makefile.am index daa9d72c79..c00cfe1335 100644 --- a/hwdb/Makefile.am +++ b/hwdb/Makefile.am @@ -9,7 +9,8 @@ dist_udevhwdb_DATA = \ 20-sdio-classes.hwdb \ 20-sdio-vendor-model.hwdb \ 20-usb-classes.hwdb \ - 20-usb-vendor-model.hwdb + 20-usb-vendor-model.hwdb \ + 70-mouse.hwdb if ENABLE_KEYMAP dist_udevhwdb_DATA += \ diff --git a/rules/70-mouse.rules b/rules/70-mouse.rules new file mode 100644 index 0000000000..0e359e83f1 --- /dev/null +++ b/rules/70-mouse.rules @@ -0,0 +1,15 @@ +# do not edit this file, it will be overwritten on update + +ACTION=="remove", GOTO="mouse_end" +KERNEL!="event*", GOTO="mouse_end" +ENV{ID_INPUT_MOUSE}=="", GOTO="mouse_end" + +# mouse:<subsystem>:v<vid>p<pid>:name:<name>:* +KERNELS=="input*", ENV{ID_BUS}=="usb", \ + IMPORT{builtin}="hwdb 'mouse:$env{ID_BUS}:v$attr{id/vendor}p$attr{id/product}:name:$attr{name}:'", \ + GOTO="mouse_end" +KERNELS=="input*", ENV{ID_BUS}=="bluetooth", \ + IMPORT{builtin}="hwdb 'mouse:$env{ID_BUS}:v$attr{id/vendor}p$attr{id/product}:name:$attr{name}:'", \ + GOTO="mouse_end" + +LABEL="mouse_end" diff --git a/rules/Makefile.am b/rules/Makefile.am index ae950a9546..dfbda04684 100644 --- a/rules/Makefile.am +++ b/rules/Makefile.am @@ -12,6 +12,7 @@ dist_udevrules_DATA = \ 60-persistent-v4l.rules \ 61-accelerometer.rules \ 64-btrfs.rules \ + 70-mouse.rules \ 75-net-description.rules \ 75-probe_mtd.rules \ 75-tty-description.rules \ |