Tengo un script simple que he usado durante años para activar y desactivar la tecla de función (fn). La casilla de verificación se encuentra en Preferencias del sistema > Teclado > Pestaña de teclado > Tercera casilla de verificación hacia abajo. Desafortunadamente, con OS11 dejó de funcionar. Ahora modifiqué el script, pero genera un mensaje de error cada vez que lo ejecuto.
Soy un novato, por lo que puede haber una forma más elegante de hacer esto que el script a continuación: es simplemente lo que he estado usando.
tell application "System Preferences"
reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events"
tell process "System Preferences"
click checkbox "Use F1, F2, etc. keys as standard function keys" of tab group 1 of window 1
end tell
end tell
quit application "System Preferences"
Este es el error de índice no válido que recibo:
Extrañamente, la secuencia de comandos funciona cuando elimino la línea <quit application "system prefer"> y ejecuto la secuencia de comandos desde el Editor de secuencias de comandos con las Preferencias del sistema abiertas (para poder ver lo que sucede). Cuando cierro las Preferencias del sistema y vuelvo a agregar en la última línea, <salir de las "preferencias del sistema" de la aplicación>, este es el error que aparece en el Editor de secuencias de comandos:
error "Los eventos del sistema obtuvieron un error: no se puede obtener el grupo de pestañas 1 de la ventana 1 del proceso "Preferencias del sistema". Índice no válido". número -1719 del grupo de pestañas 1 de la ventana 1 del proceso "Preferencias del sistema"
¡Cualquier ayuda o consejo es muy apreciado!
Dependiendo de su Mac, el nombre de la casilla de verificación puede ser diferente (no me funcionó en mi Macbook Air). Usé el índice en la solución sugerida, por lo que debería funcionar en todas las Mac hasta que Apple mueva la casilla de verificación en el panel.
También para su información, la solución dejó de funcionar debido a una condición de carrera. Podría agregar un retraso adicional en su solución inicial y habría funcionado.
Aquí hay un script con índice:
tell application "System Preferences"
reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events"
tell process "System Preferences"
repeat until checkbox 3 of tab group 1 of window 1 exists
delay 0.1
end repeat
click checkbox 3 of tab group 1 of window 1
end tell
end tell
quit application "System Preferences"
Este código de AppleScript me funciona en Big Sur.
tell application "System Preferences"
reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events"
tell process "System Preferences"
repeat until checkbox "Use F1, F2, etc. keys as standard function keys on external keyboards" of tab group 1 of window "Keyboard" exists
delay 0.1
end repeat
click checkbox "Use F1, F2, etc. keys as standard function keys on external keyboards" of tab group 1 of window "Keyboard"
end tell
end tell
quit application "System Preferences"
Si esa versión arroja errores... aquí hay una versión alternativa que también funciona para mí.
tell application "System Preferences"
reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences"
repeat until checkbox 3 of tab group 1 of window "Keyboard" exists
delay 0.1
end repeat
click checkbox 3 of tab group 1 of window "Keyboard"
end tell
quit application "System Preferences"
Tuve problemas similares con mi secuencia de comandos de resolución de pantalla de expansión/compresión y lo solucioné refactorizando para usar Tell directamente en los grupos de pestañas. Tal vez puedas probar:
tell application "System Preferences"
reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events"
tell process "System Preferences"
tell tab group 1 of window "Keyboard"
click checkbox "Use F1, F2, etc. keys as standard function keys"
end tell
end tell
end tell
quit application "System Preferences"
Como referencia, mi caso fue este script que funcionó antes de Big Sur
on run {input, parameters}
activate application "System Preferences"
tell application "System Events"
tell process "System Preferences"
click button "Displays" of scroll area 1 of window "System Preferences"
delay 0.5
click radio button "Scaled" of radio group 1 of tab group 1 of window "LG ULTRAWIDE"
delay 0.5
select row 4 of table 1 of scroll area 1 of tab group 1 of window "LG ULTRAWIDE"
end tell
delay 1
quit application "System Preferences"
end tell
return input
end run
y los cambios que tuve que hacer para que funcionara después de Big Sur
on run {input, parameters}
activate application "System Preferences"
tell application "System Events"
tell process "System Preferences"
click button "Displays" of scroll area 1 of window "System Preferences"
delay 0.5
tell tab group 1 of window "LG ULTRAWIDE"
click radio button "Scaled"
delay 0.5
select row 4 of table 1 of scroll area 1
end tell
end tell
delay 1
quit application "System Preferences"
end tell
return input
end run
Nandayo
Nandayo
wch1zrosa