From fd658b166a8dcf716c82cca28f370990a9df83af Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Tue, 5 May 2026 05:26:44 -0500 Subject: fix: skip LaTeX preview on TTY frames (upstream #44) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Issue #44 (2021): running org-drill in a TTY emacsclient (the reporter mentioned tmux) raised "Window system frame should be used" because LaTeX preview helpers (org-latex-preview, org--latex-preview-region) require a window system and weren't guarded. Wrapped both call sites with (when (display-graphic-p) ...). - org-drill--show-latex-fragments: now a silent no-op on TTY - present-default-answer's clear-and-preview block: same guard LaTeX previews are inherently graphical. The right behavior on TTY is to skip the preview rather than crash the session — TTY users still see the underlying source text just fine. --- org-drill.el | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'org-drill.el') diff --git a/org-drill.el b/org-drill.el index 6872d29..6885791 100644 --- a/org-drill.el +++ b/org-drill.el @@ -2261,13 +2261,16 @@ RESCHEDULE-FN is the function to reschedule." (ignore-errors (org-display-inline-images t)) (org-drill-hide-drawers) - (org-clear-latex-preview) - (save-excursion - (org-mark-subtree) - (let ((beg (region-beginning)) - (end (region-end))) - (org--latex-preview-region beg end)) - (deactivate-mark)) + ;; LaTeX preview helpers require a window-system frame + ;; (upstream issue #44). Skip on TTY. + (when (display-graphic-p) + (org-clear-latex-preview) + (save-excursion + (org-mark-subtree) + (let ((beg (region-beginning)) + (end (region-end))) + (org--latex-preview-region beg end)) + (deactivate-mark))) (org-drill-with-hidden-cloze-hints (funcall reschedule-fn session)))))) @@ -2285,9 +2288,14 @@ RESCHEDULE-FN is the function to reschedule." (org-drill-hide-subheadings-if 'org-drill-entry-p)))))) (defun org-drill--show-latex-fragments () - "Show latex fragment." - (org-clear-latex-preview) - (org-latex-preview '(16))) + "Show LaTeX fragments as inline images. +No-op on TTY frames — `org-latex-preview' requires a window system +and otherwise raises \"Window system frame should be used\" (upstream +issue #44, 2021). The TTY user just doesn't see preview images, +which is the right behavior." + (when (display-graphic-p) + (org-clear-latex-preview) + (org-latex-preview '(16)))) (defun org-drill-present-two-sided-card (session) (org-drill-with-hidden-comments -- cgit v1.2.3