Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds battery percentage and charging-status support for the NVIDIA SHIELD Controller (2017) family over USB and Bluetooth HID.
Uses the documented battery, charger, and board-info queries from the [Linux NVIDIA SHIELD driver](https://github.com/torvalds/linux/blob/master/drivers/hid/hid-nvidia-shield.c). No firmware or device settings are changed.
Integrates with HaloBattery’s existing tray icons, preferences, and notifications. The board serial identifies the same controller across USB and Bluetooth; when both connections respond, USB takes priority and only one icon appears. If charging status is unavailable, the percentage remains visible with an “unknown” label, and alerts wait for a confirmed state.
Validation
Tested NVIDIA Controller v01.04 on Windows 11:
All 623 automated tests pass, including coverage for invalid replies, timeouts, unknown charging status, multiple-controller identities, connection deduplication, and notification behavior.
Scope and limitations
Supports the 2017 controller family (
0955:7214). The older 2015 controller is outside this contribution’s scope.Low-battery alerts, full-charge detection, and multiple physical SHIELD controllers have automated coverage but have not been verified on hardware.
Related work
This does not close an existing issue. No existing SHIELD-specific issue or pull request was found.
Several open device-support PRs touch the same shared documentation and application registration files. Notable overlaps include #202 and #188, which also modify
providers/base.py, and #167, which concerns battery notifications.