Skip to content

feat: add Python Tkinter GUI configurator and documentation - #566

Open
xhuvom wants to merge 1 commit into
PixlOne:mainfrom
xhuvom:feature/gui-customizer
Open

xhuvom wants to merge 1 commit into
PixlOne:mainfrom
xhuvom:feature/gui-customizer

Conversation

@xhuvom

@xhuvom xhuvom commented Sep 12, 2026

Copy link
Copy Markdown

Summary

This pull request introduces a graphical user interface (GUI) configurator (logiops_gui.py) built with Python and Tkinter, along with comprehensive documentation (readme_gui.md) and updates to README.md.

The tool simplifies configuring Logitech mice and keyboards by eliminating the need to manually write /etc/logid.cfg or look up raw Linux input event keycodes.

Features

  • Device Auto-Detection: Automatically detects connected Logitech HID++ devices (e.g., MX Master 3S) by querying system logs and kernel sysfs power supplies.

  • Pointer & Scroll Settings: Interactive controls for DPI (200–4000), SmartShift (toggle, threshold, torque), and HiRes scrolling (invert, target).

  • Button & Gesture Remapping: Dedicated configuration tabs for Thumb (0xc3), Top (0xc4), Forward (0x53), and Back (0x56) buttons. Supports single-press and 4-way swipe gestures with
    preset common key combinations (Super, Print Screen, Media keys, Copy/Paste, etc.).

  • Side Thumbwheel Customization: Direct remapping of horizontal scroll wheels (e.g., volume control or media navigation) using correct interval: 1; syntax.

  • Live Health & Status: Real-time display of logid systemd service status, D-Bus connection monitoring, and battery level tracking via /sys/class/power_supply/.

  • Bidirectional Config Loading: Automatically parses existing /etc/logid.cfg files on startup to ensure previous user configurations persist across edits.

  • Configuration Preview & Export: Built-in diff preview with a one-click "Copy to Clipboard" button before saving and restarting the daemon.

  • Service Recovery Helper: Includes a "Fix 'double run'" utility to cleanly terminate conflicting/zombie logid instances and restart the daemon.

    Changes Included

    1. logiops_gui.py: The main standalone Tkinter GUI application.
    2. readme_gui.md: Detailed documentation covering setup, usage, terminology glossary, app launching shortcuts, and troubleshooting.
    3. README.md: Updated with a new "Graphical Configuration Tool (GUI)" section and notes on python3-tk optional dependencies.

    Testing Done

    • Tested on Ubuntu 20.04 LTS / 22.04 LTS with an MX Master 3S.
    • Verified /etc/logid.cfg generation, parsing persistence, service restarting, and side thumbwheel volume control.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant