шорткат для закрытия вкладок в safari
Компютерный манипулятор «мышь». Оторопь берёт: представить только сколько километров протащили мои мышцы этот кусок пластика по офисным столам.
Попросите компьютер визуализировать все движения мышкой, которые совершают люди в вашем доме, пусть они отображаются белыми точками. Теперь попросите компьютер отдалить картинку, сменить масштаб до квартала — вы увидите как точки сливаются в реки белых пульсирующих пикселов. Не останавливайтесь, попросите программу отдалять картинку ещё дальше и вы увидите как весь мир полыхает белым. кажется, что-то подобное кто-то уже написал до меня.
Если серьёзно, то я вот, психую когда мне нужно тянуть курсор к миллипипическому крестику на вкладке или к самой микровкладке чтобы щёлкнуть по ней правой кнопкой и выбрать из выпадающего меню пункт Close all tabs to the right. Первая задача решается одним сочетанием клавиш (или вообще одной кнопкой x
, если у вас как у меня браузер понимает vim-навигацию). А вот вторая задача конкретно триггерит — ну почему в 2025 году все такие доступные и продуманные интерфейсы, разработанные международными корпорациями с триллионными бюджетами и миллиардами человеко-часов, не предоставляют такую тривиальную опцию. Как нам быть, мы все обречены на бесконечное повторение однотипных сочетаний клавиш или на вечное елозение курсором пока сточеная об стол мышка не выпадет из наших ослабевших коченеющих рук.
Спасение грядёт! Мне было видение, что при помощи палки и верёвки Karabiner Elements, shell и apple script задача решается!
Prerequisites:
- Умеем читать и повторять по инструкции
- Karabiner Elements у нас уже есть
- Консолью мы худо-бедно умеем пользоваться
С приложениями в Macos умеeт взаимодействовать Apple Script, shell-скрипты могут запускать файлы, содержащие Apple Script. Karabiner Elements может запускать shell-скрипты по заданным сочетаниям клавиш (или по каким-то другим раздражителям).
Итак, аутлайн следующий:
- придумать Apple Script, который умеет в Safari закрывать вкладки, индекс котрых выше чем у активной
- где-то в домашней папке добавляем папку
myscripts/karabiner-scripts
(ну или как вам хочется назвать) чтобы хранить там весь наш хлам, связаный с карабином и его автоматизациями - добавляем файл с apple-script, добавляем shell-скрипт, который будет его вызывать
- в karabiner добавляем настройку, котрая по клавиатурному сочетанию будет запускать этот скрипт
План:
В этой папке делаем два файлика:
safari-close-tabs2theright.scpt
-- safari-close-tabs2theright.scpt
-- Тот самый скрипт, который закрывает вкладки
tell window 1 of application "Safari"
close (tabs where index > (get index of current tab))
end
safari-close-tabs2theright.sh
#!/bin/zsh
# safari-close-tabs2theright.sh
# shell-скрипт, который запускает safari-close-tabs2theright.scpt
osascript ./safari-close-tabs2theright.scpt
Файлики должны быть исполняемыми (чтобы Karabiner Elements смог их запустить)
Если лень делать файлики самостоятельно, идём ко мне в гитхаб, ставим звездочку, клонируем, вписываем правильный путь.
В Karabiner Elements добавляем «сложную модификацию» (Complex Modifications > Add your own rule)
И туда копипастим вот это:
{
"description": "Close tabs to the right Safari",
"manipulators": [
{
"from": {
"key_code": "w",
"modifiers": { "mandatory": ["left_command", "left_option", "left_shift"] }
},
"to": [{ "shell_command": "{Сюда — путь до скриптов}/safari-close-tabs2theright.sh" }],
"type": "basic"
}
]
}
— чуваааак! на скрине вместо Safari — ерунда какая-то…
Safari — вжух! И все вкладки справа уничтожены
И теперь в сафари можно нажать левые cmd+opt+shift+w, чтобы закрыть вкладки справа.