aboutsummaryrefslogtreecommitdiffstats
path: root/init.lua
diff options
context:
space:
mode:
authorTeddy Wing2019-06-19 23:17:10 +0200
committerTeddy Wing2019-06-19 23:17:10 +0200
commit9738c3db7682e67cdeb146753be1a5ffc33d20d5 (patch)
treea68fe5157f8918a7e412cb5c684526821758fbfe /init.lua
parentdbc06d1467262cc41459e6aef71113b7df9289fd (diff)
downloaddothammerspoon-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.lua30
1 files changed, 29 insertions, 1 deletions
diff --git a/init.lua b/init.lua
index aa1d934..c61046d 100644
--- a/init.lua
+++ b/init.lua
@@ -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()