0.9.53 - 24 Apr 2017
Minimum OS X version: 10.10
Core
- Addeed support for pure-Lua plugins, or Spoons, see http://www.hammerspoon.org/Spoons/
- The bundled Lua is now 5.3.4
- Exceptions generated inside Hammerspoon as part of Lua callbacks are no longer fatal and will print a traceback to the Console window
- Crash report uploading behaviour can now be controlled via hs.uploadCrashData()
- Hammerspoon now exposes a minimal AppleScript API for executing Lua code from AppleScript
- The console window will now save/restore its window location
Extensions
- Fixed: Guarded against a potential crash in hs.application:getMenuStructure()
- Fixed: hs.application.find() no longer fails if applications have no :name() value
- Fixed: hs.checkForUpdates() can now optionally check for Hammerspoon updates without presenting any UI if an update is found
- Fixed: Removed a small memory leak in hs.menubar when removing menu items
- Fixed: hs.host.cpuUsage now properly samples CPU ticks
- Fixed: hs.chooser will now scroll to values selected via hs.chooser:selectedRow()
- Fixed: hs.timer objects can now work more successfully with sub-second precision
- Fixed: hs.application:path() now correctly distinguishes between multiple installed copies of the same application
- Changed: hs.keycodes.map now includes modifier keycodes, JIS keycodes, and will fallback to ANSI US keyboard values
- Changed: hs.canvas elements with an alphanumeric
id
attribute can now be accessed directly from the canvas object, using thatid
. - Changed: hs.menubar callbacks registered with
:setClickCallback()
now receive a reference to the menubar item when called - Changed: hs.itunes.previous() now mirrors the behaviour of the equivalent keyboard key, rather than unconditionally skipping back a track
- Changed: hs.layout items can now specify callback functions for unit/frame/full-frame values
- Changed: hs.pasteboard:writeDataForUTI()/:writeArchiverDataForUTI()/writePListForUTI() can now be used to write data to the pasteboard for multiple UTIs
- Changed: hs.color objects can now be created from HTML hex colour strings
- Changed: hs.noises now uses its own processing queue, which should make Hammerspoon more responsive when this module is being used
- Changed: hs.httpserver, hs.doc.hsdocs and hs.httpserver.hsminweb can now be configured to listen on a specific network interface
- Changed: hs.keycode.map.kVK_ANSI_Quote now contains the correct value
- Changed: hs.ipc.cliUninstall() will now unconditionally remove the CLI tools it finds on disk
- Added: hs.sqlite3
- Added: hs.audiodevice:inputMuted(), hs.audiodevice:outputMuted(), hs.audiodevice:setInputMuted(), hs.audiodevice:setOutputMuted()]
- Added: hs.itunes, hs.spotify and hs.deezer now have .getDuration()
- Added: hs.updateAvailable()
- Added: hs.chooser lists can now be scrolled with Ctrl-P/N/V
- Added: hs.vox (equivalent to hs.itunes/hs.spotify/hs.deezer for the Vox music player)
- Added: hs.chooser:showCallback(), hs.chooser:select(), hs.chooser:cancel()
- Added: hs.pasteboard.readAllData(), hs.pasteboard.writeAllData()
- Added: hs.accessibilityStateCallback
- Added: hs.webview:windowCallback()
- Added: hs.images.systemImageNames now includes new system images from macOS 10.12 (when running on 10.12 or higher)
- Added: hs.application.infoForBundleID() and hs.application.infoForBundlePath()
- Added: hs.host.locale
- Added: hs.textDroppedToDockIconCallback() and hs.fileDroppedToDockIconCallback() for receiving text/files via drag and drop onto the Hammerspoon dock icon (also available via the macOS Services menu)
- Added: hs.eventtap.event:getFlags() values now support :contains() and :containExactly() to assist checking which flags are set
0.9.52 - 29 Dec 2016
Minimum OS X version: 10.10
Core
- Non-interactive output lines in the Console Window now have timestamps
Extensions
- Fixed: Fixed an infinite loop regression in hs.chooser
- Changed: hs.chooser now defaults to the light/dark theme setting of macOS