6 votes

Basculer entre le mode clair/sombre ET la couleur d'accentuation d'un à l'autre

Je suis nouveau dans le scripting, donc excusez mon manque de connaissance. Je voudrais créer un bascule qui passe du mode clair et une couleur d'accentuation (et de mise en évidence) de bleu au mode sombre et une couleur d'accentuation/de mise en évidence de rouge. Jusqu'à présent, j'ai réussi à créer le bascule pour le mode clair/sombre seulement, ainsi qu'à changer juste la couleur de mise en évidence (mais sans le basculer). Cependant, avec la couleur d'accentuation étant une nouvelle fonctionnalité de macOS dans Mojave, je ne sais pas comment procéder car je ne trouve pas l'attribut pour la couleur d'accentuation.

5voto

wch1zpink Points 6067

Peut-être que ce code AppleScript aidera un peu

tell application "Préférences Système"
    reveal anchor "Principal" of pane id "com.apple.preference.general"
end tell

tell application "Événements Système"
    repeat until exists of checkbox "Dark" of window "Général" of application process "Préférences Système"
        delay 0.1
    end repeat
    -- Apparence
    click checkbox "Dark" of window "Général" of application process "Préférences Système"
    -- Couleur d'accent
    click checkbox "Red" of window "Général" of application process "Préférences Système"
    -- Menu déroulant pour la couleur de surbrillance
    click pop up button 1 of window "Général" of application process "Préférences Système"
    -- Couleur de surbrillance
    click menu item "Red" of menu 1 of pop up button 1 of window "Général" of application process "Préférences Système"
end tell

tell application "Préférences Système" to quit

MISE À JOUR:

Allons un peu plus loin en enregistrant ce code AppleScript suivant en tant qu'application. Lorsque cette nouvelle application est lancée, elle permet de choisir vos différents modes de couleurs.

property appearanceMode : {"Clair", "Sombre"}
property accentColors : {"Bleu", "Violet", "Rose", "Rouge", "Orange", "Jaune", "Vert", "Graphite"}
property highlightColors : {"Bleu", "Violet", "Rose", "Rouge", "Orange", "Jaune", "Vert", "Graphite", "Autre"}

activate
set chosenAppearanceMode to (choose from list appearanceMode ¬
    with title "Veuillez choisir votre mode d'apparence" with prompt ¬
    "Veuillez choisir votre mode d'apparence" OK button name ¬
    "OK" cancel button name "ANNULER") as string

if chosenAppearanceMode is "false" then return

activate
set chosenAccentColor to (choose from list accentColors ¬
    with title "Veuillez choisir votre couleur d'accent" with prompt ¬
    "Veuillez choisir votre couleur d'accent" OK button name ¬
    "OK" cancel button name "ANNULER") as string

if chosenAccentColor is "false" then return

activate
set chosenHighlightColor to (choose from list highlightColors ¬
    with title "Veuillez choisir votre couleur de surbrillance" with prompt ¬
    "Veuillez choisir votre couleur de surbrillance" OK button name ¬
    "OK" cancel button name "ANNULER") as string

if chosenHighlightColor is "false" then return

try
    if application "Préférences Système" is running then do shell script "killall 'System Preferences'"
end try
repeat until application "Préférences Système" is not running
    delay 0.1
end repeat

tell application "Préférences Système" to reveal anchor "Principal" of pane id "com.apple.preference.general"

tell application "Événements Système"
    repeat until exists of checkbox chosenAppearanceMode of window "Général" of application process "Préférences Système"
        delay 0.1
    end repeat
    -- Apparence
    click checkbox chosenAppearanceMode of window "Général" of application process "Préférences Système"
    -- Couleur d'accent
    click checkbox chosenAccentColor of window "Général" of application process "Préférences Système"
    -- Menu déroulant pour la couleur de surbrillance
    click pop up button 1 of window "Général" of application process "Préférences Système"
    -- Couleur de surbrillance
    click menu item chosenHighlightColor of menu 1 of pop up button 1 of window "Général" of application process "Préférences Système"

image description


NOTE ANNEXE: Ma raison d'utiliser la commande do shell script "killall 'System Preferences'" plutôt que tell application "Préférences Système" to quit est... Disons que, pour une raison quelconque, System Preferences.app est déjà activé (avec, par exemple, la fenêtre Partage/ Gestion à distance/ Paramètres d'ordinateur ouverte) mais pas visible ou pas au premier plan ou autre. Dans Script Editor, vous essayez d'exécuter tell application "Préférences Système" to reveal anchor "SpeakableItems" of pane id "com.apple.preference.universalaccess" Cette commande se termine sans erreurs évidentes mais lorsque vous basculez vers Préférences Système, votre "ancre révélée" n'est pas révélée. Ok, pas de problème, facile à résoudre. Je vais insérer une commande tell application "Préférences Système" to quit avant la commande reveal anchor. En exécutant le code mis à jour cette fois, vous obtenez une erreur (userCanceledErr:-128). Tout ce tracas est dû au fait que la fenêtre secondaire déroulante dans Préférences Système est ouverte. À mon avis, la commande do shell script "killall 'System Preferences'" semble être la meilleure solution.

2voto

Oliver Points 21

J'ai essayé de faire la même chose et je crois que cela n'est pas possible pour l'instant. Dans l'application Script Editor, vous pouvez voir la "bibliothèque" pour la documentation sur les événements système. Il mentionne le mode sombre et la couleur de surlignage, mais pas la couleur d'accentuation.

objet de préférences d'apparencen : Une collection de propriétés de préférences d'apparence - apparence (bleu/gris) : l'aspect général des boutons, menus et fenêtres - lissage des polices (booléen) : Le lissage des polices est-il activé ?
- style de lissage des polices (automatique/léger/moyen/standard/fort) : la méthode utilisée pour lisser les polices
- couleur de surlignage (bleu/or/gri/vert/orange/violet/rouge/argent ou couleur) : couleur utilisée pour surligner texte sélectionné et listes
- limite des applications récentes (entier) : le nombre d'applications récentes à suivre - limite des documents récents (entier) : le nombre de documents récents à suivre
- limite des serveurs récents (entier) : le nombre de serveurs récents à suivre
- action de la barre de défilement (saut ici/saut vers la page suivante) : l'action effectuée en cliquant sur la barre de défilement
- défilement fluide (booléen) : Le défilement fluide est-il utilisé ?
- mode sombre (booléen) : utiliser la barre de menu et le dock en mode sombre

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X