fix(mime): text/plain falls through to Text Editor on live (#119)
All checks were successful
Check / eval (push) Successful in 4m5s
All checks were successful
Check / eval (push) Successful in 4m5s
A singleton default naming code.desktop left the live ISO with no text handler — GIO skips missing .desktop files and offers nothing. Prefer vscode when present, then org.gnome.TextEditor.desktop. Live also gains mpv (video defaults had the same hole; free via the template pin). checks.live-baseline-apps now requires every Default Applications key to resolve to a present .desktop on live (HM + system path) and on the default template install. Proved to fail on a vscode-only text/plain. Verified: V2 (live-baseline-apps green + prove-to-fail); V0 flake check.
This commit is contained in:
@@ -55,31 +55,6 @@ template source. Pass = Chromium launches after installation and HTTP/HTTPS
|
||||
mime defaults resolve to `chromium-browser.desktop` (and the intended live-ISO
|
||||
browser posture is explicit).
|
||||
|
||||
### 119. `text/plain` names vscode, which the live ISO does not ship
|
||||
|
||||
Found while shipping #103 (2026-07-14), deliberately not fixed there — same
|
||||
bug class as #94, one mime key over. `modules/home/mime.nix:48` assigns
|
||||
`text/plain = code.desktop`, and vscode ships only in the **template**, never
|
||||
on the live ISO. GIO silently skips an entry whose desktop file is absent, so
|
||||
opening a text file in the live session finds no handler at all — the exact
|
||||
shape of the no-default-browser bug, and now the only one left of its kind
|
||||
since #103 put chromium on the live medium.
|
||||
|
||||
Two ways it bites, and a fix should settle both: (1) the live session, which
|
||||
now ships `gnome-text-editor` (`org.gnome.TextEditor.desktop`) — the obvious
|
||||
live handler; (2) any installed machine where the user takes the template at
|
||||
its word and deletes the `vscode` line (opt-out = delete the line, per the
|
||||
option-surface convention), which silently breaks `text/plain` with no warning.
|
||||
|
||||
The general trap is worth fixing once rather than per-key: a mime default
|
||||
naming a package the profile does not carry is invisible until a user
|
||||
double-clicks a file. `checks.live-baseline-apps` now guards exactly this for
|
||||
HTTPS (asserts the named .desktop is present, not merely named) — the cheap
|
||||
version of this item is extending that assertion to every key in
|
||||
`defaultApplications`, which would have caught both #94 and this. Pass = no
|
||||
mime default names a desktop entry the profile lacks, on the live ISO and on
|
||||
a template install, and a guard fails on a regression.
|
||||
|
||||
### 95. Live ISO/install: Ghostty does not open
|
||||
|
||||
Reproduce from the launcher and a terminal, capture its stderr/journal, and
|
||||
|
||||
@@ -421,12 +421,11 @@ the **T14s** (webcam case).
|
||||
**LibreOffice** (Writer), **Text Editor**, **Amberol**, **Snapshot**.
|
||||
**Pass** = all five are *listed in the launcher* and each opens a window.
|
||||
Also: a `.html` file opens in Chromium (the HTTPS mime default now names
|
||||
a browser that is present — #94's exact bug). Firefox is deliberately
|
||||
absent; its absence is correct, not a miss.
|
||||
**Known-not-covered:** a `.txt` file has no handler on the live ISO —
|
||||
`text/plain` still names vscode, which the live medium never ships
|
||||
(BACKLOG #119). Text Editor opening from the launcher is the pass here;
|
||||
double-clicking a text file is #119's problem, so don't file it twice.
|
||||
a browser that is present — #94's exact bug), and a `.txt` file opens in
|
||||
**Text Editor** (`text/plain` falls through to
|
||||
`org.gnome.TextEditor.desktop` after #119; vscode remains preferred on
|
||||
template installs). Firefox is deliberately absent; its absence is
|
||||
correct, not a miss.
|
||||
|
||||
## AMD dev box only
|
||||
- [ ] **#118 smartd still runs where drives DO have SMART** (this commit) — the
|
||||
|
||||
@@ -19,6 +19,26 @@ Template:
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-15 — #119: mime defaults must name a present .desktop (this commit)
|
||||
- **Task:** BACKLOG #119 — `text/plain` named vscode, which the live ISO never
|
||||
ships (same GIO-skip trap as #94, one key over).
|
||||
- **Did:** `text/plain` is now an ordered fallback
|
||||
`code.desktop` → `org.gnome.TextEditor.desktop` (HM tries the next when the
|
||||
preferred is missing). Live profile gains `mpv` too — video mime defaults
|
||||
had the same hole and the package is free via the template pin. Extended
|
||||
`checks.live-baseline-apps` so every `[Default Applications]` key has at
|
||||
least one listed `.desktop` on **live** (HM path + system path for thunar)
|
||||
and on the **default template install**.
|
||||
- **Verified:** **V2** — check green; mimeapps.list renders
|
||||
`text/plain=code.desktop;org.gnome.TextEditor.desktop`; **proved to fail**
|
||||
when `text/plain` is a vscode-only singleton. V0 flake check green.
|
||||
- **Pending:** V3 launch of a `.txt` on the Acer is covered by the existing
|
||||
#103 HARDWARE-QUEUE entry (now expects Text Editor for text files). Opting
|
||||
out of *both* vscode and Text Editor still leaves no handler — that is the
|
||||
delete-the-line convention, not a silent live-ISO bug.
|
||||
- **Next suggestion:** #95 (Ghostty does not open) or #94 residual
|
||||
(test-install chromium launch).
|
||||
|
||||
## 2026-07-14 — #118: smartd self-gates; the doctor was right all along (this commit)
|
||||
- **Task:** BACKLOG #118 — Bernardo's live ISO showed a red Waybar health icon
|
||||
reporting smartd.
|
||||
|
||||
Reference in New Issue
Block a user