2 votos

¿Es posible cambiar el ajuste "Ignorar el trackpad incorporado cuando el ratón está presente" con un atajo de teclado?

Me gusta usar mi MacBook con un ratón USB la mayor parte del tiempo, y mantengo marcada la opción "Ignorar el trackpad integrado cuando hay un ratón o un trackpad inalámbrico" para evitar mover accidentalmente el cursor mientras escribo. Sin embargo, de vez en cuando es útil volver a activarlo para ciertas tareas, y me gustaría poder hacerlo con un atajo de teclado.

He intentado grabar el proceso de activación/desactivación 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 3 de la ventana "Accesibilidad" del proceso de aplicación "Preferencias del Sistema"'.

También he tratado de establecer "USBMouseStopsTrackpad" en los valores predeterminados a 0 y 1 en el terminal, pero no parece hacer 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.

Disculpa si esto es realmente obvio y no lo estoy viendo. Todavía no estoy muy familiarizado con esta máquina. Soy consciente de esta pregunta:

¿Es posible desactivar 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.

2voto

user3439894 Puntos 5883

Esto puede hacerse nativamente sin necesidad de recurrir a terceros, de forma simple y sencilla utilizando AppleScript y Guiones de interfaz de usuario .

El ejemplo AppleScript código puede aplicarse de diferentes maneras, como un script , un AppleScript aplicación o como Automatizador servicio Este último puede tener un atajo de teclado asignado a ella.

Específicamente cómo implementar como Automatizador servicio ha sido cubierta más veces que una Google La búsqueda debería proporcionar una respuesta sobre cómo hacerlo. Sé que he escrito instrucciones para ello más veces de las que puedo recordar.

Lo siguiente ejemplo AppleScript código me funciona y activa la función " Ignora el trackpad integrado cuando hay un ratón o un trackpad inalámbrico: " casilla de verificación :

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 el valor de la delay comandos puede necesitar ser ajustado para su sistema, y o adicional delay comandos puede ser necesario o no. Ajustar valores de y o añadir/eliminar el delay comandos según corresponda.

  • Esto fue probado y funciona bajo MacOS High Sierra Sin embargo, hay que tener en cuenta que dependiendo de la versión de OS X/MacOS que está ejecutando, el click checkbox ... línea de código puede necesitar ser ajustado dependiendo de la versión del OS .

Por ejemplo, con MacOS Catalina que necesitarías usar:

click checkbox 2 of tab group 1 of group 1 of window 1 of application process "System Preferences"


Nota: El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>es sólo eso y no contiene ningún <em>tratamiento de errores </em>según corresponda. Corresponde al usuario añadir cualquier <em>tratamiento de errores </em>como sea apropiado, necesario o deseado. Eche un vistazo a la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>intente </strong></a><em>declaración </em>y <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>error </strong></a><em>declaración </em>en el <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guía del lenguaje AppleScript </strong></a>. Véase también, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Trabajar con errores </strong></a>. Además, el uso del <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer"><strong>retraso </strong></a><em>comando </em>puede ser necesario entre eventos cuando sea apropiado, por ejemplo <code>delay 0.5</code> con el <em>valor </em>de la <em>retraso </em>ajustado apropiadamente.

0 votos

¿Por qué su script sale primero de Preferencias del Sistema?

1 votos

@JakeRobb, Primero se retira Preferencias del sistema porque está utilizando Secuencias de comandos de interfaz de usuario y si Preferencias del sistema ya está abierto y a hoja modal , que los hay, entonces sin ella el script fracasaría. Dicho esto, es cierto que las posibilidades de que eso ocurra son escasas, pero siempre es mejor escribir código que pueda manejar las posibilidades.

1voto

Joonas Puntos 216

La macroscopia es un poco extraña, pero es totalmente posible.

Yo recomendaría usar Maestro del teclado por esto. Es una especie de Automator.... No es gratuito, pero tiene una prueba y definitivamente vale la pena. Usted podría hacer esto mismo en Automator o Applescript también, pero es mucho más simple en KBM.

El KBM tiene unas acciones estupendas a la hora de navegar por el gui:

  • Pausa hasta
    • La acción Pausa hasta hace una pausa hasta que se cumplan los criterios de las condiciones.
  • Pulsar un botón
    • La acción Presionar un botón presiona un botón nombrado en la ventana frontal.
  • Seleccionar o mostrar un elemento del menú
    • La acción Seleccionar o Mostrar un elemento del menú selecciona un elemento del menú O muestra (abre) un menú en la barra de menús principal.
  • Insertar texto escribiendo
    • La acción Insertar texto escribiendo convierte el texto plano (simple) en pulsaciones de teclas y luego escribe cada una de ellas individualmente. Sólo funciona con caracteres que se pueden escribir en el teclado con una o dos pulsaciones (por ejemplo, Opción-e e suele escribir é, y Keyboard Maestro puede duplicar esa escritura).
  • Escribir una pulsación de tecla
    • La acción de escribir una pulsación le permite escribir una sola pulsación, prácticamente cualquier tipo de pulsación que pueda escribir en el teclado.
  • Mover o hacer clic con el ratón
    • La acción Mover o hacer clic con el ratón permite mover, hacer clic o mover y hacer clic con el ratón utilizando cualquier botón del ratón, y opcionalmente arrastrando.
    • Esto es algo relativamente pequeño, pero creo que es genial que pueda restaurar la ubicación del ratón después de que se complete la acción. Sin embargo, esa opción está un poco escondida.

Los pasos para producir la acción junto con ligeras explicaciones:

Imagen de los macro pasos (Enlace)

No es la macro más rápida de la historia (~3 segundos), pero seguro que es mejor que bucear en los menús manualmente.

Mientras haces esta macro, asegúrate de ejecutar la macro inacabada después de cada paso para asegurarte de que todo está exactamente como debe estar.

  1. Nombre de la acción: Activate a Specific Application

    • Activar: System Preferences
    • Abre las Preferencias del Sistema

  2. Nombre de la acción: Pause Until

    • Nuevo Estado: Menu Condition
    • Un elemento del menú: con este nombre Accessibility está activado
    • Esto más o menos hace que la ventana esté activa y que la Accesibilidad sea un elemento de menú por el que se pueda navegar.

  3. Nombre de la acción: Move a Window

    • Muévete a: 0 0
    • Esto asegura que la ventana de preferencias esté en su pantalla principal. Es importante porque si en algún momento arrastras manualmente la ventana a tu pantalla secundaria, todas las acciones que dependen de las coordenadas fallarían sin esto y sin la siguiente 'Acción de mover una ventana'.

  4. Nombre de la acción: Select or Show a Menu Item

    • Seleccione el menú en: System Preferences
    • Título del menú: View
    • Elemento del menú Accessibility
    • También puede hacer clic en Menu en la parte superior izquierda de esta acción para elegir el elemento de menú desde allí, siempre que Preferencias del Sistema esté abierto. Eso hace que sea súper fácil simular que se hace clic en cualquier elemento del menú.

  5. Nombre de la acción: Pause

    • Pausa para : 1 segundos.
    • Esto es un poco misterioso. Quería usar la pausa hasta que el título de la ventana sea 'Accesibilidad', que funciona si vas a la página de Accesibilidad en Preferencias del Sistema y marcas la acción. KBM dice que el valor es verdadero cuando estás allí. Sin embargo, seguía fallando cuando ejecutaba la macro. También probé con la condición "Pausa hasta el píxel" y también falló. Supongo que la condición se hizo verdadera antes de que fuera posible cualquier interacción El objetivo de usar la acción "Pausa hasta" es asegurarse de que lo que queramos hacer a continuación se active en el momento adecuado. Cuando se utiliza una pausa estática o ninguna pausa, existe la posibilidad de que ocasionalmente se tarde más de lo habitual y la pulsación simulada de la tecla se quede en el éter y la macro se atasque o, en el peor de los casos, haga algo totalmente diferente, como enviar una alerta de misil a todos los hawaianos o algo así. Los pocos puntos en los que utilicé una pausa estática deberían estar bien, ya que están todos en la misma página de la misma ventana, así que no no debería ser cualquier problema extraño provocado por estos, pero si no hace lo que se supone que debe hacer: aumentar el retraso estático. También puede añadir "Pausa" entre algunas de las otras acciones que no están separadas por un retardo, si no parece funcionar. Las máquinas más lentas suelen requerir un mayor retardo.

  6. Nombre de la acción: Type a Keystroke

    • Simular la pulsación de una tecla: Cmd+F
    • Haga clic en la opción Simular entrada de teclado y pulse las teclas de acceso directo.
    • Si esta ventana ya está activa, esto hace que la posición de la búsqueda sea por defecto para que la siguiente pulsación de tecla vaya al lugar correcto

  7. Nombre de la acción: Move a Window

    • Cambiar Move to a Center
    • Esto asegura que todas las acciones que utilizan coordenadas llegan a los puntos correctos.

  8. Nombre de la acción: Type a Keystroke

    • Simular la pulsación de una tecla: Tab
    • Puede seleccionarlo en la lista desplegable o escribirlo.
    • Activa la lista de la izquierda de System Preferences > Accessibility ventana.

  9. Nombre de la acción: Pause Until

    • Nuevo Estado: Pixel Condition
    • Haga clic en el botón Get
      • Te dará 5 segundos para colocar el ratón encima del color.
      • Activa la ventana y pasa el ratón por encima del borde azul para obtener ese color
      • enter image description here
    • Esto sólo asegura que la siguiente acción se active en el momento adecuado.

  10. Nombre de la acción: Type a Keystroke

    • Simular la pulsación de una tecla: End
    • Puede seleccionarlo en la lista desplegable o escribirlo.
    • Activa la lista de la izquierda de System Preferences > Accessibility ventana.

  11. Nombre de la acción: Type a Keystroke

    • Simular la pulsación de una tecla: Alt+Down Arrow
    • Haga clic en la opción Simular entrada de teclado y pulse las teclas de acceso directo.
    • Este menú de la izquierda puede retener el último elemento visitado la próxima vez que lo abra, así que lo hacemos para asegurarnos de que el primer elemento está seleccionado o de lo contrario la siguiente pausa hasta podría fallar ocasionalmente.
  12. Nombre de la acción: Pause Until

    • Nuevo Estado: Pixel Codition
    • De nuevo lo mismo que con la última condición de Pausa hasta el píxel. Pulse el botón Get activar la ventana de Accesibilidad y elegir un color de fondo del elemento activo.
    • enter image description here
    • Esto sólo asegura que la siguiente acción se active en el momento adecuado.

  13. Acción: Move or Click Mouse

    • En relación con el Absolute position

    • Haga clic en el menú del engranaje en la esquina superior derecha de la acción y seleccione Restore Mouse Location .

    • Pulse el botón Get y pase el ratón por encima de "Mouse & Trackpad".

    • He optado por usar la posición relativa a la absoluta, ya que las condiciones de los píxeles no pueden ser relativas a la ventana actual... Realmente no importa mucho.

    • enter image description here

  14. Nombre de la acción: Pause Until

    • Nuevo Estado: Pixel Condition
    • De nuevo lo mismo que con la última condición de Pausa hasta el píxel. Pulse el botón Get activar la ventana de Accesibilidad y elegir un color de fondo del elemento activo.
    • enter image description here
    • Esto sólo asegura que la siguiente acción se active en el momento adecuado.

  15. Acción: Move or Click Mouse

    • En relación con el Absolute position

    • Haga clic en el menú del engranaje en la esquina superior derecha de la acción y seleccione Restore Mouse Location .

    • Pulse el botón Get y pase el ratón por encima del Ignore built-in tackpad when mouse or wireless trackpad is present

    • He optado por usar la posición relativa a la absoluta, ya que las condiciones de los píxeles no pueden ser relativas a la ventana actual... Realmente no importa mucho.

    • enter image description here

  16. Nombre de la acción: Pause

    • Pausa para .6 segundos
    • Es posible que quieras alargarlo si sientes que no puedes ver el cambio de valor y te gustaría... Este retraso se añadió por esa razón, pero pasa bastante rápido. Intenta algo como 1 segundo...

  17. Nombre de la acción: Quit a Specific Application

    • Renuncia: System Preferences .
    • Es posible que quiera desactivar esta acción para probarla.

0 votos

Usted dijo: "Estoy bastante seguro de que las soluciones de línea de comandos están bloqueados por SIP", así SIP no tiene absolutamente nada que ver con por qué el uso de defaults para modificar un valor de la clave en un .plist no consigue el objetivo. El sitio defaults comando se volvió casi inútil a partir de OS X 10.8 y posteriores, donde se introdujeron cambios importantes que rompieron la eficacia de su uso en comparación con versiones anteriores de OS X. Todavía se puede utilizar en algunos casos, pero no tantos como antes, donde solía tener efecto inmediato sin tener que matar necesariamente un proceso para que el cambio tuviera efecto.

0 votos

@user3439894, supongo que no funciona en esta situación ya que no lo has publicado como respuesta.

0 votos

Ni siquiera intenté usar defaults en este caso de uso. Lo que quería decir es que la afirmación que he citado en mi comentario anterior es errónea. SIP no bloquea el defaults comando de tomar medidas sobre .plist archivos en ~/Library/Preferences . Debería leer: Acerca de la protección de la integridad del sistema en su Mac

1voto

jl6 Puntos 1144

No puedo comentar la respuesta de @user3439894 por falta de reputación, 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.

0 votos

¿Por qué no edita el mensaje en cuestión? Los comentarios son para las cosas que no están claras en, suena como usted puede hacer que la edición / adición utilizando el comando de edición.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X