BudsLink — Linux app for AirPods, Sony, Samsung Galaxy, Nothing / CMF, Beats headset/earbuds
Posted by Spirited_Package9245@reddit | linux | View on Reddit | 46 comments
BudsLink
BudsLink is now available on Flathub.
It allows you to monitor battery levels and control various headset features such as:
- Noise Cancellation / Ambient Mode
- Touch controls
- Automatic power off
- Equalizer settings
- Device-specific features depending on compatibility
The app is based on my GNOME extension Bluetooth Battery Meter, but I decided to create a standalone application so users on other desktop environments can use the same functionality.
Currently Supported Brands
- AirPods / Beats headsets & earbuds See compatibility list
- Sony headsets & earbuds See compatibility list
- Samsung Galaxy Buds See compatibility list
- Nothing / CMF devices See compatibility list
Not every device has been fully tested yet, so feedback is highly appreciated. Community testing helps improve compatibility and expand the supported device list.
BudsLink can also run as a background service. When used together with BudsLink-Companion applets/widgets, the UI can automatically appear when a compatible device is connected.
BudsLink-Companion
Currently available for:
- KDE Plasma Widget
- Cinnamon Spices
- GNOME Extension
See relevant branch here
The default configuration works well, but I have not yet submitted the KDE Plasma and Cinnamon versions to their official stores/sites. I am primarily a GNOME user, and KDE/Cinnamon provide extensive customization options that are difficult for me to fully test every settings on my own.
If you use KDE Plasma or Cinnamon, feedback about compatibility, panel behavior, scaling, theming, or other integration issues would be very helpful and would help me prepare the extensions/widgets for official submission.
Feedback, bug reports, and device testing are all welcome.
Special thanks to the other open-source projects I referenced and learned from during development, all of which are mentioned in the credits section of the README documentation.
Next step is Sennheiser and Redmi if user are willing to test and/or provide btsnoop.
National_Increase_34@reddit
Is this vibe-coded?
redundant78@reddit
doubt it, the dev has been maintaining the Bluetooth Battery Meter gnome extension for a while and the post mentions referencing multiple open source projects for the different BT protocols. vibe coders don't usually build cross-brand bluetooth protocol implementations and ask for btsnoop logs lol
National_Increase_34@reddit
Yes, someone else mentioned this earlier asw, thanks :) Also the post details got updated later, after this comment.
Hande-H@reddit
Everything here is and it's never disclosed. I really don't see the use for all this slop, if I wanted to I could just ask Claude myself. I would actually be interested in checking out code made with real effort but when it's 99% one-shot AI slop I can't really be bothered wasting my time trying to read any of it.
Oh well, moving on.
ggppjj@reddit
The disclosure part is what gets me.
I feel weird about my use of AI recently, so I want to provide what I think is a valid and useful use-case, as my company's solo dev.
I've been (admittedly over)using Claude recently to drive a big push to integrate a bunch of tiny utilities I wrote to do specific tasks for my job that are fairly domain-specific into a big conglomerated single cross-platform app. I wrote each individual utility myself, and both the utilities and the library I wrote to perform the shared logic between all utilities were designed with this integration in mind down the road. As time went on and more and more utilities and apps and backend code was filled in by me, the task of bringing it all together just became too big and too much drudgery for me to be able to justify spending weeks on with my bosses.
I think that's a use that I personally am comfortable with, although I'm more than happy to hear others' thoughts on things because I feel like I could still be convinced either way. I've been making sure that I understand what it's doing and how, and I have been attentive in making sure it isn't about to wildly go off on a hallucination-heavy tangent that doesn't do what I told it to.
By my own estimation, and this is very much a me thing, but for me to have done this with my current workload and project timeline would realistically be a year or so's worth of fragmentary effort bouncing back to it whenever it doesn't seem like it would be a waste of time (in the eyes of my bosses) as compared to other things that my bosses want me to do first.
Sorry for the rambling train-of-consciousness dump.
Hande-H@reddit
That's between you and the company, if both are happy then it's nobody else's business. I'd be worried about my skills atrophying but that's just me.
It's a little different if you open source a project and expect people to find some value from that, especially if you didn't disclose it was made with an LLM. That's when I feel tricked because it just became worthless to me and I would have appreciated a heads up before wasting my time.
ggppjj@reddit
I started typing and ended up having more to write out than I expected, apologies again for the length of this ramble. Thanks for the reply, as well.
I feel that also, it is concerning. I intend to listen to the feeling and not just power through it, that's part of the "overusing" squick feeling that for the moment I'm sitting with. So far, my thoughts are that I should, as soon as possible, reach a good "AI freeze" point and go back to making new code myself once everything feels stable, actually test that perceived stability and move on.
My hope is that I've used the tool in a way that the tool is reasonably useful to use it, and in a way that isn't a net detriment to my experience on earth as a human.
When it comes to OSS stuff, yeah no that's gross. I feel similarly to how I do about seeing obviously GPT-written comments on those projects here: Allowing an LLM to put words in your mouth or represent you creatively is tantamount to intellectual suicide, or possibly closer to a weird form of self-initiated parasitism that fully takes over the host. I've seen it be best be discussed as "LLMs break the unwritten social expectation that it should take reasonably around the same amount of time to explain your thoughts as it does for someone else to read them".
I think that's the part that crosses the line for me, when someone throws the output of a program expressly designed to make something that looks good into the world without any amount of time spent understanding and ensuring the slop they have in front of them actually does anything beyond look impressive.
dswhite85@reddit
100% vibe slop
ConnerWithAnE_@reddit
Any piece of software these days is likely to have some form of AI involvement, the real question is just the robustness of the solution and the knowledge of the person behind it.
National_Increase_34@reddit
Yes, that's what I meant, and that's why I asked if this is vibe-coded instead of asking if this was made using AI. I have no problems with people using AI for development but I'd prefer to not run software that someone without enough coding knowledge made just by prompting Claude, because I'd have no confidence if it will continue working.
elmagio@reddit
At the very least, this dev has been actively maintaining several widely used standalone GNOME extensions for a while, one of them with a similar featureset to this new cross-DE app.
I won't claim to know whether the dev uses AI or to what extent but he certainly hasn't been a one-shot dev who's never seen again.
National_Increase_34@reddit
That's good to know at least!
FriendlyKillerCroc@reddit
That's exactly my stance with these new complicated looking projects that appear to only have one developer.
If an experienced dev made this in a fraction of the time usually required because of AI, great, that's a win for all of us. But if its someone that doesn't understand anything happening in the code, then the bugs are likely to go completely unfixed because they won't know how to fix them.
DreadStallion@reddit
Fully vibe coded ones are probably not gonna be maintained and most likely one shot wonder
jixbo@reddit
Why does it matter? Most hings are nowadays, just depends on the level of review/testing.
philosophical_lens@reddit
How does this compare to librepods?
elementrick@reddit
Came to report that it's working great with Samsung Galaxy Buds FE (both App & KDE Plasma plasmoid)
battler624@reddit
Any idea if huawei stuff could be supported in the future?
I'm absolutely enjoying the freeclip 2 buds.
TheVetoNator@reddit
Was anything used from the LibrePods project to implement AirPods support or did you reverse engineer the protocol yourself?
Spirited_Package9245@reddit (OP)
No. i didnt reverse engineer the packet. For Battery and anc i referred to Magiccore, and that was the only open source project that reverse engineered Airpods and I implemented it in my gnome extension. later conversation mode was implemented by referring to librepods docs. Note that my gnome extension has been supporting airpods for a while. When porting sony device i made a gjs script which was almost like an app, so that users could test it easily without installation and report back. That script was coverted into a flatpak app with some fine tuning of gui.
muffinstatewide32@reddit
is this going to replace your gnome extension?
smithincanton@reddit
Wonder if this would work on a Linux phone.
Spirited_Package9245@reddit (OP)
if you have linux phone, Try it out and let me know.
queenanaya22@reddit
Can I use my my oneplus nord buds.?
SoloAdventurer13@reddit
This look good - when can I yay it.
IdleSpikes@reddit
Merci application super sympa et qui m'ajoute même un peu plus d'options (Nothing) que l'application officielle (testé en Flatpack).
Ascles@reddit
What
Flashy_Pollution_996@reddit
Is vibe coded? 👉👈 uwu
Ok_One612@reddit
wen realme buds ?
Scanner771_The_2nd@reddit
Juts got my Nothing Buds working in KDE. Working great so far.
Thanks!
directheated@reddit
This might be asking a lot- my Airpods seamless transition between my Macbook Air and iPhone depending on which device I'm using. If I have them in my ear and play something on my PC running Fedora would this app auto sense that and switch audio to them?
friimaind@reddit
Installed and working perfectly with my AirPods Pro 3, great work thank you!
I'm on GNOME 50, I couldn't figure out how to install the BudsLink-Companion extension. I can't find it on https://extensions.gnome.org and I don't see any instructions on GitHub. Thanks
Odd_War853@reddit
The gnome extension is called Bluetooth Battery Meter if i understand his post correctly
friimaind@reddit
I installed it and it actually works perfectly https://imgur.com/a/bsRf9QZ, I can even set the various AirPods modes, fantastic!
elmagio@reddit
Probably just not on the official Gnome Extensions website yet. There's an install.sh script on the Github, should work.
In the meantime you can also use Bluetooth Battery Meter which is by the same dev and has some similar features.
interpretpunit@reddit
Unable to get KDE plasmoid installed. It keeps saying companion app not found even though it's installed already.
Dropped a 5 star review already though. Hope the project is actively maintained. Much needed!
Whitzedd@reddit
Bruhh, thank you so much for making this.
Works well on galaxy buds core.
elmagio@reddit
/u/Spirited_Package9245 out of curiosity could you say what the advantages are to using this + the GNOME companion extension vs just the Bluetooth Battery Meter extension?
mkMoSs@reddit
Any plans to support Google Pixel Buds (Pro / Pro 2) ?
Apprehensive_Cod8575@reddit
Adding soundcore would be amazing
ironj@reddit
I've a Huawei FreeClip... just in case you want to give a go at those... 😁
Kalphalus@reddit
I use CMF Buds sometimes (most the time I use wired), next time I do I’ll have to try this!
pppjurac@reddit
Nice!
looks at EQ and ... GHAAAAA... kill me
Anyways, kudos for effort, this is useful piece of software.
rafuru@reddit
dayum, it worked perfectly with my galaxy buds pro 2.
great job
Obnomus@reddit
I'lk definitely check this out.
FalconInteresting270@reddit
damn this looks clean 🔥 finally something proper for linux