diff options
| author | Craig Jennings <c@cjennings.net> | 2026-07-24 08:46:04 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-07-24 08:46:04 -0500 |
| commit | d9ab1074991ee3c4c680024b14d6de0475560380 (patch) | |
| tree | 00b9459181efaececd8da2c065c69ac92b0a8bc2 /modules/browser-config.el | |
| parent | 7e5aa31731a6d6446055729fb7597d549ff637f4 (diff) | |
| download | dotemacs-d9ab1074991ee3c4c680024b14d6de0475560380.tar.gz dotemacs-d9ab1074991ee3c4c680024b14d6de0475560380.zip | |
fix: correct four wrong behaviors and drop three dead code paths
- yt-dlp downloads claimed completion when tsp had merely queued them.
- A fresh machine opened org links in EWW, not Chrome.
- ArchWiki search raised a raw error instead of the install hint.
- The pre-commit hook kept running when its cd failed.
- Removed a second device-grouping implementation nothing called.
- Removed a redundant epub advice that ran on every file visit.
- Removed a buffer-burying clause naming a mode Emacs doesn't define.
- Moved the Hugo bindings onto the custom prefix map.
- The ArchWiki docs path is now a variable, making it testable.
Diffstat (limited to 'modules/browser-config.el')
| -rw-r--r-- | modules/browser-config.el | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/modules/browser-config.el b/modules/browser-config.el index 564e7a27..4571c1d9 100644 --- a/modules/browser-config.el +++ b/modules/browser-config.el @@ -143,7 +143,23 @@ Persists the choice for future sessions." ('save-failed (message "Failed to save browser choice")) ('invalid-plist (message "Invalid browser configuration")))))))) -;; Initialize: Load saved choice or use first available browser +(defun cj/--preferred-default-browser (browsers) + "Return the browser plist to adopt as the first-run default from BROWSERS. + +Prefers the first entry with a non-nil :executable -- a real external +browser -- and falls back to the first entry overall when none is +installed. Built-in browsers carry a nil :executable and so are always +\"available\", which put EWW at the head of `cj/discover-browsers' on +every machine. Taking the head therefore opened every link in the text +browser on a fresh checkout even with Chrome installed, until the user +happened to run `cj/choose-browser'. EWW stays reachable as the +deliberate fallback when nothing external is on PATH. + +Returns nil for an empty BROWSERS list." + (or (seq-find (lambda (b) (plist-get b :executable)) browsers) + (car browsers))) + +;; Initialize: Load saved choice or use the preferred available browser (defun cj/--do-initialize-browser () "Initialize browser configuration. Returns: (cons \\='loaded browser-plist) if saved choice was loaded, @@ -153,10 +169,10 @@ Returns: (cons \\='loaded browser-plist) if saved choice was loaded, (let ((saved-choice (cj/load-browser-choice))) (if saved-choice (cons 'loaded saved-choice) - ;; No saved choice - try to set first available browser + ;; No saved choice - adopt the preferred available browser (let ((browsers (cj/discover-browsers))) (if browsers - (cons 'first-available (car browsers)) + (cons 'first-available (cj/--preferred-default-browser browsers)) (cons 'no-browsers nil)))))) (defun cj/initialize-browser () |
