https://github.com/purcell/osx-location.git
git clone 'git://github.com/purcell/osx-location.git'
This library uses OS X CoreLocation services to put useful
information into variables osx-location-latitude
and
osx-location-longitude
.
If you choose not to use one of the convenient packages in
Melpa and Marmalade, you'll need to add the
directory containing osx-location.el
and EmacsLocationHelper
to
your load-path
, and then (require 'osx-location)
.
If you don't trust the required bundled executable
(EmacsLocationHelper
) which does the communication with
CoreServices, you can build it yourself from the
instructions here or using the
bundled Makefile
.
Start monitoring the location asynchronously like this:
M-x osx-location-watch
To add code which responds to location changes, use
osx-location-changed-hook
. For example, you might add a hook
function which updates calendar-latitude
and calendar-longitude
(defined in the built-in library solar
), and then use
rase.el to execute code
automatically at sunrise or sunset.
Hook functions take no arguments; when your hook function runs, it can
use the freshly-updated values of osx-location-latitude
and
osx-location-longitude
.
Here's an example:
(eval-after-load 'osx-location
'(when (eq system-type 'darwin)
(add-hook 'osx-location-changed-hook
(lambda ()
(setq calendar-latitude osx-location-latitude
calendar-longitude osx-location-longitude
calendar-location-name (format "%s, %s" osx-location-latitude osx-location-longitude))))))