¿Cómo aumentar el tamaño del cursor mediante programación?

¿Cómo aumento el tamaño del cursor mediante programación? Sé cómo hacerlo manualmente . ¿Existe un script que pueda hacerlo desde la línea de comandos en lugar de un AppleScript que lo haga desde la GUI?

¿Por qué?

Hago muchas personalizaciones en mi Mac, pero también creo nuevos usuarios todo el tiempo. Para ahorrar tiempo, me gustaría lograr ciertas personalizaciones mediante programación.

Otra buena razón para hacer esto mediante programación es poder volver a activar un cursor que ha desaparecido con un clic desde el Dock.

Respuestas (2)

Desafortunadamente, el comando de la línea de comando defaults , que puede ready/o writeel valor de la mouseDriverCursorSizeclave en el archivo com.apple.universalaccess .plist , el write comando , por ejemplo, defaults write com.apple.universalaccess mouseDriverCursorSize 2.5no tiene un efecto inmediato y puede sobrescribirse antes de que el cambio surta efecto. Nota: La mouseDriverCursorSize clave en el archivo com.apple.universalaccess .plist no existe a menos que se haya cambiado previamente el valor predeterminado .

Si bien dijiste que no querías ir a la ruta de la GUI con, por ejemplo, AppleScript , ¿qué tal si divides la diferencia y lo haces desde la línea de comando usando osascriptpara procesar el código AppleScript , que hace el cambio desde las Preferencias del Sistema , pero sin ser interrumpido? por la interfaz de usuario de preferencias del sistema . De hecho, suponiendo que System Preferences Dock Tile todavía esté presente, como es su valor predeterminado, todo lo que verá es que System Preferences Dock Tile rebota una vez, y no System Preferences UI . (Esto supone que no estaba abierto para empezar).

Si eso es aceptable , entonces el siguiente código AppleScript guardado como un ejecutable de línea de comando hará el trabajo:

  • Nota: El valor que se muestra theCursorSizees el que está configurado actualmente en mi sistema.
#!/usr/bin/osascript

    -- # set theCursorSize between 1.0 and 4 (Valid intermediate values may run out 12 decimal places.)

set theCursorSize to 1.388884782791

    -- # Get the system minor version number, as an integer.

set theSystemVersion to system version of (system info)
set TID to AppleScript's text item delimiters
set AppleScript's text item delimiters to {"."}
set theMinorSystemVersion to text item 2 of theSystemVersion as integer
set AppleScript's text item delimiters to TID

    -- # Change the size of the mouse cursor.

tell application "System Preferences"
    reveal anchor "Seeing_Display" of pane id "com.apple.preference.universalaccess"
    delay 0.5   -- # Modify as/if necessary. Value is in seconds as a decimal number.
    tell application "System Events"
        if theMinorSystemVersion is equal to 8 then
            set value of value indicator 1 of slider 2 of group 1 of window "Accessibility" of application process "System Preferences" to theCursorSize
        else if theMinorSystemVersion is equal to 9 then
            set value of value indicator 1 of slider 2 of window "Accessibility" of application process "System Preferences" to theCursorSize
        else if theMinorSystemVersion is greater than 9 and theMinorSystemVersion is less than 13 then
            set value of value indicator 1 of slider 1 of window "Accessibility" of application process "System Preferences" to theCursorSize
        end if
    end tell
    quit
end tell

Nota: Tal como está codificado, este script funciona con OS X 10.8 hasta macOS 10.12 . No he probado esto en macOS High Sierra , sin embargo, si nada ha cambiado entre macOS 10.12 y macOS 10.13 con este objeto en particular , entonces el less than 13 then segmento de código se puede cambiar a less than 14 then, o si lo prefiere, acortar la línea de código a solo:

else if theMinorSystemVersion is greater than 9 then

Para crear un ejecutable de línea de comandos que contenga el código AppleScript anterior , haga lo siguiente en la Terminal :

touch cmcs
open cmcs
  • Copie y pegue el código AppleScript anterior en el documento abierto.cmcs
  • Establezca el valor de theCursorSizeen su tamaño de cursor preferido.
  • Guarde el documento, presionando: ⌘S

De vuelta en Terminal , haz cmcs ejecutable :

chmod u+x cmcs

Ahora el cmcs ejecutable de la línea de comando se puede ejecutar escribiendo:./cmcs

  • Nota: Si coloca el cmcs ejecutable de la línea de comando en una ubicación definida dentro de la PATH variable de entorno , puede omitir el encabezado ./y tener que escribir /path/to/cmcs. También tenga en cuenta que el nombre de, cmcses para cambiar el tamaño del cursor del mouse , y puede ser lo que quiera que sea de otra manera.

Notas adicionales:

El valor de mouseDriverCursorSize la clave en el archivo com.apple.universalaccess .plist se almacena redondeado al sexto lugar decimal, por ejemplo, 1.388884782791se guarda como1.388885

Para obtener el valor completo , en el Editor de scripts , ejecute el siguiente script :

set theSystemVersion to system version of (system info)
set TID to AppleScript's text item delimiters
set AppleScript's text item delimiters to {"."}
set theMinorSystemVersion to text item 2 of theSystemVersion as integer
set AppleScript's text item delimiters to TID

tell application "System Preferences"
    reveal anchor "Seeing_Display" of pane id "com.apple.preference.universalaccess"
    delay 0.5 -- # Modify as/if necessary. Value is in seconds as a decimal number.
    tell application "System Events"
        if theMinorSystemVersion is equal to 8 then
            get value of value indicator 1 of slider 2 of group 1 of window "Accessibility" of application process "System Preferences"
        else if theMinorSystemVersion is equal to 9 then
            get value of value indicator 1 of slider 2 of window "Accessibility" of application process "System Preferences"
        else if theMinorSystemVersion is greater than 9 and theMinorSystemVersion is less than 13 then
            get value of value indicator 1 of slider 1 of window "Accessibility" of application process "System Preferences"
        end if
    end tell
    quit
end tell

Actualizar al comentario de la dirección:

Si desea ejecutar esto cada vez que un Usuario inicia sesión , yo haría lo siguiente:

En Automator, cree un nuevo flujo de trabajo de aplicación y agréguele una acción Ejecutar AppleScript .

En la acción Ejecutar AppleScript , reemplace y con todo menos el shebang ( ) del primer código AppleScript . El shebang no es necesario ya que se ejecuta en una acción Ejecutar AppleScript frente a una acción Ejecutar script de Shell .(* Your script goes here *)return input#!/usr/bin/osascript

Guarde el flujo de trabajo de la aplicación Automator como, por ejemplo , Establecer el tamaño del cursor del mouse en la carpeta /Aplicaciones .

En Preferencias del Sistema , haz dos cosas...

  • En Usuarios y grupos > seleccione Usuario de destino > Elementos de inicio de sesión y agregue Establecer tamaño del cursor del mouse a la lista de Elementos de inicio de sesión .

  • En Seguridad y privacidad > Privacidad > Accesibilidad , agregue Establecer tamaño del cursor del mouse a la lista Permitir que las siguientes aplicaciones controlen su computadora .

    • Nota: lo anterior es para OS X 10.9 y posteriores. Para OS X 10.8, Accesibilidad y marque la casilla Habilitar acceso para dispositivos de asistencia .

Luego, cada vez que el usuario inicie sesión , el ajuste del tamaño del cursor del mouse se ejecutará y funcionará según lo programado.

un comentario: me está dando un script ejecutable... pero ¿hay alguna manera de hacer que este script se ejecute de forma predeterminada cada vez que un usuario inicia sesión o algo así? es decir, de la misma manera que mi ~/.bash_profile se ejecuta y hace que mi terminal sea colorido, etc. ¿hay alguna manera de hacer que este script también se ejecute automáticamente?
@abbood, consulte la sección Actualizar el comentario de la dirección:. agregado al final de la respuesta original. para atender tu comentario.
aquí hay una pregunta de seguimiento: apple.stackexchange.com/questions/299118/…
después de ejecutar este comando, vi que el ícono en el muelle rebotaba como mencionaste, pero el cursor permaneció del mismo tamaño

Aquí está el código Javascript para macOS Monterey:

function fn() {
    const cursorSizeSmall = 1 
    const cursorSizeLarge = 4
    
    const isRunningSystemPreferences = Application('System Preferences').running()
    Application('System Preferences').panes.byId('com.apple.preference.universalaccess').anchors.byName('Seeing_Cursor').reveal()
    const process = Application('System Events').processes.byName('System Preferences')
    while (process.windows.length == 0) {}
    const window = process.windows[0]
    while (window.groups.length == 0) {}
    const group = window.groups[0]
    while (group.tabGroups.length == 0) {}
    const tabGroup = group.tabGroups[0]
    while (tabGroup.sliders.length == 0) {}
    const slider = tabGroup.sliders[0]
    if (slider.value() == cursorSizeSmall) {
        slider.value = cursorSizeLarge
    } else {
        slider.value = cursorSizeSmall
    }
    if (!isRunningSystemPreferences) {
        Application('System Preferences').quit()
    }
}

fn()

Puede usar este fragmento en la aplicación "Editor de secuencias de comandos" para crear una nueva secuencia de comandos JXA (asegúrese de configurar el idioma en JavaScript):

ingrese la descripción de la imagen aquí

o use la aplicación Shortcuts presentada en Monterey ( enlace ).

¿Cómo se puede usar/llamar esto?
@nohillside revisa mis actualizaciones
Excelente. Así que osascript -l JavaScript FILE.jstambién funcionaría, supongo.