A Linux-only daemon that exposes a DBus API for controlling Logitech devices. This base project provides structure and stubs only (no real HID++ or DPI logic yet). A GUI will be a separate DBus client later.
mkdir -p build
cd build
cmake ..
cmake --build .Targets:
logicontrol_core(library)logicontrold(executable)
Note: Requires
sdbus-c++available via CMake'sfind_package. On Debian/Ubuntu, installlibsdbus-c++-dev.
./build/logicontroldThis daemon acquires the user/session bus name com.logi.Control, registers object /com/logi/Control with interface com.logi.Control, and enters the DBus event loop.
This project includes a user service unit template at systemd/logicontrold.service.
Install it:
mkdir -p ~/.config/systemd/user
cp systemd/logicontrold.service ~/.config/systemd/user/logicontrold.service
# Edit ExecStart to point to your build path (e.g., /home/you/path/to/logi-control/build/logicontrold)
systemctl --user daemon-reload
systemctl --user enable --now logicontrold.serviceUse busctl --user:
busctl --user call com.logi.Control /com/logi/Control com.logi.Control ListDevices
busctl --user call com.logi.Control /com/logi/Control com.logi.Control GetDpi s "stub-device-1"
busctl --user call com.logi.Control /com/logi/Control com.logi.Control SetDpi su "stub-device-1" 1200Expected results (MVP):
ListDevices: returns 1-2 stub devices asa(ss)GetDpi: returns(false, 0)SetDpi: returns(false, "Not implemented")
- Linux-only. No GUI, no polkit, no packaging.
- No real HID++ commands or DPI logic yet (stubs with TODO).
- Future work will add device enumeration via hidraw/libudev and input remapping via libevdev/uinput.