spacemacs/layers/geolocation/packages.el
Sebastian Wiesner 460e4b9335 Fix access to possibly void variable
calendar-location-name comes from solar.el which is neither loaded by
default nor by this layer.  Hence it can potentially be void and must
not be accessed directly.

Instead wrap it in bound-and-true-p to guard against it being void.
2015-10-18 10:17:11 -04:00

69 lines
2.2 KiB
EmacsLisp

;;; packages.el --- Geolocation Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2014 Sylvain Benner
;; Copyright (c) 2014-2015 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
(setq geolocation-packages
'(
osx-location
sunshine
theme-changer
))
(defun geolocation/init-osx-location ()
"Initialize osx-location"
(use-package osx-location
:if geolocation-enable-osx-location-service-support
:init
(progn
(add-hook 'osx-location-changed-hook
(lambda ()
(setq calendar-latitude osx-location-latitude
calendar-longitude osx-location-longitude)
(unless (bound-and-true-p calendar-location-name)
(setq calendar-location-name
(format "%s, %s"
osx-location-latitude
osx-location-longitude)))))
(osx-location-watch))))
(defun geolocation/init-sunshine ()
"Initialize sunshine"
(use-package sunshine
:if geolocation-enable-weather-forecast
:defer t
:init
(progn
(evil-leader/set-key
"aw" 'sunshine-forecast
"aW" 'sunshine-quick-forecast)
(evilify sunshine-mode sunshine-mode-map
(kbd "q") 'quit-window
(kbd "i") 'sunshine-toggle-icons))
:config
;; just in case location was not set by user, or on OS X,
;; if wasn't set up automatically, will not work with Emac's
;; default for ;; `calendar-location-name'
(when (not (boundp 'sunshine-location))
(setq sunshine-location (format "%s, %s"
calendar-latitude
calendar-longitude)))))
(defun geolocation/init-theme-changer ()
"Initialize theme-changer"
(use-package theme-changer
:if geolocation-enable-automatic-theme-changer
:config
(progn
(when (> (length dotspacemacs-themes) 1)
(change-theme (nth 0 dotspacemacs-themes)
(nth 1 dotspacemacs-themes))))))