6 votos

Cambia el modo de luz/modo de oscuridad y el color de acento de uno a otro

Soy nuevo en esto de los scripts, así que disculpa mi falta de conocimiento. Me gustaría crear un conmutador que cambia de modo de luz y un acento (y resaltar) de color azul a modo oscuro y un acento / color de la luz de rojo. Hasta ahora, he sido capaz de crear la palanca para el modo Luz/Oscuridad solamente, así como cambiar sólo el color de resaltado (pero no alternarlo). Sin embargo, con el color de acento es una nueva característica de MacOS en Mojave, no estoy seguro de cómo proceder, ya que no puedo encontrar el atributo para el color de acento.

5voto

wch1zpink Puntos 11

Tal vez este código applescript ayude un poco

tell application "System Preferences"
    reveal anchor "Main" of pane id "com.apple.preference.general"
end tell

tell application "System Events"
    repeat until exists of checkbox "Dark" of window "General" of application process "System Preferences"
        delay 0.1
    end repeat
    -- Appearance
    click checkbox "Dark" of window "General" of application process "System Preferences"
    -- Accent Color
    click checkbox "Red" of window "General" of application process "System Preferences"
    -- Dropdown Menu For Highlight Color
    click pop up button 1 of window "General" of application process "System Preferences"
    -- Highlight Color
    click menu item "Red" of menu 1 of pop up button 1 of window "General" of application process "System Preferences"
end tell

tell application "System Preferences" to quit

ACTUALIZACIÓN:

Dando un paso más, guarde el siguiente código AppleScript como una aplicación. Cuando se lanza esta nueva aplicación, permite elegir sus diferentes modos de color.

property appearanceMode : {"Light", "Dark"}
property accentColors : {"Blue", "Purple", "Pink", "Red", "Orange", "Yellow", "Green", "Graphite"}
property highlightColors : {"Blue", "Purple", "Pink", "Red", "Orange", "Yellow", "Green", "Graphite", "Other"}

activate
set chosenAppearanceMode to (choose from list appearanceMode ¬
    with title "Please Choose Your Appearance Mode" with prompt ¬
    "Please Choose Your Appearance Mode" OK button name ¬
    "OK" cancel button name "CANCEL") as string

if chosenAppearanceMode is "false" then return

activate
set chosenAccentColor to (choose from list accentColors ¬
    with title "Please Choose Your Accent Color" with prompt ¬
    "Please Choose Your Accent Color" OK button name ¬
    "OK" cancel button name "CANCEL") as string

if chosenAccentColor is "false" then return

activate
set chosenHighlightColor to (choose from list highlightColors ¬
    with title "Please Choose Your Highlight Color" with prompt ¬
    "Please Choose Your Highlight Color" OK button name ¬
    "OK" cancel button name "CANCEL") as string

if chosenHighlightColor is "false" then return

try
    if application "System Preferences" is running then do shell script "killall 'System Preferences'"
end try
repeat until application "System Preferences" is not running
    delay 0.1
end repeat

tell application "System Preferences" to reveal anchor "Main" of pane id "com.apple.preference.general"

tell application "System Events"
    repeat until exists of checkbox chosenAppearanceMode of window "General" of application process "System Preferences"
        delay 0.1
    end repeat
    -- Appearance
    click checkbox chosenAppearanceMode of window "General" of application process "System Preferences"
    -- Accent Color
    click checkbox chosenAccentColor of window "General" of application process "System Preferences"
    -- Dropdown Menu For Highlight Color
    click pop up button 1 of window "General" of application process "System Preferences"
    -- Highlight Color
    click menu item chosenHighlightColor of menu 1 of pop up button 1 of window "General" of application process "System Preferences"
end tell

try
    if application "System Preferences" is running then do shell script "killall 'System Preferences'"
end try

enter image description here


NOTA AL MARGEN: Mi razón para usar el do shell script "killall 'System Preferences'" en lugar de tell application "System Preferences" to quit es... Digamos que, por la razón que sea, System Preferences.app ya está activada (con, por ejemplo, la ventana Compartir/Gestión remota/Configuración del equipo abierta) pero no está visible o no está al frente de la mayoría o lo que sea. En el Editor de script, intentas ejecutar tell application "System Preferences" to reveal anchor "SpeakableItems" of pane id "com.apple.preference.universalaccess" Ese comando se completa sin errores obvios, pero cuando cambia a Preferencias del Sistema, su "ancla revelada" no se revela. Ok, no es gran cosa, es fácil de arreglar. Simplemente insertaré un tell application "System Preferences" to quit antes del comando reveal anchor de mando. Al ejecutar el código actualizado esta vez, se obtiene un error (userCanceledErr:-128). Todo este jaleo se debe a que esa ventana desplegable secundaria de Preferencias del Sistema está abierta. En mi opinión, el do shell script "killall 'System Preferences'" parece ser la mejor solución.

0 votos

Esto es genial! gracias por compartir esto @wch1zpink

0 votos

¿Es una buena razón por la que estás usando if application "System Preferences" is running then do shell script "killall 'System Preferences'" en if application "System Preferences" is running then tell application "System Preferences" to quit ? Parece un poco exagerado gastar y matar una aplicación que normalmente responde de forma fiable a un quit comando .

0 votos

Hay una muy buena razón por la que uso el shell script "killall". Hay veces que Preferencias del Sistema.app abre una ventana secundaria desplegable (por ejemplo... Accesibilidad/ Dictado/ Comandos de Dictado...) <... al elegirla se revela una ventana secundaria. Si una de estas ventanas está abierta mientras se intenta utilizar el comando "decirle a las preferencias del sistema de la aplicación que salga", resulta con un error y no se cierra. Así que para evitar eso, ahora siempre uso el comando "killall"

2voto

Oliver Puntos 11

Acabo de intentar hacer lo mismo y creo que todavía no es posible. En la aplicación script Editor se puede ver la "biblioteca" para la documentación sobre los eventos del sistema. En ella se menciona el dark mode y highlight color pero no el accent color .

objeto de preferencias de apariencia : Una colección de preferencias de apariencia propiedades
- apariencia (azul/gráfico) : el aspecto general de los botones, los menús y las ventanas - suavizado de la fuente (booleano) : ¿Está activado el suavizado de la fuente?
- estilo de suavizado de las fuentes (automático/ligero/medio/estándar/fuerte) : el método utilizado para suavizar las fuentes
- color de resaltado (azul/oro/grafito/verde/naranja/morado/rojo/plata o color) : color utilizado para resaltar el texto y las listas seleccionadas
- límite de solicitudes recientes (entero) : el número de solicitudes recientes a seguir - límite de documentos recientes (entero) : el número de documentos recientes a seguir
- límite de servidores recientes (entero) : el número de servidores recientes a rastrear
- acción de la barra de desplazamiento (saltar hasta aquí/saltar a la página siguiente) : la acción que se realiza al hacer clic en la barra de desplazamiento
- desplazamiento suave (booleano) : ¿Se utiliza el desplazamiento suave?
- modo oscuro (booleano) Uso de la barra de menús oscura y del dock

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