diff options
author | Teddy Wing | 2019-06-19 23:17:10 +0200 |
---|---|---|
committer | Teddy Wing | 2019-06-19 23:17:10 +0200 |
commit | 9738c3db7682e67cdeb146753be1a5ffc33d20d5 (patch) | |
tree | a68fe5157f8918a7e412cb5c684526821758fbfe /init.lua | |
parent | dbc06d1467262cc41459e6aef71113b7df9289fd (diff) | |
download | dothammerspoon-9738c3db7682e67cdeb146753be1a5ffc33d20d5.tar.bz2 |
init: Deactivate Terminal tab switching hotkeys outside of Terminal
The bindings I created to switch tabs in Terminal shadowed shortcuts in
all other applications, preventing them from performing their normal
function.
To get the bindings only in Terminal, add an application watcher that
enables and disables them when Terminal is activated and deactivated.
Diffstat (limited to 'init.lua')
-rw-r--r-- | init.lua | 30 |
1 files changed, 29 insertions, 1 deletions
@@ -27,8 +27,12 @@ spoon.WindowMode:bindHotkeys({ mode = {{'ctrl', 'option'}, 'w'} }) -- Shortcuts to focus tabs in Terminal terminal_app = hs.application.applicationsForBundleID('com.apple.Terminal')[1] +terminal_tab_hotkeys = {} + for i=0,9 do - hs.hotkey.bind({"cmd", "alt"}, tostring(i), function() + local key = tostring(i) + + terminal_tab_hotkeys[i] = hs.hotkey.bind({"cmd", "alt"}, key, function() if terminal_app:isFrontmost() then local tab_index = i if i == 0 then @@ -40,6 +44,30 @@ for i=0,9 do end) end +function terminal_tab_hotkeys:enable() + for _, v in pairs(terminal_tab_hotkeys) do + v:enable() + end +end + +function terminal_tab_hotkeys:disable() + for _, v in pairs(terminal_tab_hotkeys) do + v:disable() + end +end + +application_watcher = hs.application.watcher.new(function(app_name, event_type, app) + if app ~= nil and app_name == 'Terminal' then + if event_type == hs.application.watcher.activated then + terminal_tab_hotkeys:enable() + elseif event_type == hs.application.watcher.deactivated then + terminal_tab_hotkeys:disable() + end + end +end) + +application_watcher:start() + -- Maximise window height hs.hotkey.bind({'ctrl', 'alt'}, 'z', function() |