¿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?
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.
Desafortunadamente, el comando de la línea de comando defaults
, que puede read
y/o write
el valor de la mouseDriverCursorSize
clave en el archivo com.apple.universalaccess
.plist , el write
comando , por ejemplo, defaults write com.apple.universalaccess mouseDriverCursorSize 2.5
no 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 osascript
para 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:
theCursorSize
es 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
cmcs
theCursorSize
en su tamaño de cursor preferido.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
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, cmcs
es 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.388884782791
se 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 .
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.
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):
o use la aplicación Shortcuts presentada en Monterey ( enlace ).
osascript -l JavaScript FILE.js
también funcionaría, supongo.
Gris