Skip to content

feat: improve linux/rust librepods experience#601

Draft
debarkak wants to merge 163 commits into
kavishdevar:linux/rustfrom
debarkak:linux-rust-enhancements
Draft

feat: improve linux/rust librepods experience#601
debarkak wants to merge 163 commits into
kavishdevar:linux/rustfrom
debarkak:linux-rust-enhancements

Conversation

@debarkak
Copy link
Copy Markdown

@debarkak debarkak commented May 18, 2026

this pr focuses on improving the new linux/rust app ui, overall airpods experience, and adding some new features/functionality, mainly tested using airpods 4 anc on fedora linux 44 kde (amd64).

a lot of this is based on issues/limitations i noticed while daily driving librepods for a while now, along with some followup improvements related to the new linux app rewrite (#241) and my previous scrollable ui fix pr (#586).

currently some parts of the ui still feel a bit cramped/incomplete compared to the experience on apple devices, especially stuff like battery indicators, disconnected states, listening mode controls, and visibility of sensitive information.

also noticed some weird behavior/issues while using the app daily, mainly around ear detection/playback handling and media controls on my setup, so this pr will also include fixes/improvements related to that wherever possible.

planned improvements/features for this pr:

  • redesign battery ui with proper airpods/case visuals instead of the tiny percentages
  • add estimated battery time remaining based on recent usage
  • improve disconnected device ui + add reconnect button
  • replace listening mode dropdown with icon/button controls
  • hide serial numbers/sensitive info by default
  • investigate/fix playback bugs when reinserting earbuds

will probably add more smaller improvements/features/fixes while working on this/testing.

might also work on some of the remaining incomplete/unimplemented things mentioned in #241 where possible.

henmalib and others added 30 commits November 13, 2025 07:51
feat(i18n): added ukrainian translation with extracting of some string to resources. Auto generation of locale config
* docs: add troubleshooting section for media controls not working

* always use white text for the battery percentage in the system tray icon which matches what other applications like Bluetooth battery indicators do in Plasma

* init librepods asset

* remove update script for librepods
dk why i added it in the first place
yay! finally some OEM fixed it
…ar#253)

This makes the app run without issues on OxygenOS/ColorOS16 without root.

* android(fix): add missing HEAD_GESTURES capability on app2

* android(fix): catch att initial read exceptions in toggle

* android(refactor): remove navcontroller from head gestures screen

* android(fix): do not crash when connected devices list is sent empty

had never seen this before, this was the first time airpods saying zero connected devices

* android(fix): do not crash if phone's MAC not available

also removed crossdevice code

* android: skip sdp hook check if setup skipped
…ar#269)

* Add Python type annotations wherever appropriate

* Might as well annotate this too
no idea where i got manufacturerid from
I haven't been able to figure out a workaround for pre-A13
hiding it, rather than removing it entirely
Without `https://`, URLs are treated as relative paths.
Added Italian localization strings for the app.
media: correct AirPods conversational awareness state handling

Fix incorrect detection of conversational awareness events. The previous
implementation treated all non-0x01 packets as "disabled", which caused
wrong behavior when the user manually enabled/disabled the feature or when
voice-end events were received.

Adds full decoding for packet types:
 - 0x01 → voice detected
 - 0x06/others → voice ended
 - 0x08 → feature disabled
 - 0x09 → feature enabled

Signed-off-by: ozan956 <ozandurgut.2001@hotmail.com>
…hProfile (kavishdevar#313)

this prevents android from trying to reconnect to audio itself after we disconnect. this is essentially the same as toggling the 'Media Audio' and 'Phone Calls' settings in the android settings
@debarkak debarkak changed the title feat: improve linux/rust app ui, controls, and airpods experience feat: improve linux/rust app ui, controls, and librepods experience May 18, 2026
@debarkak debarkak changed the title feat: improve linux/rust app ui, controls, and librepods experience feat: improve linux/rust librepods experience May 18, 2026
@debarkak
Copy link
Copy Markdown
Author

@debarkak
Copy link
Copy Markdown
Author

quick update: due to upcoming exams and study pressures, i won't be able to actively make changes to this PR, and most of my implementations will either delayed or skipped.

@debarkak
Copy link
Copy Markdown
Author

a5818ce
9f12f07
d254b55
image

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.