From 11a077d48f0246a98f71465a9f3c54d8a7fcc3a3 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Wed, 19 Jun 2019 23:21:03 +0200 Subject: init: Move Terminal tab shortcuts to a new file Now that there's a lot more code for this, extract it to a separate file. --- terminal_tab_hotkeys.lua | 59 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 terminal_tab_hotkeys.lua (limited to 'terminal_tab_hotkeys.lua') diff --git a/terminal_tab_hotkeys.lua b/terminal_tab_hotkeys.lua new file mode 100644 index 0000000..44dd633 --- /dev/null +++ b/terminal_tab_hotkeys.lua @@ -0,0 +1,59 @@ +-- Copyright (c) 2019 Teddy Wing +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . + + +-- Shortcuts to focus tabs in Terminal +terminal_app = hs.application.applicationsForBundleID('com.apple.Terminal')[1] + +terminal_tab_hotkeys = {} + +for i=0,9 do + 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 + tab_index = 10 + end + + hs.window.frontmostWindow():focusTab(tab_index) + end + 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() -- cgit v1.2.3