`find-file-hook` seems not to have false negatives, at least. Using `(window-live-p (get-buffer-window (current-buffer) 'visible))` has false negatives for me (i.e., it returns nil for some interactive buffers).

Thanks, everyone.

On Tue, Apr 9, 2024 at 11:06 PM Karthik Chikmagalur <karthikchikmagalur@gmail.com> wrote:
>> Org-mode occasionally opens files automatically, for instance, when
>> inserting or opening ID links, or during certain searches. I need to
>> determine if a buffer was opened programmatically or manually by the user
>> within the startup hooks. This distinction is important because, e.g., I
>> want to automatically preview all LaTeX fragments if the buffer was opened
>> by the user, but not if it was opened programmatically.
>
> AFAIK, there is no reliable way to do this.
> You may play around with `find-file-hook'. See `org-with-file-buffer'
> macro in org-macs.el (on main).

A heuristic I use is to check if the window is visible.  It's not
perfect but good enough for my use (which includes previewing LaTeX
fragments):

(defun my/latex-preview-maybe ()
  (when (window-live-p (get-buffer-window (current-buffer)))
    (org-latex-preview 'buffer)
    (org-latex-preview-auto-mode 1)))

(add-hook 'org-mode-hook #'my/latex-preview-maybe)

Karthik