aboutsummaryrefslogtreecommitdiff
path: root/modules/weather-config.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2025-11-04 17:23:50 -0600
committerCraig Jennings <c@cjennings.net>2025-11-04 17:23:50 -0600
commit002cadf286d63029cebfc7993fd2a76e51446d68 (patch)
tree7b55ae14909b05ddc313a8e95da76c15b81ca43d /modules/weather-config.el
parent54b2e77e041be7f30139bd40b895959106614645 (diff)
downloaddotemacs-002cadf286d63029cebfc7993fd2a76e51446d68.tar.gz
dotemacs-002cadf286d63029cebfc7993fd2a76e51446d68.zip
fix: Resolve async buffer error and improve modeline spacing
- Fixed critical "Selecting deleted buffer" error on startup - wttrin-mode-line-mode now activates after init completes - Uses after-init-hook to prevent async buffer deletion - Weather widget loads safely after Emacs finishes initializing - Improved modeline right-side spacing - Added 2 non-breaking spaces after misc-info segment - Prevents weather icon from appearing flush with edge - Non-breaking spaces survive right-align trimming
Diffstat (limited to 'modules/weather-config.el')
-rw-r--r--modules/weather-config.el25
1 files changed, 24 insertions, 1 deletions
diff --git a/modules/weather-config.el b/modules/weather-config.el
index 31fb1b70..55eddf16 100644
--- a/modules/weather-config.el
+++ b/modules/weather-config.el
@@ -10,8 +10,15 @@
;; ----------------------------------- Wttrin ----------------------------------
+;; Load wttrin from local development directory
+(add-to-list 'load-path "/home/cjennings/code/wttrin")
+
+;; Set debug flag BEFORE loading wttrin (checked at load time)
+(setq wttrin-debug t)
+
(use-package wttrin
- :vc (:url "https://github.com/cjennings/emacs-wttrin" :rev :newest)
+ ;; Uncomment the next line to use vc-install instead of local directory:
+ ;; :vc (:url "https://github.com/cjennings/emacs-wttrin" :rev :newest)
:defer t
:preface
;; dependency for wttrin
@@ -21,6 +28,22 @@
("M-W" . wttrin)
:custom
(wttrin-unit-system "u")
+ (wttrin-mode-line-favorite-location "New Orleans, LA")
+ (wttrin-mode-line-refresh-interval 900) ; 15 minutes
+ :init
+ ;; Explicitly autoload the mode function (needed for local dev directory)
+ (autoload 'wttrin-mode-line-mode "wttrin" "Toggle weather display in mode-line." t)
+ ;; Enable mode-line widget AFTER Emacs finishes initializing
+ ;; (url-retrieve async needs full init to work without buffer errors)
+ (if (daemonp)
+ ;; Daemon mode: wait for first client to connect
+ (add-hook 'server-after-make-frame-hook
+ (lambda () (wttrin-mode-line-mode 1))
+ t) ; append to end of hook
+ ;; Normal Emacs: wait for startup to complete
+ (add-hook 'after-init-hook
+ (lambda () (wttrin-mode-line-mode 1))
+ t)) ; append to end of hook
:config
(setq wttrin-default-locations '(
"New Orleans, LA"