0.9.43 - 17 Nov 2015

Core

  • Improved the icon for non-retina screens
  • LuaSkin API documentation is now published at http://www.hammerspoon.org/docs/LuaSkin/
  • Force OS X to not try and place Hammerspoon in AppNap
  • Updated Crashlytics.framework to 3.4.0

Extensions

  • Fixed: hs.expose is now correctly included in the application
  • Fixed: hs.screen.find() by screen ID now works correctly
  • Fixed: hs.drawing:setImageFromPath() and hs.drawing:setImageFromASCII() now work correctly
  • Changed: The desktop is now excluded from hs.window.allWindows()
  • Changed: The play() functions in hs.spotify and hs.itunes no longer toggle between play and pause
  • Changed: hs.layout now defaults to using the main screen if it encounters a problem finding a screen
  • Changed: hs.application.nameForBundleID() now returns the full application name, not the name of its executable
  • Added: hs.window.desktop()
  • Added: hs.audiodevice can now inspect device datasources and watch for configuration changes and device addition/removal
  • Added: hs.audiodevice.watcher for observing changes on specific audio devices (e.g. headphone insertion/removal)
  • Added: hs.audiodevice.findDeviceByName(), hs.audiodevice.findOutputDeviceByUID(), hs.audiodevice.findInputDeviceByUID(), hs.audiodevice:jackConnected()
  • Added: hs.spotify.playpause(), hs.spotify.getPlayerState(), hs.spotify.isRunning(), hs.spotify.isPlaying()
  • Added: hs.itunes.playpause(), hs.itunes.getPlayerState(), hs.itunes.isRunning(), hs.itunes.isPlaying()
  • Added: hs.application:isRunning()
  • Added: hs.screen:getBrightness(), hs.screen:setBrightness() (separate from hs.brightness because they are able to work on Apple external displays)
  • Added: hs.menubar:frame()
  • Added: hs.styledtext (highly configurable text styling for hs.drawing)
  • Added: hs.javascript (analogous to hs.applescript)
  • Added: hs.pasteboard.getImageContents(), hs.pasteboard.setImageContents()
  • Added: hs.task (asynchronous execution of external binaries)
  • Added: hs.host.volumeInformation()
  • Added: hs.keycodes.layouts(), hs.keycodes.currentLayout(), hs.keycodes.setLayout()
  • Added: hs.drawing:frame()

0.9.42 - 08 Oct 2015

Core

  • Tweaked the icon to have richer colours and better alignment
  • Intrepid users can now use defaults(1) to change the directory Hammerspoon will load its config file from

Extensions

  • Fixed: hs.drawing:setFillGradient() now works again
  • Fixed: hs.http should be more robust against crashing on bad function arguments
  • Fixed: hs.drawing should be more robust against crashing when unknown fonts are requested
  • Changed: hs.hints can now optionally include non-standard windows in its hints display
  • Changed: hs.application.open() can now optionally block Hammerspoon until a window appears for the application
  • Changed: hs.expose improvements
  • Added: hs.logger.getLogLevel()
  • Added: hs.window.setFrameCorrectness(), hs.window.setFrameWithWorkarounds()
  • Added: hs.drawing.color[] now contains a few more pre-defined colours. Please send in Pull Requests adding lots more!