0.9.46 - 15 Apr 2016

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()

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)