Chrome: abre nuevas pestañas junto a la actual
En mi Mac, Chrome abre las pestañas de ⌘T al final. Quería abrirlas junto a la que estaba usando, sin otra extensión. Como ya uso Hammerspoon, añadí un atajo solo para Chrome.
Con B activa:
Antes: A | B | C
⌘T: A | B | Nueva | C
La nueva pestaña queda seleccionada. Esto cambia ⌘T; el botón + sigue funcionando como siempre.
Configuración de Hammerspoon
El código completo y las instrucciones también están en GitHub Gist.
Con Hammerspoon instalado, guarda esto en ~/.hammerspoon/chrome-tabs.lua:
-- Chrome: Cmd-T opens and selects a tab immediately after the active tab.
local chromeBundleID = "com.google.Chrome"
local log = hs.logger.new("chrome-tabs", "info")
chromeNewTabHotkey = hs.hotkey.new({"cmd"}, "t", function()
local ok, _, details = hs.osascript.applescript([[
tell application "Google Chrome"
if (count of windows) = 0 then
make new window
else
tell front window
set currentIndex to active tab index
make new tab at after tab currentIndex with properties {URL:"chrome://newtab/"}
set active tab index to currentIndex + 1
end tell
end if
end tell
]])
if not ok then
log.e(hs.inspect(details))
hs.alert.show("No se pudo abrir la pestaña de Chrome. Consulta la consola de Hammerspoon.")
end
end)
local function updateHotkey()
local app = hs.application.frontmostApplication()
if app and app:bundleID() == chromeBundleID then
chromeNewTabHotkey:enable()
else
chromeNewTabHotkey:disable()
end
end
-- Retain the watcher and hotkey across garbage collection.
chromeTabWatcher = hs.application.watcher.new(function(_, event)
if event == hs.application.watcher.activated
or event == hs.application.watcher.deactivated then
updateHotkey()
end
end)
chromeTabWatcher:start()
updateHotkey()
Añade esta línea a tu ~/.hammerspoon/init.lua existente:
dofile(hs.configdir .. "/chrome-tabs.lua")
Elige Hammerspoon → Reload Config. Si macOS lo pide, permite que Hammerspoon controle Chrome.
Cómo funciona
Lua gestiona el atajo y detecta qué aplicación está activa. El código que parece inglés dentro de [[ ... ]] es AppleScript guardado como texto. hs.osascript.applescript lo ejecuta para controlar Chrome. active tab index es la posición de la pestaña seleccionada, contando desde 1.
Comprobé el orden de las pestañas en Chrome y repetí la prueba tras recargar. El atajo también se desactivó correctamente fuera de Chrome.