Skip to content

Instantly share code, notes, and snippets.

@fhemberger
Created November 21, 2021 20:12
Show Gist options
  • Save fhemberger/57ccfc6d228cfb37552cdfb11a09445c to your computer and use it in GitHub Desktop.
Save fhemberger/57ccfc6d228cfb37552cdfb11a09445c to your computer and use it in GitHub Desktop.
Hammerspoon: Switch layout when USB keyboard is plugged in
local usbLogger = hs.logger.new('usb', 'debug')
function configureKeyboard(data)
-- Uncomment the "usbLogger" line below, plug in the USB keyboard and update the USB vendor and product ID
local isKeyboardAffected = data.vendorID == 9610 and data.productID == 89
-- usbLogger.df("eventType %s, pname %s, vname %s, vId %s, pId %s, keyboardAffected %s", data.eventType, data.productName, data.vendorName, data.vendorID, data.productID, isKeyboardAffected)
if isKeyboardAffected and data.eventType == "added" then
hs.keycodes.setLayout("U.S.")
end
if isKeyboardAffected and data.eventType == "removed" then
hs.keycodes.setLayout("German")
end
end
local keyboardWatcher = hs.usb.watcher.new(configureKeyboard)
keyboardWatcher:start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment