aboutsummaryrefslogtreecommitdiff
path: root/todo.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-15 08:22:44 -0500
committerCraig Jennings <c@cjennings.net>2026-06-15 08:22:44 -0500
commita5c9f48220cd52770f10f7627922b9fc8e2204cc (patch)
tree41549d086d41f17df033fd4b51aca8be5bd4f781 /todo.org
parent7f0fb797ddd01b7e3ff209c51cdfd76418cd5565 (diff)
downloaddotemacs-a5c9f48220cd52770f10f7627922b9fc8e2204cc.tar.gz
dotemacs-a5c9f48220cd52770f10f7627922b9fc8e2204cc.zip
docs: file roam-inbox tasks, face/font diagnostic spec, close org-faces
File the roam-inbox backlog (face/font diagnostic popup, gold-text-in-dimmed-buffers, and the theme-studio bugs: elfeed all-white, dashboard preview icons, converter :inherit gap, cursor row controls, sample renames). Add the face/font diagnostic spec the lead task references. Close the org-faces feature as DONE and file its residual visual round-trip as a VERIFY under Manual testing and validation.
Diffstat (limited to 'todo.org')
-rw-r--r--todo.org42
1 files changed, 41 insertions, 1 deletions
diff --git a/todo.org b/todo.org
index 7edf87a3f..da54ef434 100644
--- a/todo.org
+++ b/todo.org
@@ -44,6 +44,35 @@ Tags are additive. For example, a small wrong-behavior fix can be
=:bug:quick:=, and a feature that requires internal restructuring can be
=:feature:refactor:=.
* Emacs Open Work
+** TODO [#A] Face and font diagnostic popup at point :feature:
+Read-only popup diagnosing why text at point paints as it does (face stack by source, merged attributes, real font vs declared family, theme/config/inherit provenance). Spec: [[file:docs/design/face-font-diagnostic-popup-spec.org][face-font-diagnostic-popup-spec.org]] (draft, one open decision). From the roam inbox — "do this one first."
+** TODO [#D] Face diagnostic popup — theme-studio bridge (vNext) :feature:
+vNext for the face/font diagnostic tool: interactivity — "send this face to theme-studio", jump-to-theme-spec, any write path. Deferred per [[file:docs/design/face-font-diagnostic-popup-spec.org][the spec]]'s scope tiers.
+** TODO [#C] Gold text in auto-dimmed buffers :bug:
+Some auto-dimmed document buffers render text in gold; source unknown. Likely a face-remapping or overlay interaction with the theme. Blocked on the face/font diagnostic tool above for diagnosis. From the roam inbox.
+** TODO [#A] theme-studio: elfeed ignores theme assignments :bug:
+The preview shows theme colors, but elfeed itself renders all-white with no variation. Note: this may be the shr-rendered entry/article view (elfeed-show), where color often comes from the document rather than the theme — confirm whether the symptom is in the search list or the article view. From the roam inbox.
+** TODO [#C] theme-studio: rename preview sample names :feature:quick:solo:
+In the preview text, Alice→Christine and Eve→Evan. From the roam inbox.
+** TODO [#C] theme-studio: remove redundant reset button on package faces :refactor:quick:
+Remove the reset button on package faces; verify it does the same thing as the reset button next to "unlock all" and flag if they differ. From the roam inbox.
+** TODO [#C] theme-studio: break org-mode preview into grouped subsections :feature:
+Rather than cramming all org-mode preview into one pane, split into groups so each element is shown in a common, context-rich environment. From the roam inbox.
+** TODO [#B] theme-studio: dashboard preview icons missing, list items unthemed :bug:
+Found while theme-testing the live dashboard against the preview.
+- The navigator icons don't render in the preview at all, showing as mojibake. The nerd-font glyphs have no font fallback in the browser.
+- No way to set the color of the project, bookmark, and recent-files list items. The preview renders those entries as plain unstyled text, and the dashboard app exposes no editable face for them.
+** TODO [#C] theme-studio: converter drops :inherit on UI faces :bug:
+build-theme.el's UI tier passes inherit=nil to --attrs, so a UI face that relies only on its inherit field (no explicit fg/bg) loses the inheritance in the generated theme, while the studio preview shows the inherited color via resolveUiAttr. The package tier already emits :inherit; the UI tier should match. Surfaced while diagnosing why mode-line-inactive looked off in Emacs versus the preview (that case had explicit colors and turned out to be a stale deploy, but the inherit gap is real for any inherit-only UI face).
+** TODO [#C] theme-studio: restrict the cursor row to its background :bug:
+The UI table gives the cursor face the full control set (fg, B/I/U/S, box), but Emacs only honors the cursor face's :background. Its shape is cursor-type, not a face attribute, so every other control on that row is a no-op once the theme loads. Restrict the cursor row to just its background swatch so the studio doesn't present controls Emacs drops.
+** DONE [#B] org-faces: custom header-row face layer + theme-studio app :feature:theme-studio:spec:
+CLOSED: [2026-06-15 Mon]
+Named, theme-agnostic faces for org TODO keywords and priorities, wired via org-todo-keyword-faces / org-priority-faces, plus a dedicated theme-studio "org-faces" app beside elfeed and mu4e. Spec: [[file:docs/design/org-faces-spec.org][org-faces-spec.org]]. All four decisions resolved (prefix org-faces-, real defface defaults, auto-dim repointed to org-faces-*-dim, all 10 keywords). Phase 1 (modules/org-faces-config.el + 5 ERT tests), Phase 2 (auto-dim-config.el repoint), Phase 3 (theme-studio org-faces app) all landed and verified; the build-theme round-trip is confirmed mechanically. Residual visual check is a VERIFY under Manual testing and validation.
+** TODO [#D] org-faces: dim variants and retire dupre-org-* :feature:theme-studio:
+vNext from the org-faces spec: org-faces-*-dim variants wired into auto-dim so keywords stay legible in unfocused windows, and migrate or retire the legacy dupre-org-* set. [[file:docs/design/org-faces-spec.org][org-faces-spec.org]]
+** TODO [#C] Cursor buffer-state coloring — decide keep-theme-driven vs remove :refactor:
+Roam-inbox ask: remove the code that colors the cursor by buffer state (read-only / modified / unmodified) because it interferes with themes and "will never match." Open question: commit 7ccc3f5c reworked this so the cursor color now resolves through theme faces (error/warning/success) and tracks the active theme. Decide whether the theme-driven version satisfies the concern or the buffer-state cursor coloring should be removed entirely. From the roam inbox.
** TODO [#B] Unified popup placement and dismissal rules :feature:
All transient popups should follow one set of principles. Placement: when the Emacs frame is wider than tall, the popup rises from the right; when square or taller, from the bottom — settle the aspect-ratio threshold and the pop-out percentage. Dismissal: C-c C-c when there's an accept action, C-c C-k when there's a cancel, otherwise =q= closes the window. This generalizes two existing tasks — ai-term adaptive placement (the aspect-ratio docking) and the messenger window/key unification spec (the C-c C-c / C-c C-k dismissal) — into one config-wide policy. From the roam inbox.
@@ -132,7 +161,7 @@ Fixed 2026-06-13: lockscreen-cmd resolves to =loginctl lock-session= on Wayland
=modules/mail-config.el:217-220= — the cmail context (primary account) sets only drafts/sent, so D falls back to default "/trash" which doesn't exist under ~/.mail (=/cmail/Trash= does); and NO context sets =mu4e-refile-folder=, so r targets nonexistent "/archive" everywhere. Accepting mu4e's offer to create the maildir strands mail in a directory mbsync never syncs — messages silently vanish from the server's view. Add =mu4e-trash-folder= to cmail + per-context =mu4e-refile-folder=. From the 2026-06 config audit.
Fixed 2026-06-13: cmail gets =mu4e-trash-folder= "/cmail/Trash"; refile is a per-message function (=cj/mu4e--refile-folder=) instead of a per-context string — mu4e context :vars are sticky, so a per-context refile leaks one account's archive folder into another. cmail → "/cmail/Archive"; gmail/dmail signal a =user-error= rather than move mail into an unsynced phantom folder (Craig chose the fail-safe over syncing [Gmail]/All Mail — the All Mail option means a multi-GB pull + cross-folder duplicates; revisit if local Gmail archiving is wanted). Applies on next mu4e open; pure dispatch helper covered by tests.
-** TODO [#A] calendar-sync drops final occurrences and resurrects cancelled meetings :bug:solo:
+** TODO [#A] calendar-sync drops final occurrences, resurrects cancelled meetings :bug:solo:
:PROPERTIES:
:LAST_REVIEWED: 2026-06-13
:END:
@@ -1631,6 +1660,7 @@ Decisions D1-D7 are settled in the spec's Agreed-decisions section. Build order
*** TODO [#B] Follow-up: theme ghostel ANSI faces in dupre
D2 — set the 16 ghostel-color-* + ghostel-default faces in dupre-faces/palette.
+Roam-inbox note (2026-06-14): theme-studio assignments don't reach ghostel — it paints from its own ANSI palette, not the theme. Also investigate ghostel's property-file color mechanism as an alternative and surface the options for working with that limitation.
*** TODO [#B] Follow-up: evaluate ghostel-eshell + ghostel-compile
D3 — ghostel-eshell as eshell visual backend; ghostel-compile against F4 dev-fkeys.
@@ -4453,6 +4483,16 @@ From the 2026-06-11 messenger-unification brainstorm. Google Voice has no offici
** TODO Manual testing and validation
Exercised once the phases above land.
+*** VERIFY org-faces color set in theme-studio reaches the agenda
+What we're verifying: editing an org-faces-* row in theme-studio, exporting, and deploying lands the new color on the real agenda's keyword/priority. The build-theme -> deftheme half and the live org-todo-keyword-faces / org-priority-faces wiring are already verified mechanically; this confirms the visual end-to-end with a human eye.
+- Open theme-studio in Chrome and pick "org-faces" from the application dropdown (it sits beside elfeed and mu4e)
+- Confirm the preview shows the focused agenda block over the auto-dim block, and that the rows read "todo", "priority a", etc.
+- Edit org-faces-todo to an obviously different color (e.g. bright magenta) and export the theme to WIP.json
+#+begin_src sh :results output
+make -C /home/cjennings/.emacs.d deploy-wip
+#+end_src
+- Open the org agenda (or any todo.org buffer) and look at a TODO keyword
+Expected: the TODO keyword renders in the color just set; the priority cookies and other keywords keep their own colors; an unfocused window shows the dimmed variants.
*** VERIFY slack keys are safe before slack loads
What we're verifying: the C-; S slack keys don't error before slack has started, and the prefix shows in which-key. Fixed in modules/slack-config.el; restart to apply (not reloaded into the live session).
- Restart Emacs but do NOT run cj/slack-start