Я предпочитаю «естественное» направление прокрутки при использовании трекпада MBAir, но «неестественное» при использовании мыши. Я часто переключаюсь туда и обратно в зависимости от того, где я работаю, поэтому я использовал немного AppleScript для переключения настроек. Этот скрипт перестал работать, когда я обновился до Mac OS Yosemite. Он по-прежнему открывает панель «Прокрутка и масштабирование» настроек трекпада, но не устанавливает флажок. Я пробовал несколько вещей, но не могу заставить их работать. Я не разработчик Apple, поэтому у меня нет инструментов отладки. Какие-нибудь советы?
try
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.trackpad"
end tell
tell application "System Events"
tell process "System Preferences"
click radio button "Scroll & Zoom" of tab group 1 of window "Trackpad"
click checkbox 1 of tab group 1 of window "Trackpad"
end tell
end tell
end try
Во-первых, убедитесь, что у Applescripts есть разрешение на изменение приложений. Это можно сделать, открыв System Preferences | Security & Privacy | Accessibility
и проверив Script Editor . Это одноразовый процесс, и вам не нужно проверять его снова.
Я запустил тот же фрагмент, который @Bowen предоставил в своем вопросе о Мохаве, и заметил то, что он описал. Я исправил это, добавив задержку, упомянутую @Bowen в его ответе. Теперь, когда мы добавили небольшую задержку, флажок будет либо установлен, либо снят.
Вот тот пример, который я запустил прямо из редактора скриптов:
try
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.trackpad"
end tell
delay 2
tell application "System Events"
tell process "System Preferences"
click radio button "Scroll & Zoom" of tab group 1 of window "Trackpad"
click checkbox 1 of tab group 1 of window "Trackpad"
tell application "System Preferences" to quit
end tell
end tell
end try
Кроме того, в отношении этой темы я создал кое-что, используя идеи из этой темы, поскольку люди могут захотеть автоматизировать это в соответствии со своими настройками. Приведенный ниже сценарий «готов к работе с Automator» или может быть экспортирован как приложение, чтобы вы могли запускать его при запуске или как вы хотите. Вы также должны разрешить доступ к экспортированному приложению, как показано на изображении выше для «Кликера направления прокрутки». Это характерно для найденной мыши Logitech, но ее можно легко изменить на любой другой тип шнура/мыши. Его также можно использовать как достойную ссылку для построения направления прокрутки. Я, например, устал переключать направление прокрутки при переходе от мыши к трекпаду, и именно так я нашел эту тему.
Адаптирован для экспорта в виде приложения из редактора сценариев.
try
set logitech to "Logitech"
try
set scriptOutput to do shell script "system_profiler SPUSBDataType | grep -i logitech"
if scriptOutput contains logitech then
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.trackpad"
end tell
delay 2
tell application "System Events"
tell process "System Preferences"
set checkBoxOne to checkbox 1 of tab group 1 of window "Trackpad"
click radio button "Scroll & Zoom" of tab group 1 of window "Trackpad"
tell checkBoxOne to if value is 1 then click
tell application "System Preferences" to quit
end tell
end tell
end if
on error errMsg
log errMsg
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.trackpad"
end tell
delay 2
tell application "System Events"
tell process "System Preferences"
set checkBoxOne to checkbox 1 of tab group 1 of window "Trackpad"
click radio button "Scroll & Zoom" of tab group 1 of window "Trackpad"
tell checkBoxOne to if value is 0 then click
tell application "System Preferences" to quit
end tell
end tell
end try
end try
Измените «активировать» на «запустить», чтобы скрипт работал в фоновом режиме. также добавьте «quit» в конец скрипта с задержкой 0,6, чтобы выйти из системных настроек после выполнения скрипта.
try
tell application "System Preferences"
(run)
set current pane to pane "com.apple.preference.trackpad"
end tell
tell application "System Events"
tell process "System Preferences"
delay 0.6
click radio button "Scroll & Zoom" of tab group 1 of window "Trackpad"
click checkbox 1 of tab group 1 of window "Trackpad"
end tell
tell application "System Preferences" to quit
end tell
end try
Вы можете решить это без какого-либо яблочного скрипта: https://pilotmoon.com/scrollreverser/
Я ответил на свой вопрос: если этот скрипт не работает, перейдите в «Системные настройки | Безопасность и конфиденциальность | Доступность и убедитесь, что редактор сценариев включен, чтобы разрешить Applescripts управлять графическим интерфейсом.
Это слегка измененная версия ответа , предоставленного @TODO, и она основана на этом ответе на связанный вопрос. Этот AppleScript будет переключать прокрутку напрямую молча/невидимо. Я сохраняю его как приложение и запускаю через прожектор всякий раз, когда переключаюсь между мышью и трекпадом.
try
tell application "System Preferences"
reveal pane "com.apple.preference.trackpad"
end tell
tell application "System Events"
tell process "System Preferences"
click radio button "Scroll & Zoom" of tab group 1 of window "Trackpad"
click checkbox 1 of tab group 1 of window "Trackpad"
tell application "System Preferences" to quit
end tell
end tell
end try
Отредактировано: я забыл упомянуть, что мне нужно один раз предоставить разрешение на доступ (при появлении запроса). После одноразовой подсказки это работает как шарм
Итак, что происходило, так это то, что код зацикливался, потому что код работал слишком быстро. Итак, что я сделал, так это поставил задержки между тем, где он не работал, и он работает отлично. Если вы хотите, вы можете уменьшить задержку до 0,5 или 0,2.
сказать приложению «Системные настройки» активировать установить текущую панель на панель «com.apple.preference.trackpad» конец сказать
сообщить приложению «Системные события» сообщить процессу «Системные настройки» задержка (1) нажать переключатель «Прокрутка и масштабирование» группы вкладок 1 окна «Трекпад» задержки (1) установить флажок 1 группы вкладок 1 окна «Трекпад» задержки (1) конец сказать конец рассказать
Я создал небольшое приложение MenuBar для Mac , чтобы автоматизировать это поведение ( Scrolly ). Какая разница, спросите вы, для scrollreverser . Приложение scrollreverser действительно хорошее, но его недостатком является то, что оно на самом деле не меняет настройки (что делает мое приложение, благодаря вам, ребята, и сценариям Apple, которыми все поделились в этой теме) .
Если хотите, можете заглянуть сюда и попробовать. Мин. требования: MacOS 11. Поскольку я хотел протестировать SwiftUI 2, мне пришлось увеличить мин. версия.
Вот что сработало для меня:
tell application "System Preferences"
reveal anchor "trackpadTab" of pane id "com.apple.preference.trackpad"
end tell
tell application "System Events" to tell process "System Preferences"
click checkbox 1 of tab group 1 of window 0
end tell
quit application "System Preferences"
Я позаимствовал код отсюда .
ТимСум
ДЕЛАТЬ