feat(anime): set default source from Extensions tab

- Add default controls for installed sources and All sources
- Expose source metadata for extension rows
This commit is contained in:
2026-09-02 23:50:11 -07:00
parent 7bc9a07a52
commit 89479f7045
16 changed files with 137 additions and 118 deletions
+6 -4
View File
@@ -119,10 +119,12 @@ one bad APK will not hide the rest.
### Default source
The browser opens on the first installed source. To open on a different one,
pick it in the **Source** picker and press the star beside it; the choice is
written to `anime.defaultSource` and applies the next time a browser window or
the in-player modal opens. **All sources** can be the default too. A default
that is no longer installed falls back to the first source.
press **Set default** on its row in the Installed list; the row then carries a
**default** tag, and only one source can carry it. The choice is written to
`anime.defaultSource` and applies the next time a browser window or the
in-player modal opens. With more than one source installed, an **All sources**
row at the top of the list can be the default too. A default that is no longer
installed falls back to the first source.
## Searching every source at once
+1 -1
View File
@@ -1180,7 +1180,7 @@ Sources for the [anime browser](/anime-browser). SubMiner ships no extension rep
| `anime.extensionsDir` | `string` | `""` | Directory holding Aniyomi extension `.apk` files. Empty uses `<userData>/anime-extensions`. |
| `anime.repos` | `string[]` | `[]` | Extension repository index URLs. Any `https` URL ending in `.json` works; `index.min.json` is only the common name. |
| `anime.preferredQuality` | `string` | `""` | Preferred stream quality label, matched as a substring (for example `1080`). Empty keeps the source's own order. A Japanese-audio entry always outranks a higher-quality dub. |
| `anime.defaultSource` | `string` | `""` | Source the Anime Browser selects when it opens: a source id (`<package>:<source>`) or `all` for every installed source. Empty selects the first installed source. The star beside the Source picker writes this value. |
| `anime.defaultSource` | `string` | `""` | Source the Anime Browser selects when it opens: a source id (`<package>:<source>`) or `all` for every installed source. Empty selects the first installed source. **Set default** in the Extensions tab writes this value. |
| `anime.bridgeDir` | `string` | `""` | Directory holding an M-Extension-Server bundle (Java runtime plus server jar) to run instead of the downloaded copy. Empty checks the package-manager install first, then `<userData>/anime-bridge`. See [the bridge](anime-browser.md#the-bridge). |
Repositories added from the browser's Extensions tab are written back to `anime.repos`, so the list can also be kept in a dotfile. Changes apply the next time the anime browser opens.
+1 -1
View File
@@ -633,7 +633,7 @@
"extensionsDir": "", // Directory holding Aniyomi extension .apk files. Empty uses <userData>/anime-extensions.
"repos": [], // Extension repository index URLs (any https .json index, e.g. https://.../index.min.json). Empty by default; SubMiner ships no repositories.
"preferredQuality": "", // Preferred stream quality label, matched as a substring (for example: 1080). Empty uses the source order.
"defaultSource": "", // Source the Anime Browser selects when it opens: a source id (<package>:<source>) or "all" for every installed source. Empty selects the first installed source. The star beside the Source picker writes this value.
"defaultSource": "", // Source the Anime Browser selects when it opens: a source id (<package>:<source>) or "all" for every installed source. Empty selects the first installed source. "Set default" in the Extensions tab writes this value.
"bridgeDir": "" // Directory holding an M-Extension-Server bundle (java runtime plus server jar) to run instead of the copy SubMiner downloads. Empty checks the package-manager install (Arch: mangatan-extension-server), then <userData>/anime-bridge.
}, // Anime browser sources. SubMiner ships no extension repositories and bundles no sources;