mirror of
https://github.com/nmasur/dotfiles
synced 2024-11-29 22:45:37 +00:00
51 lines
1.6 KiB
Lua
51 lines
1.6 KiB
Lua
|
--- === 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('', 'D', function() self:switch('Discord.app') end)
|
||
|
self.launcher:bind('', 'E', function() self:switch('Microsoft Outlook.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
|
||
|
|