- Python 71.4%
- Shell 28.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
Build / Upstream release with Macchiato (push) Successful in 6m49s
Cropped to the icon's width at full height, so the icon keeps its size in the title bar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
| .forgejo/workflows | ||
| macchiato | ||
| scripts | ||
| .gitattributes | ||
| .gitignore | ||
| README.md | ||
SmartTube Macchiato
SmartTube (stable flavour) with a Catppuccin Macchiato color scheme, rebuilt automatically from every upstream release and delivered through SmartTube's own in-app updater. The colours match the cleanyourtv launcher: base background, mantle side bar, surface0 cards, peach focus, red progress bars, and the SmartTube logo recoloured to match.
This repository holds no SmartTube source. It holds the changes and the CI that applies them:
| Path | What |
|---|---|
macchiato/overlay/ |
New files copied over the upstream checkout: colours, styles, the scheme's name |
macchiato/patches/ |
Edits to upstream files: the scheme entry in MainUIData.initColorSchemes(), the German short date ("Di 27.10") in DateTimeView |
scripts/build.sh |
Clone an upstream tag, apply the above, set version and update URL, signed build |
scripts/release.py |
Decide what to build, publish the release, write the updater manifest |
.forgejo/workflows/build.yml |
Every 6 hours, on changes to macchiato/ or scripts/, or by hand |
How updates work
- The workflow reads upstream's
smarttube_stable2.jsonand takes its newest version, e.g.32.68(versionCode 2458). It builds the upstream git tag of the same name, nevermaster. - Our revision
Ris the number of commits that touchedmacchiato/. The build gets versionCodeV*1000 + Rand versionName32.68-mR, so a new upstream release and a theme change both produce a higher versionCode. - If the release
v32.68-mRalready exists, the job stops. Otherwise it builds, creates that release withsmarttube_stable_arm64-v8a.apkandsmarttube_stable_armeabi-v7a.apk, then replacessmarttube_stable2.jsonon the releaselatest. - The app checks
https://git.mgutzeit.de/mgutzeit/smarttube-macchiato/releases/download/latest/smarttube_stable2.jsonand offers the update with upstream's changelog.
If a patch no longer applies to a new upstream release, the job fails and nothing is published; the TV stays on the last build. Fix the patch, and the next run builds.
google-services.json is removed before the build, so crash reports from this build do not go to
upstream's Firebase project.
Changing the theme
Edit macchiato/overlay/smarttubetv/src/main/res/values/macchiato.xml and push. The commit raises R,
and the TV gets the update on its next check. To rebuild for a change outside macchiato/ (e.g. a
build script fix that changes the APK), touch something in macchiato/ as well.
To regenerate the patch against a new upstream tag: apply the edit in a checkout of the tag and
git diff > macchiato/patches/0001-macchiato-color-scheme.patch. MainUIData.java uses CRLF line
endings; .gitattributes keeps them in the patch.
Signing
The APKs are signed with this fork's own key, so Android will not install them over the official
SmartTube (and the other way round). Secrets in the repository settings:
KEYSTORE_BASE64, KEYSTORE_PASSWORD, KEY_ALIAS, KEY_PASSWORD; optional RELEASE_TOKEN.
Keep an offline copy of the keystore: without it, the next build cannot update the installed app.
First install
- In the official SmartTube: Settings > Backup/Restore > Backup app data. The backup is written to
/sdcard/Android/media/org.smarttube.stable/data/. Copy that folder off the TV: Android deletes it together with the app. - Uninstall the official SmartTube (
org.smarttube.stable). - Install the APK for the TV's ABI (
adb shell getprop ro.product.cpu.abilist, first entry) from the newestv…release. The SHIELD has a 32-bit userspace:smarttube_stable_armeabi-v7a.apk. - Start the new app once, then close it. Its first start writes its empty settings into the backup folder.
- Copy the saved
data/folder back to/sdcard/Android/media/org.smarttube.stable/. - Settings > Backup/Restore > Restore >
org.smarttube.stable. The app restarts. - Settings > User interface > Color scheme > Catppuccin Macchiato.