An unofficial userspace driver for HID++ Logitech devices
Go to file
2024-09-29 15:43:38 +03:00
.github Fix make-release github action 2023-05-04 01:13:04 -04:00
src Fix CVE-2024-45752 2024-09-27 20:43:01 -04:00
.editorconfig add .editorconfig to ease contribution by external devs 2022-01-05 12:53:55 +02:00
.gitignore Added mutex to devices to avoid cuncurrency issues 2019-09-13 11:21:26 -03:00
.gitmodules Change ipcgull submodule upstream url to http protocol 2023-05-04 01:07:36 +08:00
CMakeLists.txt Use NDEBUG for None build type 2023-07-12 14:08:59 -04:00
LICENSE Initial commit 2019-07-09 13:58:10 -04:00
logid.example.cfg support smartshift(0x2111) on mx anywhere3 2023-05-08 15:02:29 -04:00
README.md Improve README.md 2024-05-03 08:06:46 +02:00
TESTED.md Update TESTED.md 2024-03-04 13:17:30 +01:00

LogiOps

Build Status

This is an unofficial driver for Logitech mice and keyboard.

This is currently only compatible with HID++ >2.0 devices.

Dependencies

This project requires a C++20 compiler, cmake, libevdev, libudev, glib, and libconfig. For popular distributions, I've included commands below.

Arch Linux: sudo pacman -S base-devel cmake libevdev libconfig systemd-libs glib2

Debian/Ubuntu: sudo apt install build-essential cmake pkg-config libevdev-dev libudev-dev libconfig++-dev libglib2.0-dev

Fedora: sudo dnf install cmake libevdev-devel systemd-devel libconfig-devel gcc-c++ glib2-devel

Gentoo Linux: sudo emerge dev-libs/libconfig dev-libs/libevdev dev-libs/glib dev-util/cmake virtual/libudev

Solus: sudo eopkg install cmake libevdev-devel libconfig-devel libgudev-devel glib2-devel

openSUSE: sudo zypper install cmake libevdev-devel systemd-devel libconfig-devel gcc-c++ libconfig++-devel libudev-devel glib2-devel

How to build

To build this project, run:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

How to install

To install after building, run:

sudo make install

Finally, enable and start the daemon:

sudo systemctl enable --now logid

How to configure

Default location for the configuration file is /etc/logid.cfg, but another can be specified using the -c flag.

Refer to the wiki for details.

You may also refer to logid.example.cfg for an example.

How to uninstall

First, disable the daemon:

sudo systemctl disable --now logid

Then remove the few files that were installed:

sudo rm /usr/local/bin/logid
sudo rm /lib/systemd/system/logid.service
sudo rm /etc/logid.cfg

Development

The project may only run as root, but for development purposes, you may find it convenient to run as non-root on the user bus. You must compile with the CMake flag -DUSE_USER_BUS=ON to use the user bus.

Donate

This program is (and will always be) provided free of charge. If you would like to support the development of this project by donating, you can donate to my Ko-Fi below.

Buy Me a Coffee at ko-fi.com

I'm also looking for contributors to help in my project; feel free to submit a pull request or e-mail me if you would like to contribute.

Compatible Devices

For a list of tested devices, check TESTED.md

Credits

Logitech, Logi, and their logos are trademarks or registered trademarks of Logitech Europe S.A. and/or its affiliates in the United States and/or other countries. This software is an independent product that is not endorsed or created by Logitech.

Thanks to the following people for contributing to this repository.