aboutsummaryrefslogtreecommitdiff
path: root/todo.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-25 15:30:53 -0400
committerCraig Jennings <c@cjennings.net>2026-06-25 15:30:53 -0400
commit3c72453f50673f28a18ef3a072335e10ef742d34 (patch)
tree61961c7cd57ca9fa85014f3ca0d279e9dd63d7af /todo.org
parent2bdd247a23d74708ad6fec0f7ac94c6dda8c4545 (diff)
downloaddotemacs-3c72453f50673f28a18ef3a072335e10ef742d34.tar.gz
dotemacs-3c72453f50673f28a18ef3a072335e10ef742d34.zip
chore(todo): close dashboard-theming task (heading icons + items themeable), cancel first-f12 (not reproducible)
Diffstat (limited to 'todo.org')
-rw-r--r--todo.org9
1 files changed, 5 insertions, 4 deletions
diff --git a/todo.org b/todo.org
index 56731f30a..25ded2c0f 100644
--- a/todo.org
+++ b/todo.org
@@ -448,8 +448,8 @@ Break the org-agenda-* plus scheduling / deadline / calendar / clocking / filter
:END:
Package faces model =inherit= explicitly, but UI faces currently expose only fg/bg/style fields in the table and generated theme output. Before implementing UI-face inheritance, write and review a small spec that defines: which UI faces get an inherit selector, how own defaults from =emacs-default-faces.json= appear versus effective inherited values, how export/import stores cleared vs inherited vs explicit values, how preview resolution follows UI inherit chains, and what browser gates prove the behavior. This touches the UI model, generated defaults, export format, preview rendering, and reset semantics, so it should not be slipped in as a refactor.
-*** DOING [#B] Dashboard theming broken: font-lock strips faces; items + icons :bug:
-Investigated 2026-06-16. Three independent causes make the live dashboard render banner, headings, and items in the default face, with no file/section icons. Diagnosis grounded in live daemon inspection (face props, overlays, font-lock state).
+*** 2026-06-25 Thu @ 15:29:51 -0400 Dashboard theming fixed: font-lock, file + heading icons, items themeable
+All three causes resolved. Cause A (font-lock stripping faces) fixed 2026-06-16 (202cf430). Cause C: file icons fixed 2026-06-16 (1c97cba7), and section-heading icons now enabled too (=dashboard-set-heading-icons t=, 2026-06-25). Cause B (item color) unblocked — theme-studio now exposes =dashboard-items-face= (=face_data.py=) so the items are colored from the theme, not a hardcoded hex; setting that color is the studio's job now. Original diagnosis (2026-06-16, live daemon inspection) kept below.
**** Cause A — banner + section headings render default ("Banner Text not gold")
=global-font-lock-mode= (enabled at startup, =early-init.el:311=) fontifies the =*dashboard*= buffer. Dashboard applies the banner title (=dashboard-banner-logo-title=) and section headings (=dashboard-heading=) via the =face= TEXT PROPERTY. font-lock owns the =face= property and strips manually-applied ones it didn't set via keywords, so those faces get cleared on render (every line carries =fontified t=, the jit-lock fingerprint). The theme is fine: =dashboard-banner-logo-title= computes to #dab53d gold and =dashboard-heading= to #67809c — they're stripped at render, not missing. This is a regression of the 2026-05-22 fix "Dashboard navigator icons and section titles uncolored" (7496), which worked before font-lock ran in this buffer.
@@ -607,8 +607,9 @@ vNext for the face/font diagnostic tool: interactivity — "send this face to th
The package-faces optgroup (below the @code/@ui editor entries) now lists apps alphabetically by display label. Root cause: =buildViewSel= iterated =for(const app in APPS)=, and =generate.py= builds APPS as bespoke apps first then inventory apps, so the combined list wasn't alphabetical. Fix is localized to the view-list build per the plan: added a pure =appViewKeysSorted(apps)= helper in =app-core.js= (sorts keys by label, case-insensitive, key fallback when a label is missing) and =buildViewSel= iterates it. TDD: 4 node tests in =test-app-core.mjs= (red->green); updated the #viewtest browser gate from asserting insertion order to asserting =appViewKeysSorted(APPS)=; full theme-studio suite green (Python + Node + all browser gates). Commit =afd2ddad=, pushed. Visual sign-off optional (gate already confirms the DOM order).
*** 2026-06-16 Tue @ 06:11:30 -0500 Contrast cell: dropped PASS/FAIL, verdict moved to the hover
Craig's call (option a + hover): the contrast cell now shows just the rating-colored number (green = passes AAA, grey = passes AA, red = fails AA), and the WCAG meaning lives in a hover. Added a pure =contrastTitle(r)= to =app-util.js= (4 node tests), changed =crHtml= (app.js) to drop the verdict word and set =title=, kept =verdictFor= for the covered-overlay worst-case readout (untouched, #contrasttest still green). New #crtest browser gate; full theme-studio suite green. Commit =9e99749d=, pushed.
-** TODO [#B] first f12 doesn't toggle the term window :bug:solo:
-The first =f12= of a session flashes the terminal open and immediately closes it, as if the toggle fired on then off; a second =f12= then works. Seen across two separate sessions. From the roam inbox 2026-06-24.
+** CANCELLED [#B] first f12 doesn't toggle the term window :bug:solo:
+CLOSED: [2026-06-25 Thu]
+Couldn't reproduce — neither could Craig (2026-06-25). The toggle code is clean (a single create-new -> ghostel on the first press, no second toggle), and the symptom pointed to an intermittent first-launch race, but with nobody able to reproduce it there's nothing to instrument. Cancelled; reopen with a live capture if it recurs.
** TODO [#B] F12 pops EAT instead of ghostel :feature:studio:
Switch the F12 terminal toggle from ghostel/ghostty to EAT (emulator-for-terminals, pure elisp). The draw: EAT renders entirely in elisp, so its whole palette is real Emacs faces (=eat-term-color-0= .. =eat-term-color-15=, foreground/background, cursor), which makes it fully themeable from the theme — and a fun theme-studio coverage target. Steps: install =eat=; wire F12 to pop/toggle an EAT terminal (mind the =ghostel-keymap-exceptions= + rebuild gotcha if any ghostel F-key wiring lingers; the new path is plain Emacs keymaps); theme the =eat-term-color-*= faces (candidate to surface in theme-studio). Tradeoff to accept knowingly (themeability research 2026-06-24): ghostel is actually the most live-themeable — it has an =enable-theme-functions= resync hook and a dedicated default fg/bg face, whereas EAT needs a buffer reload to pick up a theme change and exposes no default fg/bg defcustom. So this trades ghostel's automatic theme-resync for EAT's pure-elisp face control. Spawned from the terminal-themeability comparison.
** TODO [#B] org-capture popup leaks f12 / f10 / f11 / ai-term keys :bug: