| 1 | # Changelog |
| 2 | |
| 3 | ## 0.1.6 (2026-11-02) |
| 4 | |
| 5 | The Android app can keep itself up to date, if you let it. |
| 6 | |
| 7 | - The Android app can update itself. Switch on **Check for updates** on its App page, and once a |
| 8 | day it asks GitHub for budctl's latest release and offers it, with its notes. **Check now** |
| 9 | asks right away. **Update** downloads the APK, checks its SHA-256, and hands it to Android's |
| 10 | installer. The check is off until you switch it on, sends nothing about you or your buds, and |
| 11 | is the only thing in budctl that goes online; for it, the app now has the internet permission |
| 12 | and may ask to install apps. |
| 13 | |
| 14 | ## 0.1.5 (2026-11-02) |
| 15 | |
| 16 | Bass boost works now: the buds hear which band each level is for. |
| 17 | |
| 18 | - Bass boost on the T310 has three bands: low, medium and high frequencies. `budctl bass |
| 19 | low|medium|high <level>` sets each one, and the desktop and Android apps have a slider per band |
| 20 | under Bass boost. The buds acknowledged the old single bass level but ignored it. |
| 21 | |
| 22 | ## 0.1.4 (2026-11-01) |
| 23 | |
| 24 | budctl comes to Android, and gets an icon. |
| 25 | |
| 26 | - An Android app: the desktop app's pages and look on a phone (Android 12 or newer), with the same |
| 27 | Rust library inside, colors from your wallpaper, and no internet permission. Install `budctl.apk` |
| 28 | from this release. It is signed with budctl's own key; the certificate's SHA-256 fingerprint is |
| 29 | `45:6F:9B:93:AA:40:1D:57:AA:6C:75:0D:FF:13:FA:82:5A:7B:28:B6:3D:D0:40:99:80:6F:A9:7C:14:75:23:12`. |
| 30 | - budctl has an icon: the LED battery ring around a dot-matrix "b". The release archives carry it, |
| 31 | and `install.sh` and the PKGBUILD install it for the launcher entry. |
| 32 | - With `--debug`, `budctl-gui` also shows each command, connect and failure between the frames. |
| 33 | |
| 34 | ## 0.1.3 (2026-11-01) |
| 35 | |
| 36 | The desktop app moves, the Nothing way: short, eased out, fading rather than sliding. |
| 37 | |
| 38 | - Hovers, the chosen segment, the keyboard cursor and the current preset's circle fade instead |
| 39 | of snapping. Switches stretch from the knob into the fill as they turn. |
| 40 | - Pages fade in when opened, and when the buds are first read; dialogs fade in and out, as do the |
| 41 | error above a page and the bands of a custom preset. |
| 42 | - The battery rings light their dots one after the other, like the Glyph lights, when they first |
| 43 | show and when a level changes. |
| 44 | - While the app looks for the buds, a row of dots scans and the sidebar's light blinks; a light |
| 45 | blinks beside Stop while the buds ring. |
| 46 | - Nothing moves once a change has settled, so an idle window uses no CPU. `"gui": {"motion": |
| 47 | false}` in the config turns the animations off. |
| 48 | |
| 49 | ## 0.1.2 (2026-10-29) |
| 50 | |
| 51 | A new look for the desktop app, after Nothing OS in Material You colors, and a window that no |
| 52 | longer lags. |
| 53 | |
| 54 | - `budctl-gui` has a new look, after Nothing OS in Material You colors, like the owner's Aurora |
| 55 | shell: dot-matrix page names and battery figures (Doto), LED battery rings, dotted sliders for |
| 56 | the bass level and the EQ bands (drag, or the mouse wheel), pill switches, tracks and chips, |
| 57 | Space Grotesk and Space Mono text. The fonts are built in (SIL OFL 1.1, `OFL-fonts.txt` in the |
| 58 | release archive). |
| 59 | - The palette file takes Aurora's Material 3 keys (`primary`, `tertiary`, `surfaceLow`, |
| 60 | `outline`…), so `~/.cache/matugen/aurora.json` works as it is. `bg` and `fg` are still read; |
| 61 | `surface` and `secondary` are no longer used. |
| 62 | - `budctl-gui` no longer lags. It repainted most of the window many times over for each hover, |
| 63 | click or scroll step; now it repaints only what changed, and a scroll paints each card once. |
| 64 | On the Overview, a hover went from about 25 ms of drawing to 2, a scroll step from about 50 |
| 65 | to at most 12, and the list of keys from 35 to almost nothing. |
| 66 | - The keys that need Shift work in `budctl-gui`: `?` (the list of keys), `G`, `J`, `K` and `gT`. |
| 67 | The window used to see them without Shift (`/`, `g`, `j`, `k`, `gt`). |
| 68 | - Built from source, debug builds (`cargo run`) optimize the dependencies, so the desktop app |
| 69 | runs smoothly there too. |
| 70 | |
| 71 | ## 0.1.1 (2026-10-28) |
| 72 | |
| 73 | The first release, with builds for x86_64 and aarch64 Linux and an install script. |
| 74 | |
| 75 | Supported buds: realme Buds T310. |
| 76 | |
| 77 | - `budctl`, the command line: `list`, `status`, noise control and its levels, game mode, EQ |
| 78 | presets and custom EQ presets (create, edit, rename, delete), switches (bass boost, 3D sound, |
| 79 | wind, dual connection), bass level, find (ring the buds), touch controls, the hold cycle, and |
| 80 | the devices dual connection keeps. `--json` for scripts and status bars, `--debug` for hex |
| 81 | dumps. |
| 82 | - `budctl-gui`, the desktop app (Wayland): the same features on five pages, mouse first with |
| 83 | vim-like keys on top, colors from a matugen palette. |
| 84 | - `~/.config/budctl/config.json`: a default device, and the desktop app's idle time and start |
| 85 | page. Created with the defaults when missing. |
| 86 | - The desktop app writes its built-in colors to `~/.config/budctl/theme.json` when there is no |
| 87 | such file, and logs errors and session events to `~/.local/state/budctl/gui.log`. |