0.9.45 - 21 Jan 2016

Core

  • None

Extensions

  • Fixed: crash in hs.pasteboard.setImageContents() if it is passed a non-image object
  • Fixed: crash in hs.chooser if it tries to select an impossible row number
  • Fixed: crash in hs.audiodevice.watcher when a watcher object has been deallocated with system events still queued
  • Fixed: crash in hs.screen on display change events (i.e. adding/removing monitors)
  • Fixed: issue with hs.chooser not becoming visible when its :show() method is called, due to Hammerspoon not being the active application
  • Fixed: crash in hs.hotkey related to double-free of carbon hotkeys
  • Fixed: hs.application:name() should work again (although you should ideally use :title() instead)

0.9.44 - 15 Jan 2016

Core

  • The bundled version of Lua is now 5.3.2
  • The Hammerspoon community Code of Conduct has been updated to Contributors Covenant 1.3.0
  • Added: hs.printf()

Extensions

  • Fixed: hs.menubar no longer causes WindowServer to log an error when menu items are removed
  • Fixed: hs.drawing should no longer crash on invalid UTF-8 inputs
  • Fixed: various minor issues in hs.grid
  • Fixed: hs.window.filter is now more reliable when “unusual” helper applications are running
  • Fixed: hs.host no longer crashes when iterating volumes while a volume is being removed from the system
  • Fixed: hs.urlevent now handles HTML files being opened by the system, and now works correctly if an http(s) URL, or HTML file, is opened while Hammerspoon is not running
  • Changed: hs.eventtap.event events are now more efficient and reliable
  • Changed: hs.webview now hands unknown URL schemes to the OS
  • Changed: hs.wifi can now perform background scans and return more information about WiFi adapters
  • Added: hs.redshift
  • Added: hs.speech and hs.speech.listener for Text-To-Speech and Speech Recognition, respectively
  • Added: hs.fs.volume
  • Added: hs.chooser
  • Added: hs.task now supports long-running tasks, with callbacks for capturing stdout/stderr
  • Added: hs.task now supports writing data to the stdin of tasks
  • Added: hs.task:workingDirectory(), hs.task:setCallback()
  • Added: hs.console for interacting with the Hammerspoon Console window
  • Added: hs.drawing.arc() for drawing partial circles
  • Added: hs.window.filter.windowAllowed, hs.window.filter.windowRejected, hs.window.filter.hasWindow and hs.window.filter.hasNoWindows events
  • Added: hs.timer.doAt(), hs.timer.delayed() and hs.timer.localTime()
  • Added: hs.setLogLevel()
  • Added: hs.logger now keeps a small history buffer
  • Added: .getVolume(), .setVolume(), .volumeUp(), .volumeDown(), .getPosition(), .setPosition(), .ff() and .rw() to hs.itunes and hs.spotify
  • Added: hs.caffeinate.watcher now supports events for screensaver activity and Fast User Switching activity
  • Removed: hs.crash.isMainThread() as we now perform this check automatically in almost all internal functions