0.9.47 - 29 Aug 2016

Minimum OS X version: 10.10

Core

  • Changed: Lua has been upgraded to 5.3.3

Extensions

  • Fixed: Various crashes have either been fixed or guarded against
  • Changed: hs.webview now has adjustable opacity and can present a toolbar
  • Changed: hs.timer has been rewritten to use a more modern API, which should make it more reliable
  • Changed: Various fixes/improvements to hs.hint vimperator mode
  • Changed: images can now be used as tiled patterns for hs.drawing.color
  • Changed: hs.alert has been rewritten to use hs.drawing and now has an option to leave the alert visible indefinitely
  • Changed: hs.hotkey callbacks can now be tables with __call metamethods (this will be extended to other callback sites in a future release)
  • Changed: hs.eventtap events now report NSEventTypePressure data, if available
  • Added: hs.distributednotifications
  • Added: hs.eventtap.event.newSystemKeyEvent()
  • Added: hs.httpserver and hs.http now support WebSockets
  • Added: hs.hsdocs for internal documentation browsing
  • Added: hs.image.imageFromURL()
  • Added: hs.mouse.trackingSpeed()
  • Added: hs.noises
  • Added: hs.hints.titleMaxSize and hs.hints.titleRegexSub
  • Added: hs.grid.getCell()
  • Added: hs.timer:fire()
  • Added: hs.network.interfaces(), hs.network.interfaceDetails(), hs.network.primaryInterfaces(), hs.network.addresses(), hs.network.interfaceName(),

0.9.46 - 15 Apr 2016

Minimum OS X version: 10.8

Core

  • Added: basic tab completion to the Console window input field
  • Fixed: some inconsistent behaviours with the Console window input field and multi-line strings
  • Fixed: potential crash relating to launch-at-login
  • Fixed: Lua environment is now gracefully shut down when quitting Hammerspoon from its menubar item
  • Fixed: The ‘Open Config’ menu item will now default to TextEdit if no default editor for Lua files, exists

Extensions

  • Fixed: hs.image:saveToFile() should be more reliable now
  • Fixed: crash in hs.task
  • Fixed: hs.http handles modified responses correctly now
  • Fixed: hs.location sunrise/sunset calculations are more correct
  • Fixed: hs.javascript should handle parse errors more gracefully
  • Fixed: hs.grid should now move windows more reliably
  • Fixed: hs.audiodevice volume setting
  • Fixed: various bugs in hs.expose
  • Changed: hs.drawing and hs.webview objects can now smoothly fade in/out when they are shown/hidden
  • Changed: hs.sound methods now return the hs.sound object. hs.sound.setCallback renamed to hs.sound.callback
  • Changed: hs.menubar now supports hs.styledtext for menubar items and various other additions
  • Changed: hs.grid can now move windows without resizing them, by selecting a new top-left point and hitting Enter
  • Changed: hs.grid can now be navigated with cursor keys
  • Changed: hs.grid can now use a custom per-screen frame
  • Changed: hs command line tool now has a timeout argument
  • Changed: hs.alert.closeAll() now has an optional duration parameter
  • Changed: hs.fs functions now expand ‘~’ correctly
  • Changed: hs.notify notifications can now include images
  • Changed: hs.redshift colour ramp can now be customised
  • Changed: hs.application:getMenuItems() now includes keyboard shortcut information
  • Added: hs.socket (for tcp/udp/unix sockets, with TLS support)
  • Added: hs.window.hilight
  • Added: hs.window.switcher
  • Added: hs.network.configuration
  • Added: hs.network.host
  • Added: hs.network.reachability
  • Added: hs.osascript
  • Added: hs.image:size(), hs.image:setSize()
  • Added: various hs.pasteboard functions for interacting with different content types on the clipboard
  • Added: more system images to hs.image, hs.image.iconForFile(), hs.image.iconForFileType(), hs.image.imageFromMediaFile()
  • Added: hs.file.fileUTI(),
  • Added: hs.tabs tabs are now clickable
  • Added: hs.audiodevice:inputVolume(), hs.audiodevice:outputVolume(), hs.audiodevice:setInputVolume(), hs.audiodevice:setOutputVolume()
  • Added: hs.wifi.associate()
  • Added: hs.window.filter.defaultCurrentSpace(), hs.window.filter.focusNorth/South/East/West, hs.window.filter.windowsChanged.
  • Added: hs.screen:localToAbsolute(), hs.screen:absoluteToLocal()
  • Added: hs.window:centerOnScreen()
  • Added: hs.application.pathForBundleID(), hs.application:path()