Commit Graph

1612 Commits

Author SHA1 Message Date
maxice8
208bb15149 tools/shared.c: Use portable realpath() instead of (#606)
canonicalize_file_name()

Fixes compilation on musl systems
2019-01-24 14:26:05 +01:00
Peter Hutterer
549a6c47b8 libratbag 0.9.904
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
v0.9.904
2019-01-24 13:38:26 +10:00
Đặng Đoàn Đức Trung
400451efe1 Change G102/203's symlink to G-Pro (#605)
* Change G102/203 symlink to G-Pro

* Fix the symbolic link breaking
2019-01-22 19:29:43 +01:00
Zachary
2ee88948f3 data: added Logitech G603 svg (#600)
* data: added Logitech G603 svg

* data: added Logitech G603 svg

* data: added Logitech G603 svg

* data: updated Logitech G603 svg

I fixed an issue with the right and left click buttons missing and the middle button being on the incorrect layer. I also removed the logo on the mouse as I was having some issues in Inkscape due to my unfamiliarity with the software. I figured properly configured buttons is good enough for the time being.
2019-01-12 14:06:14 +01:00
Jente Hidskes
ace60f76da data/gnome/logitech-g-pro-wireless: don't use Logitech LED logo
We don't want this for copyright reasons.
2019-01-10 08:52:18 +10:00
Daniele Laudani
451af331b9 Logitech G402 support (#602)
This brings initial support for the Logitech G402, as discussed in #471.
I used the G502 svg and modified it, without changing the graphics. The two mice are aesthetically similar.

* Added G402 device file
* Added G402 svg file
* Add G402 files to build

[bentiss] squashed the 3 patches as one
2019-01-08 16:16:20 +01:00
Peter Hutterer
b87a770970 data: add MX Anywhere 2S 2019-01-07 10:19:12 +01:00
Benjamin Tissoires
e59ef319b0 hidpp20: non-rgb leds: switch back to HW control once configured
As mentioned in the code:
We revert to HW control of the LEDs.
This effectively disable the capability of changing the DPI/profile
LEDs, but this allows to make them work with the internal DPI/profile
switches.

The net result is:
- DPI/profiles can't be controlled (but who wants this?)
- The logo can properly controlled

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2019-01-07 10:39:55 +10:00
Benjamin Tissoires
8a1487f6f4 hidpp20: use macros for key+modifiers
Since a0830a8aaa, we can re-add the simple
keybindings capabilities. It's time the HID++ 2.0 devices get this.

This used to be working with the KEY API, but this has been dropped in
favor of the macro one.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2019-01-02 15:57:36 +10:00
Justin Gottula
44d36d2bf0 tools: canonicalize path first in udev_device_from_path (#592)
* tools: canonicalize path first in udev_device_from_path

This fixes a problem in which running ratbag-command with the path to a
device node symlink (e.g. /dev/logi-g502 -> /dev/input/event4), such as
one created by a udev rule, would not work correctly, due to the code
failing to resolve the symlink prior to checking for the presence of the
"/dev/input/event" prefix.

This resulted in nonsensical error messages (shown below) and the
curious inability to run ratbag-command successfully with anything but
the actual raw path to the device node itself (e.g. /dev/input/event4
would work fine, but /dev/logi-g502 would not, despite both being valid
ways of getting to the same device node).

    Error: Can't open '/dev/logi-g502': Success
    Error: Device '/dev/logi-g502' is not supported

Note that this same problem also prevented the usage of autogenerated
symlinks by udev, i.e. '/dev/input/by-id/' and '/dev/input/by-path/'.

* Update tools/shared.c

Co-Authored-By: jgottula <justin@jgottula.com>
2018-12-24 19:04:04 +01:00
Peter Hutterer
635865efa5 hidpp20: if the button is remapped, use that
A non-zero value for the remapped field means the button is mapped to that
button.

"diverted" means to decouple it from normal HID reports and report it via
HID++ only. In our case here, we "map" it, which is different.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-12-21 15:53:10 +01:00
Peter Hutterer
38949013f7 circleci: check for missing .device or .svg files
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-12-20 06:55:33 +01:00
Peter Hutterer
e1879818b4 meson.build: add missing mx master.svg
Missing from cf9a3e48b7

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-12-20 06:55:33 +01:00
Peter Hutterer
9b2614109f tools: sync ratbagd.py from Piper - drop async commit
ratbagd now implements commit as normal always-successful call with a
potential Resync signal later if something failed on the device.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-12-20 10:34:19 +10:00
Haochen Tong
abe99fec6a data: add device file and SVG for MX Anywhere 2 2018-12-20 10:14:54 +10:00
Haochen Tong
21936db58b hidpp20: remove redundant rc check
Protocol error code is already handled in hidpp20_request_command.
2018-12-20 10:14:54 +10:00
Haochen Tong
74f01f3de4 hidpp-generic: add physical mapping for button 169
This is the "Gesture Button" found on MX Anywhere2.
2018-12-19 23:12:04 +01:00
Haochen Tong
53ba4d975d hidpp20: add 3 new feature constants
Add HIDPP_PAGE_RESET, HIDPP_PAGE_DEVICE_NAME, and
HIDPP_PAGE_WIRELESS_DEVICE_STATUS. These feature names are found in the
"features.xml" of an LogiOptions installation. Probably not very useful
for now.
2018-12-19 23:12:04 +01:00
Haochen Tong
97306ddd5a hidpp20: ignore error on single button when enumerating special keys
The MX Anywhere 2 mouse has a problematic special key (index=7). When
trying to get the reporting value of this key, the device returns an
"invalid argument" error. [1]

To avoid giving up all good information about other keys, ignore error
(and the cause) when enumerating special keys.

[1] https://github.com/libratbag/libratbag/issues/558#issuecomment-439732655
2018-12-19 23:12:04 +01:00
Peter Hutterer
16e052d846 tools: print a nice error when we don't have the required capabilities
Fixes #583

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-12-19 10:15:09 +01:00
Peter Hutterer
1586913fc7 tools: don't allow setting macros where not supported
Fixes #585

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-12-19 10:15:09 +01:00
Peter Hutterer
cf9a3e48b7 gnome: symlink the mx master to our existing mx master 2 SVG
Those two devices look identical

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-12-19 09:21:36 +01:00
Peter Hutterer
ec835e2e82 data: rename the MX master svg to drop the underscore
More consistent with the rest of the files

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-12-19 09:21:36 +01:00
Peter Hutterer
b86211204c tools: make ratbagctl bold in the man page
And a double-space to single-space change snuck in as well

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-12-19 11:51:52 +10:00
Lukas Werling
1d6995be72 Add Logitech MX Master 2S 2018-12-18 16:15:28 +10:00
Aleksandar Trifunovic
536576fe8b meson: conditional check to avoid use of depricated features after Meson v0.48.0 2018-12-17 18:04:37 +00:00
Peter Hutterer
b514f49b08 tools: sync ratbagd from Piper
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-12-13 11:58:49 +10:00
Aleksandar Trifunovic
46a466ffe1 Fix Logitech G Pro commit 2018-12-13 08:23:30 +10:00
Aleksandar Trifunovic
15f1667fa4 Add Logitech G Pro Wireless 2018-12-13 08:23:30 +10:00
Peter Hutterer
284c13b2fe ratbagd: update all properties before sending out Resync
Fixes #528

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-12-11 11:09:14 +10:00
Peter Hutterer
e9bb4f98ae ratbagd: make Commit() truly asynchronous
Schedule the actual operation as a callback to handle at the end of the event
loop and return success. The Resync signal will handle the rest.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-12-11 11:08:56 +10:00
Peter Hutterer
45b8d792cc meson.build: add the new device files to meson.build
A few of the device files didn't get installed, let's add them to the list.
This reshuffles the list a bit because the easiest way to make sure all files
are included is to run git ls-files, so let's stick to that.

Fixes #552

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-12-11 11:08:11 +10:00
Peter Hutterer
b93dfcfda4 data: add helper functions for checking list contents
Easier to print the lists instead of just failing

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-12-11 11:08:11 +10:00
Peter Hutterer
3ffdc8daa0 Revert "Add Logitech G Pro wired configuration (#555)"
This wasn't added to the meson.build file so the test didn't run on it. And
the test fails. Issues found include:

- DPIRange and DPIList must not be in the Device section
- Only one of those two, not both
- The svg file was in the 'default' theme rather than in gnome

This needs to be fixed first, not sure how this would've worked at all.

This reverts commit 2371960a1d.
2018-12-04 16:34:02 +10:00
Peter Hutterer
e38bc7a760 ratbagd: set up a simple exit-on-idle
ratbagd is not something that needs stay around forever just because we
configured a mouse once. We have DBus activation and we don't store anything
anyway, so we might as well exit after a period of inactivity (20 min).

There's a slight race condition where if something comes in at exactly the
20min mark, we may shut down anyway and the messages get lost. This is too
narrow to worry about.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-11-28 09:33:16 +01:00
Peter Hutterer
2dca516afa data: check for missing buttons
The Logitech G502 had a wrong button ID so it doesn't show up. We have a
correctly named leader and path though so let's add that to the checks.

https://github.com/libratbag/piper/issues/240

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-11-28 09:18:50 +01:00
Peter Hutterer
b489ac871d data: fix the Logitech G502 button 10 label
Fixes https://github.com/libratbag/piper/issues/240

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-11-28 09:18:50 +01:00
Peter Hutterer
50fb898138 roccat: set the dpi list
Turns out this driver never got updated for the 'new' DPI list provided by
libratbag and thus broke with bacdab2596 when we
enforced that DPI list.

Set a fixed DPI list based on the hardcoded values we use elsewhere in this
driver.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-11-28 09:08:24 +01:00
Peter Hutterer
c676fcefb1 README: minor improvements (#565)
Notable: parts of the instructions have been punted to the wiki now where it's
faster to edit and be verbose about the specific instructions.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-11-27 10:55:24 +10:00
Peter Hutterer
bb4dd2aae0 data: fix Logitech g600 button 6/7 assignment (#564)
Fixes #550

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-11-27 08:03:51 +10:00
Benjamin Tissoires
9b11340e91 Revert "circle CI: switch to ubuntu 18.10"
This reverts commit 874d7eccb8.

Looks like 18.10 fails at every pipeline build, so better
punting this for later.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2018-11-26 09:38:11 +01:00
Peter Hutterer
3cd5a1f986 hidpp20: if a command returns with error, return a neg errno
I'm pretty sure all callers rely on this command to return either 0 or a
negative errno. There's a quirky occasion where if we get a HID error (a
positive number) during hidpp20_special_keys_buttons_get_reporting, that
number eventually ends up as the 'num_controls' value in
hidpp20_special_key_mouse_get_controls().

Since the only time we care about HID++ errors is during
hidpp20_root_get_protocol_version, let's just always return -EPROTO on HID++
errors.

Fixes #558

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-11-26 09:27:35 +01:00
Peter Hutterer
874d7eccb8 circle CI: switch to ubuntu 18.10
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-11-26 09:25:08 +01:00
Erol Gorancic
44c4b901e2 Steelseries Rival 600 Support.
- New svg and device file. Updated meson.build.
- New device version (version 3).
- Refactored led cycle to be general for v2 and v3.
- New defines for v3.
2018-11-26 01:27:17 +00:00
mike391
2371960a1d Add Logitech G Pro wired configuration (#555) 2018-11-26 11:25:17 +10:00
Mateusz Maćkowski
874aa8e63e Add support for Logitech G502 HERO (#559)
* Add support for Logitech G502 HERO
2018-11-26 11:24:41 +10:00
Peter Hutterer
1225f421c0 circle CI: switch fedora latest to fedora 28
Some change in F29 breaks the CI runs, so lets switch back to what we had
before so we can merge patches.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-11-26 11:17:25 +10:00
Peter Hutterer
5f0f5d2843 driver-hidpp10: force the single profile to be active
If we can successfully read a profile but hidpp10_get_current_profile() fails
we end up with one profile, but not set to active. Fix this by always forcing
the single profile to be active.

Fixes #526
2018-11-26 11:11:42 +10:00
Peter Hutterer
1d464767e1 tools: fix error code names in ratbagd.py documentation 2018-09-27 09:44:05 +10:00
Peter Hutterer
9551dddbb8 tools: handle NULL svgs in ratbag-command
Showed up in #526
https://github.com/libratbag/libratbag/issues/526#issuecomment-420016451
2018-09-27 09:39:44 +10:00