require 'expandmode'
require 'movemode'

local super = {'ctrl', 'alt', 'cmd', 'shift'}

function screensChangedCallback()
  local screens = hs.screen.allScreens()
  if #screens < 2 then
    hs.notify.show('Switched KWM modes', '', 'Switched to floating window mode',''):withdraw()
    hs.execute('kwmc space -t float', true)
    hs.execute('kwmc config focused-border off', true)
  else
    hs.notify.show('Switched KWM modes', '', 'Switched to bsp window mode',''):withdraw()
    hs.execute('kwmc space -t bsp', true)
    hs.execute('kwmc config focused-border on', true)
  end
end

hs.screen.watcher.new(screensChangedCallback):start()

require 'expandmode'
require 'movemode'

local super = {'ctrl', 'alt', 'cmd', 'shift'}

function screensChangedCallback()
  local screens = hs.screen.allScreens()
  if #screens < 2 then
    hs.notify.show('Switched KWM modes', '', 'Switched to floating window mode','')
    hs.execute('kwmc space -t float', true)
    hs.execute('kwmc config focused-border off', true)
  else
    hs.notify.show('Switched KWM modes', '', 'Switched to bsp window mode','')
    hs.execute('kwmc space -t bsp', true)
    hs.execute('kwmc config focused-border on', true)
  end
end

hs.screen.watcher.new(screensChangedCallback):start()

Make hammerspoon window notifications more persistent.
Make hammerspoon window notifications more persistent.

Unfortunately, this means you'll have to clean them out of your notification center from time to time. But that place is a shithole anyways.
