
#Hammerspoon build code
This allows you to quickly and easily write Lua code which interacts with the otherwise complicated macOS APIs, such as those for applications, windows, mouse pointers, filesystem objects, audio devices, batteries, screens, low-level keyboard/mouse events, clipboards, location services, wifi, and more. To do this, we will be using Hammerspoon, an open-source project, which aims to bring staggeringly powerful macOS desktop automation into the Lua scripting language. Today we will build the neat little utility illustrated in the gif above and, hopefully, inspire you to build something yourself. How often have you wanted a little something extra out of macOS, or it's desktop environment, but felt intimidated digging into the unwieldy system APIs? Well, fret no more! Using the same applications table as hyper, we add a new key/value pair for preferred_display.What is Hammerspoon and what can it do for me? Once again, we return to my config variable in a. Inspired by Seth Messer's config, I wrote a simplified a system. If I have two screens, I want work right in front of me, and distraction/calendaring applications off to the side.
#Hammerspoon build full
If I'm on one screen, I want everything full screened, and I switch between them using hyper shortcuts.
#Hammerspoon build windows
Autolayout on docking or undocking the laptopĪfter using my basic keys for moving windows around, I realized the main use case for me was setting up my windows on my two monitors after docking my laptop. It's a very small thing, but it brings me a lot of joy. I use this more than I thought I would, it turned out that most of my window moving was simply to bring two things close together for comparison or reference. Hold ⎇ for 70/30." ) : searchSubText ( true ) : choices ( windows ) : show () movewindows : exit () while it's not terribly complex, it's a good example of the powerful tools Hammerspoon gives you to build your own automations.įirst we set up the modal and bind it to our old friend Hyper.Ĭhooser : placeholderText ( "Choose window for 50/50 split. I then hit `v` to enter my split window chooser, then I choose the window I want alongside my "work" window and everything is ready to go! Hitting HYPER+m allows me to enter my window movement modal.

Realizing just how common this particular use case is, and inspired by how easy it is to split a screen in vim using fzf.vim, I wrote a function to make my life easier. Switch to my reference, enter move mode, move it to the right.Switch to my work, enter move mode, move it to the left.


While much of a is very simple, there are two automations that I'm proud of. In my configuration, a isn't very complex or interesting, and a lot of it was written originally by Tom Miller.

I used to think multitasking was a super power of mine, now I think it's my kryptonite. While ten years ago I would have leapt for the tiling options 1 (I still would like to give i3wm a go one of these days!) I have been making an effort to only have one application in view at any given time.
#Hammerspoon build mac
There is a lot of awesome Hammerspoon code to help you with that, from clones of popular Mac applications like Spectacle to complex tiling systems. One of the main things people do with Hammerspoon is wrangle their window layouts.
