thinkpad: declare flatpaks (per-user [flatpak]) + one-time system→user migration #73

Merged
chad merged 1 commit from glen/thinkpad-flatpaks into main 2026-10-15 12:03:53 -04:00
Collaborator

Adopts think's flatpaks into the declarative profile, using the engine's new [flatpak] provider (chad/bubblebox#7). Merge after bubblebox#7 merges and v0.4.0 is tagged: the pin moves to bubblebox_version = "0.4.0", and 0.3.0 would reject the unknown [flatpak] table.

What's declared: 38 apps in the per-user installation, plus the flathub remote. That's everything in think's system installation except:

  • com.slack.Slack, which duplicates the bubblebox slack package. The bubblebox one wins, and the flatpak gets listed as unmanaged until you remove it.
  • The 14 GNOME apps that came from Fedora's OCI remote are declared from flathub under the same ids. Fedora's remote exists only in the system installation, and these were installed at the installer's first boot, not by the image, so a reinstall would otherwise lose them. I checked that every id resolves on flathub.

prune = false: anything installed that isn't declared is reported as "unmanaged" by plan/apply and the daily check, and never removed.

One-time migration: cjust flatpak-migrate-to-user runs bubblebox-apply, which installs all declared apps per-user while the system copies stay. It then uninstalls only the system copies that now also exist per-user (one polkit prompt), removes unused system runtimes, and lists any remaining system-only apps. App data in ~/.var/app is shared by both installations and isn't touched, so logins and settings carry over. The system fedora remote stays.

Already compatible: Vicinae's app paths and cjust zen-memlimit look in both the user and system flatpak export dirs.

Rollout on think

  1. Merge bubblebox#7, then tag v0.4.0.
  2. Merge this PR.
  3. git pull && cjust bubblebox-install (installs 0.4.0).
  4. cjust bubblebox-plan, which should show + remote flathub plus 38 installs.
  5. cjust flatpak-migrate-to-user. The first run downloads roughly the size of the current system installation (~20 GB on /var, 95 GB free) before the system copies are removed.
Adopts think's flatpaks into the declarative profile, using the engine's new `[flatpak]` provider (chad/bubblebox#7). **Merge after bubblebox#7 merges and `v0.4.0` is tagged**: the pin moves to `bubblebox_version = "0.4.0"`, and 0.3.0 would reject the unknown `[flatpak]` table. **What's declared:** 38 apps in the **per-user** installation, plus the flathub remote. That's everything in think's system installation except: - `com.slack.Slack`, which duplicates the bubblebox `slack` package. The bubblebox one wins, and the flatpak gets listed as unmanaged until you remove it. - The 14 GNOME apps that came from **Fedora's OCI remote** are declared from **flathub** under the same ids. Fedora's remote exists only in the system installation, and these were installed at the installer's first boot, not by the image, so a reinstall would otherwise lose them. I checked that every id resolves on flathub. `prune = false`: anything installed that isn't declared is reported as "unmanaged" by `plan`/`apply` and the daily check, and never removed. **One-time migration:** `cjust flatpak-migrate-to-user` runs `bubblebox-apply`, which installs all declared apps per-user while the system copies stay. It then uninstalls only the system copies that now also exist per-user (one polkit prompt), removes unused system runtimes, and lists any remaining system-only apps. App data in `~/.var/app` is shared by both installations and isn't touched, so logins and settings carry over. The system `fedora` remote stays. Already compatible: Vicinae's app paths and `cjust zen-memlimit` look in both the user and system flatpak export dirs. **Rollout on think** 1. Merge bubblebox#7, then tag `v0.4.0`. 2. Merge this PR. 3. `git pull && cjust bubblebox-install` (installs 0.4.0). 4. `cjust bubblebox-plan`, which should show `+ remote flathub` plus 38 installs. 5. `cjust flatpak-migrate-to-user`. The first run downloads roughly the size of the current system installation (~20 GB on /var, 95 GB free) before the system copies are removed.
thinkpad: declare flatpaks (per-user [flatpak]) + one-time system→user migration
All checks were successful
ci / check (pull_request) Successful in 17s
ci / thinkpad-image (pull_request) Successful in 4m49s
c459448be3
chad merged commit 6af879ba50 into main 2026-10-15 12:03:53 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
chad/cn!73
No description provided.