{"id":43082903,"url":"https://github.com/aarol/headset-battery-indicator","last_synced_at":"2026-04-06T15:01:44.835Z","repository":{"id":229706479,"uuid":"777428039","full_name":"aarol/headset-battery-indicator","owner":"aarol","description":"Adds an icon to the Windows task bar displaying the battery level of connected wireless headphones","archived":false,"fork":false,"pushed_at":"2026-03-29T14:09:02.000Z","size":1845,"stargazers_count":65,"open_issues_count":16,"forks_count":16,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-29T17:30:09.220Z","etag":null,"topics":["headset-control","hid","hyperx","logitech-g","rust","steelseries-arctis","toolbar-icon","windows"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aarol.png","metadata":{"files":{"readme":"README.md","changelog":"changelog/v3.3.0.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-03-25T20:43:57.000Z","updated_at":"2026-03-29T14:09:06.000Z","dependencies_parsed_at":"2026-01-07T09:06:02.954Z","dependency_job_id":null,"html_url":"https://github.com/aarol/headset-battery-indicator","commit_stats":null,"previous_names":["aarol/arctis-battery-indicator","aarol/headset-battery-indicator"],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/aarol/headset-battery-indicator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarol%2Fheadset-battery-indicator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarol%2Fheadset-battery-indicator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarol%2Fheadset-battery-indicator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarol%2Fheadset-battery-indicator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aarol","download_url":"https://codeload.github.com/aarol/headset-battery-indicator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarol%2Fheadset-battery-indicator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31477013,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T14:34:32.243Z","status":"ssl_error","status_checked_at":"2026-04-06T14:34:31.723Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["headset-control","hid","hyperx","logitech-g","rust","steelseries-arctis","toolbar-icon","windows"],"created_at":"2026-01-31T15:03:45.803Z","updated_at":"2026-04-06T15:01:44.829Z","avatar_url":"https://github.com/aarol.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Headset Battery Indicator\n\nAdds a small icon to the Windows task bar, displaying the battery level of most* connected wireless headphones.\n\n![Screenshot of indicator on Windows task bar](docs/icon-screenshot.png)\n\n## Features\n\n* Works on Windows 10+\n* Built using Rust, with low resource usage (~2MB RAM)\n* Supports most non-bluetooth headsets (SteelSeries, Logitech, Corsair, HyperX)\n  * See all [supported headsets here](https://github.com/Sapd/HeadsetControl?tab=readme-ov-file#supported-headsets).\n  \n    \u003e Since headset support is done by reverse-engineering the USB HID protocol, not every headset is supported yet, and some headsets (notably Arctis Wireless 1) may not work even though they are listed as supported.\n\n* Shows a little green dot to indicate charging\n\n  ![Charging icon](docs/icon-charging.png)\n\n* Shows notifications on low battery level or when finished charging (optional)\n\nHeadset Battery Indicator depends on [HeadsetControl](https://github.com/Sapd/HeadsetControl), which is licensed under GPL v3.\n\n## Installation\n\n* Download the [latest release](https://github.com/aarol/headset-battery-indicator/releases/latest) and run the installer\n\n\u003e Running the installer may result in a Windows defender SmartScreen warning. This happens to all executables that don't have a large enough install count. There's no way around it other than paying hundreds of dollars every year for a signed certificate from Microsoft :(\n\u003e\n\u003eAdditionally, sometimes Windows Defender's ML-based antivirus falsely detects the program as a virus, most commonly `Wacatac.b!ml` (the \"ml\" at the end signifies machine learning).\n\n## Security\n\nThe code that is in this repository is the code that is in the executable. There is a [Github Action](https://github.com/aarol/headset-battery-indicator/actions) that builds the code from source and creates the release in the [releases page](https://github.com/aarol/headset-battery-indicator/releases).\n\nThe GitHub release is marked as immutable, so once the executable is built by the Actions workflow, it cannot be modified by me or anyone else. This way, it is guaranteed that the code you're running is the same code that is in this repository.\n\n## Troubleshooting\n\nIf you're experiencing crashes or other issues, you can try running the `headset-battery-indicator-debug.exe` located at `%localAppData%\\Programs\\HeadsetBatteryIndicator` or look at the log file located in the same folder.\n\n### Why does it only show 100%, 75%, 50%, 25% or 0%?\n\nThis is limitation of the headsets themselves, as some devices only expose 5 possible battery states.\n\n### My headset is connected, but it still shows \"No headphone adapter found\"\n\nYour headset might be unsupported due to being a new model. See [Adding a new headset](#adding-a-new-headset)\n\n## Development\n\nGit, Rust and Cargo need to be installed.\n\nAdditionally, this project depends on [hidapi](https://github.com/libusb/hidapi) and [HeadsetControl](https://github.com/Sapd/HeadsetControl) which are stored as Git submodules in the [vendor](./vendor/) directory. Those C/C++ projects are built in [build.rs](./build.rs) using the `cc` crate.\n \nThe MSVC compiler is also required. Install Visual Studio 2019 or later with \"Desktop development with C++\",\"Windows SDK\" and \"MSVC .. C++ x64/x86 build tools\" workloads.\n\nTo get started with developing the project, first clone this repository:\n\n```sh\ngit clone https://github.com/aarol/headset-battery-indicator --recursive\n```\n\nRemember to use `--recursive` to clone the submodules as well.\n\nThen, from the `headset-battery-indicator` folder, you can:\n\n* Run the application in release mode: `cargo run --release`\n\n* Run the application in debug mode: `cargo run`\n\n* Debug the application by pressing `F5` in VS Code with the Rust Analyzer and CodeLLDB extensions installed.\n\n* Build the installer: install [Inno Setup Compiler](https://jrsoftware.org/isinfo.php), open [installer.iss](installer.iss) and click \"Compile\".\n\n## Translations\n\nThere are translations for the following languages:\n\n* English\n* Finnish\n* Italian\n* German\n* Portuguese\n\nTranslations can be added to the [lang.rs](./src/lang.rs) file.\n\n## Adding a new headset\n\nHeadset Battery Indicator depends on [HeadsetControl](https://github.com/Sapd/HeadsetControl) for supporting many kinds of headset models. If the headset you're using isn't currently supported, you can either wait until someone else adds support for it, or try adding it yourself.\n\nReading the [HeadsetControl wiki](https://github.com/Sapd/HeadsetControl/wiki/Development-1-%E2%80%90-Adding-a-device) is the best resource on this.\n\nI have a post on my website going a bit into reverse-engineering the headset APIs as well: \u003chttps://aarol.dev/posts/arctis-hid\u003e\n\n### Arctis headphone firmware update\n\nIn early 2026, many SteelSeries Arctis headphones received a new firmware update, adding more accurate battery level reporting, but also changing the HID product ID, leading to HeadsetControl (and thus this program) not recognizing the headset.\n\nLuckily, the fix is quite simple. The new product ID simply needs to be reported to the maintainers.\n\nHere's how you can find the product ID:\n\n1. Open \"Device Manager\" on Windows\n2. Find your headset in the list and open \"**properties**\"\n3. In the Details tab, select the \"device instance path\" property. It will contain the vendor ID (VID) and product ID (PID).\n\n\u003cdetails\u003e\u003csummary\u003eReference screenshot\u003c/summary\u003e\n \u003cimg width=\"400\" height=\"455\" alt=\"image\" src=\"https://github.com/user-attachments/assets/47a21657-cc0f-4ed1-bc8c-7d8e8ece8827\" /\u003e\n\u003c/details\u003e\n\nOnce you have the vID and pID, you can file an issue in the repository or in [HeadsetControl](https://github.com/Sapd/HeadsetControl), or file a [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) if you're more technically savvy!\n\n### License\n\nThis project is licensed under GNU GPL v3.\n\nYou’re free to use, modify, and redistribute it, as long as your version is also licensed under GPL v3, and you include the source code and license when you share it.\nSee the [LICENSE](./LICENSE) file for full terms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faarol%2Fheadset-battery-indicator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faarol%2Fheadset-battery-indicator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faarol%2Fheadset-battery-indicator/lists"}