Me gusta usar mi MacBook con un mouse USB la mayor parte del tiempo, y mantengo marcada la opción "Ignorar el trackpad incorporado cuando el mouse o el trackpad inalámbrico están presentes" para evitar mover accidentalmente el cursor mientras escribo. Sin embargo, ocasionalmente es útil volver a activarlo para ciertas tareas, y me gustaría poder hacerlo con un atajo de teclado.
Intenté grabar el proceso de encenderlo/apagarlo con Automator, pero cuando copio el script resultante y lo ejecuto, llega hasta la configuración de Accesibilidad y luego me da un error de sintaxis que dice 'No se puede hacer clic en la casilla de verificación 3 de ventana "Accesibilidad" del proceso de aplicación "Preferencias del Sistema"'.
También intenté configurar "USBMouseStopsTrackpad" de forma predeterminada en 0 y 1 en la terminal, pero parece que no hace nada. Puedo ver que esto cambia a 0 o 1 cuando marco/desmarco la casilla, así que estoy bastante seguro de que tengo la opción correcta, pero no pasa nada cuando la cambio.
¡Disculpas si esto es realmente obvio y simplemente no lo estoy viendo! Todavía no estoy muy familiarizado con esta máquina. Soy consciente de esta pregunta:
¿Es posible apagar el trackpad en OS X con un atajo de teclado?
pero no creo que sea un duplicado ya que estoy tratando de hacer algo ligeramente diferente.
Esto se puede hacer de forma nativa sin necesidad de nada de terceros, simple y fácilmente usando AppleScript y UI Scripting .
El código AppleScript de ejemplo se puede implementar de varias maneras diferentes, como un script , una aplicación AppleScript o como un servicio de Automator , el último de los cuales puede tener asignado un método abreviado de teclado .
Específicamente, cómo implementar como un servicio de Automator se ha cubierto más de suficientes veces que una búsqueda en Google debería proporcionar una respuesta sobre cómo hacerlo. Sé que escribí instrucciones para ello más veces de las que puedo recordar.
El siguiente código AppleScript de ejemplo funciona para mí y alterna la casilla de verificación " Ignorar el panel táctil incorporado cuando el mouse o el panel táctil inalámbrico están presentes: " :
if running of application "System Preferences" then
try
tell application "System Preferences" to quit
on error
do shell script "killall 'System Preferences'"
end try
end if
repeat while running of application "System Preferences" is true
delay 0.1
end repeat
tell application "System Preferences"
reveal anchor "Mouse" of pane id "com.apple.preference.universalaccess"
delay 1
tell application "System Events"
click checkbox 1 of group 1 of window 1 of application process "System Preferences"
end tell
quit
end tell
Tenga en cuenta que es posible que sea necesario ajustar el valor de los delay
comandos para su sistema y que se necesiten o no delay
comandos adicionales. Ajuste los valores de y o agregue/elimine los delay
comandos según corresponda.
Esto fue probado y funciona bajo macOS High Sierra ; sin embargo, tenga en cuenta que, dependiendo de la versión de OS X/macOS que esté ejecutando, es posible que deba ajustar la click checkbox ...
línea de código según la versión del sistema operativo .
Por ejemplo, con macOS Catalina necesitarías usar:
click checkbox 2 of tab group 1 of group 1 of window 1 of application process "System Preferences"
Nota: El código AppleScript de ejemplo es solo eso y no contiene ningún manejo de errores que pueda ser apropiado. El usuario tiene la responsabilidad de agregar cualquier manejo de errores que sea apropiado, necesario o deseado. Eche un vistazo a la declaración de prueba y la declaración de error en la Guía del lenguaje AppleScript . Consulte también Trabajar con errores . Además, el uso del comando de retardo puede ser necesario entre eventos cuando sea apropiado, por ejemplo , con el valor del retardo establecido apropiadamente. delay 0.5
Macroing esto es un poco tonto, pero es totalmente factible.
Recomiendo usar Keyboard Maestro para esto. Es algo así como Automator... No es gratis, pero tiene una versión de prueba y definitivamente vale la pena. También podría hacer lo mismo en Automator o Applescript, pero es mucho más simple en KBM.
KBM tiene algunas acciones geniales cuando se trata de navegar por la interfaz gráfica de usuario:
Imagen de los pasos de la macro (Enlace)
No es la macro más rápida de la historia (~3 segundos), pero es mejor que sumergirse en los menús manualmente.
Mientras crea esta macro, asegúrese de ejecutar la macro sin terminar después de cada paso para asegurarse de que todo esté exactamente como debe ser.
Activate a Specific Application
System Preferences
Abre Preferencias del Sistema
Pause Until
Menu Condition
Accessibility
está habilitadoEsto más o menos asegura que la ventana esté activa y que la Accesibilidad sea un elemento de menú al que puede navegar.
Move a Window
0
↓0
Esto asegura que la ventana de preferencias esté en su pantalla principal. Solo es importante porque si en algún momento arrastra manualmente la ventana a su pantalla secundaria, todas las acciones que dependen de las coordenadas fallarían sin esto y la siguiente acción 'Mover una ventana'.
Select or Show a Menu Item
System Preferences
View
Accessibility
También puede simplemente hacer clic
Menu ▾
en la parte superior izquierda de esta acción para elegir el elemento del menú desde allí, siempre que las Preferencias del sistema estén abiertas. Eso hace que sea muy fácil simular hacer clic en cualquier elemento del menú.
Pause
1
segundos.Esto es un poco misterioso. Quería usar la pausa hasta que el título de la ventana sea 'Accesibilidad', lo que funciona si vas a la página de Accesibilidad en Preferencias del sistema y verificas la acción. KBM dice que el valor es verdadero cuando estás allí. Sin embargo, siguió fallando cuando ejecuté la macro. También probé la 'Pausar hasta la condición de píxel' y también falló. Supongo que la condición se hizo realidad antes de que fuera posible cualquier interacción... El objetivo de usar la acción 'Pausar hasta' es asegurarnos de que cualquier cosa que queramos hacer a continuación realmente se active. en el momento adecuado. Cuando usa una pausa estática o no hace ninguna pausa, existe la posibilidad de que ocasionalmente tome más tiempo de lo normal y la pulsación de tecla simulada simplemente entre en el éter y la macro se atasque o en el peor de los casos: en realidad hace algo totalmente diferente, envía una alerta de advertencia de misiles a todos los hawaianos o algo así. Los pocos lugares donde usé una pausa estática deberían estar bien, ya que todos están en la misma página de la misma ventana, por lo que hayNo debería haber ningún problema extraño provocado por eso, pero si no hace lo que se supone que debe hacer: aumente el retraso estático. También puede agregar 'Pausa' entre algunas de las otras acciones que no están separadas por un retraso, si no parece funcionar. Las máquinas más lentas suelen requerir un mayor retraso.
Type a Keystroke
Cmd+F
Si esta ventana ya está activa, esto predetermina la posición para la búsqueda, por lo que la siguiente pulsación de tecla va al lugar correcto
Move a Window
Move to
aCenter
Esto asegura que todas las acciones que usan coordenadas lleguen a los lugares correctos.
Nombre de la acción:Type a Keystroke
Tab
Activa la lista en el lado izquierdo de
System Preferences > Accessibility
la ventana.
Nombre de la acción:Pause Until
Nombre de la acción:Type a Keystroke
End
Activa la lista en el lado izquierdo de
System Preferences > Accessibility
la ventana.
Nombre de la acción:Type a Keystroke
Alt+Down Arrow
Nombre de la acción:Pause Until
Acción:Move or Click Mouse
Absolute position
Restore Mouse Location
.Elegí usar relativo a la posición absoluta ya que las Condiciones de píxeles no pueden ser relativas a la ventana actual... Realmente no importa mucho.
Nombre de la acción:Pause Until
Acción:Move or Click Mouse
Absolute position
Restore Mouse Location
.Ignore built-in tackpad when mouse or wireless trackpad is present
Elegí usar relativo a la posición absoluta ya que las Condiciones de píxeles no pueden ser relativas a la ventana actual... Realmente no importa mucho.
Nombre de la acción:Pause
.6
segundosEs posible que desee alargar esto si siente que no puede ver el cambio de valor y le gustaría... Este retraso se agregó por ese motivo, pero pasa bastante rápido. Prueba algo así como 1 segundo...
Quit a Specific Application
System Preferences
.defaults
para modificar el valor de una clave en un .plist
archivo no logra el objetivo. El defaults
comando se volvió casi inútil a partir de OS X 10.8 y posteriores, donde se realizaron cambios importantes que rompieron el uso efectivo del mismo en comparación con versiones anteriores de OS X. Todavía se puede usar en algunos casos, pero no tantos como antes. estar donde una vez solía tener un efecto inmediato sin necesariamente tener que matar un proceso para que el cambio se lleve a cabo.defaults
en este caso de uso. ¡El punto que estaba tratando de hacer es que su declaración que cité en mi comentario anterior es errónea! SIP no impide que el defaults
comando realice acciones en .plist
los archivos en formato ~/Library/Preferences
. Deberías leer: Acerca de la Protección de integridad del sistema en tu Macdefaults
. Yo también me concentré en proporcionar una buena respuesta, lo que creo que hice al demostrar que se puede hacer de forma nativa sin necesidad de nada de terceros, simple y fácilmente usando AS y UI Scripting.No puedo comentar sobre la respuesta de @ user3439894 debido a una reputación insuficiente, pero la línea correcta para OS X Catalina es:
click checkbox 2 of tab group 1 of group 1 of window 1 of application process "System Preferences"
Tenga en cuenta el bit "... del grupo de pestañas 1 ...", que ahora es necesario.
jakerobb
usuario3439894