--- === Launcher === local obj = {} obj.__index = obj -- Metadata obj.name = "Launcher" obj.version = "0.1" obj.license = "MIT - https://opensource.org/licenses/MIT" function obj:init() -- Begin launcher mode self.launcher = hs.hotkey.modal.new("ctrl", "space") -- Behaviors on enter function self.launcher:entered() -- hs.alert'Entered mode' end -- Behaviors on exit function self.launcher:exited() -- hs.alert'Exited mode' end -- Use escape to exit launcher mode self.launcher:bind("", "escape", function() self.launcher:exit() end) -- Launcher shortcuts self.launcher:bind("", "space", function() hs.hints.windowHints() self.launcher:exit() end) self.launcher:bind("", "return", function() self:switch("Alacritty.app") end) self.launcher:bind("", "C", function() self:switch("Calendar.app") end) self.launcher:bind("", "D", function() self:switch("Discord.app") end) self.launcher:bind("", "E", function() self:switch("Mail.app") end) self.launcher:bind("", "F", function() self:switch("Firefox.app") end) self.launcher:bind("", "G", function() self:switch("Mimestream.app") end) self.launcher:bind("", "M", function() self:switch("Messages.app") end) self.launcher:bind("", "O", function() self:switch("Obsidian.app") end) self.launcher:bind("", "P", function() self:switch("System Preferences.app") end) self.launcher:bind("", "R", function() hs.reload() end) self.launcher:bind("", "S", function() self:switch("Slack.app") end) self.launcher:bind("", "Z", function() self:switch("zoom.us.app") end) end function obj:switch(app) hs.application.launchOrFocus(app) self.launcher:exit() end return obj