[OneDev #30] peripherals: productize G HUB-replacement as autostart service #10

Open
opened 2026-05-24 04:46:36 +00:00 by joseph · 0 comments
Owner

Imported from OneDev issue #30 (id 35530)
Original project: internal-joseph
Original state: Open
Original submitterId: 5
Original submitDate: 2026-05-05T15:32:47.647+00:00
Original lastActivity: {'date': '2026-05-05T15:32:47.647+00:00', 'description': 'opened', 'userId': 5}

Original fields:

  • Type: New Feature
  • Priority: Normal
  • Assignees: None

Context

gopen --writes-file g915x_open_writes_frida.txt --no-stop-lghub --quiet + gdaemon is the working manual recipe (vendetta achieved 2026-05-05), but it's two terminals and manual launch.

For daily set-and-forget use, this should be a single autostart service.

Goal

peripherals/scripts/g915x_service.py (or .ps1) that:

  1. On boot: kills G HUB cleanly (Stop-Service lghub* + Stop-Process)
  2. Replays the activation handshake (currently 437 writes; minimal subset after issue #27)
  3. Opens the HID++ event listener
  4. Dispatches G-key events to Windows VKs via SendInput
  5. Re-arms automatically if the keyboard is unplugged + replugged

Implementation options

  • Task Scheduler entry at logon. Easiest. Visible in Task Manager.
  • Windows service via NSSM or Win32 service wrapper. More invasive but cleaner.
  • Standalone tray app with a manual launch via Espanso/AHK shortcut. Lowest-friction install.

Done when

  • Single command to install (e.g. g915x_service.py --install)
  • Survives reboot — keyboard works without manually starting anything
  • Survives keyboard unplug/replug — re-runs activation
  • Easy uninstall (g915x_service.py --uninstall)
  • G HUB completely gone from the system (uninstalled, services disabled)

Prereq

Issue #27 (trim Frida replay) makes the activation phase faster + more robust.
Issue #28 (crack CRC) is not a prereq — the replay works without composing new bindings.

Imported from OneDev issue #30 (id 35530) Original project: internal-joseph Original state: Open Original submitterId: 5 Original submitDate: 2026-05-05T15:32:47.647+00:00 Original lastActivity: {'date': '2026-05-05T15:32:47.647+00:00', 'description': 'opened', 'userId': 5} Original fields: - Type: New Feature - Priority: Normal - Assignees: None ## Context `gopen --writes-file g915x_open_writes_frida.txt --no-stop-lghub --quiet` + `gdaemon` is the working manual recipe (vendetta achieved 2026-05-05), but it's two terminals and manual launch. For daily set-and-forget use, this should be a single autostart service. ## Goal `peripherals/scripts/g915x_service.py` (or .ps1) that: 1. On boot: kills G HUB cleanly (`Stop-Service lghub*` + `Stop-Process`) 2. Replays the activation handshake (currently 437 writes; minimal subset after issue #27) 3. Opens the HID++ event listener 4. Dispatches G-key events to Windows VKs via SendInput 5. Re-arms automatically if the keyboard is unplugged + replugged ## Implementation options - **Task Scheduler entry** at logon. Easiest. Visible in Task Manager. - **Windows service** via NSSM or Win32 service wrapper. More invasive but cleaner. - **Standalone tray app** with a manual launch via Espanso/AHK shortcut. Lowest-friction install. ## Done when - [ ] Single command to install (e.g. `g915x_service.py --install`) - [ ] Survives reboot — keyboard works without manually starting anything - [ ] Survives keyboard unplug/replug — re-runs activation - [ ] Easy uninstall (`g915x_service.py --uninstall`) - [ ] G HUB completely gone from the system (uninstalled, services disabled) ## Prereq Issue #27 (trim Frida replay) makes the activation phase faster + more robust. Issue #28 (crack CRC) is *not* a prereq — the replay works without composing new bindings.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
joseph/internal-joseph#10
No description provided.