26 votes

Comment activer / désactiver Ne pas déranger à partir de la coquille sur Mavericks?

Je voudrais basculer le mode Ne pas déranger dans le centre de notifications avec un raccourci clavier.

J'utilise BetterTouchTool pour quelques raccourcis clavier supplémentaires mais il ne prend pas en charge l'activation/désactivation des notifications dans les options par défaut.

Il y a une option pour exécuter une commande dans le terminal, donc je demande ici comment activer/désactiver Ne pas déranger depuis le terminal ?

J'ai trouvé Planifier le mode Ne pas déranger dans OS X Mountain Lion avec Automator et j'ai essayé d'exécuter les commandes mais cela ne semblait pas fonctionner.

0 votes

Puisque vous demandez vraiment comment le faire à partir d'un clavier, plutôt que de le faire à partir de l'interface en ligne de commande, vous devriez probablement changer le titre de la question. Ou si je me trompe, veuillez me corriger!

0 votes

En fait, laisse tomber... Je n'avais pas réalisé que "betterTouchTool" nécessite le terminal pour ce que tu veux.

0 votes

J'ai principalement demandé comment le faire à partir de la coquille. Le faire à partir des préférences système résout mon cas, mais c'est plus amusant de savoir comment le faire à partir de la coquille.

23voto

Ryan Points 311

Vous pouvez simplifier la réponse fournie par razvanz en utilisant l'argument -currentHost pour la commande "defaults".

Activer Ne pas déranger:

defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturb -boolean true
defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturbDate -date "`date -u +\"%Y-%m-%d %H:%M:%S +0000\"`"
killall NotificationCenter

(via https://heyfocus.com/blog/enabling-do-not-disturb-mode/)

Désactiver Ne pas déranger:

defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturb -boolean false
killall NotificationCenter

Maintenant, vous pourriez facilement regrouper ceci dans un script pour activer ou désactiver "Ne pas déranger" sur n'importe quelle machine, indépendamment des préférences système. Voici un exemple de comment faire:

#!/bin/bash

set -eou pipefail

# De https://heyfocus.com/enabling-do-not-disturb-mode et
# https://apple.stackexchange.com/questions/145487

if [[ $(defaults -currentHost read ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturb) -eq 0 ]]; then
  defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturb -boolean true
  defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturbDate -date "`date -u +\"%Y-%m-%d %H:%M:%S +000\"`"
  killall NotificationCenter
  echo "Ne pas déranger est activé. Exécutez $0 pour le désactiver (OS X le désactivera automatiquement demain)."
else
  defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturb -boolean false
  killall NotificationCenter
  echo "Ne pas déranger est désactivé. Exécutez $0 pour le réactiver."
fi

Source: https://gist.github.com/ryangreenberg/5267f68a8e7b07ea66370b4eb5580ab9

2 votes

Bug visuel mineur! [Remarqué pour les personnes qui regardent la couleur]: J'ai essayé ceci et ça fonctionne plus ou moins. J'ai mis en sourdine certaines notifications pendant 5 minutes, puis j'ai activé Ne pas déranger pour les notifications et j'ai ensuite exécuté les commandes sous "Désactiver Ne pas déranger". D'un côté, l'icône est restée grisée, mais d'un autre côté, cela semble avoir fonctionné autrement - les notifications sont apparues en quelques minutes. Deuxième test : J'ai activé Ne pas déranger pour les notifications (sans mettre en sourdine quoi que ce soit), et j'ai exécuté les commandes sous "Désactiver Ne pas déranger". L'icône est restée grisée, mais les notifications sont apparues immédiatement.

1 votes

@MatthewElvey Cela pourrait être un changement de Sierra à High Sierra. Nous devons probablement trouver un nouveau moyen de recharger l'icône de la barre de menu.

2 votes

+1 pour la commande non-Applescript!

20voto

webmarc Points 1653

Vous pouvez simplement configurer un raccourci clavier global pour cela dans Préférences Système -> Clavier -> Raccourcis -> Mission Control

Ou si vous préférez vraiment le faire à partir de la ligne de commande, un script AppleScript pour cela (en supposant que vous ayez configuré le raccourci clavier pour utiliser cmdshiftoptctrlD.

Remarquez que vous DEVEZ toujours configurer une commande clavier dans les Préférences Système pour que cela fonctionne.

Placez le script ci-dessous dans un fichier, par exemple, ~/dnd.applescript

ignorant les réponses de l'application
    dire à l'application "Événements Système" de saisir la touche "D" en utilisant {commande enfoncée, shift enfoncé, option enfoncée, contrôle enfoncé}
fin ignorant

Maintenant vous pouvez exécuter osascript ~/dnd.applescript depuis la ligne de commande pour basculer votre paramètre DND.

Capture d'écran: Modification de raccourci clavier dans Préférences Système

1 votes

Parfait! Merci. J'espère qu'il existe un moyen meilleur cependant.

0 votes

Meilleur de quelle manière?

2 votes

Ne pas avoir à lier un raccourci clavier obscur et le basculer avec osascript.

18voto

James Points 406

Dès OS X 10.10.3, ce AppleScript basculera "Ne pas déranger". Aucun raccourci clavier requis :

tell application "System Events" to tell process "SystemUIServer"
  key down option
  click menu bar item 1 of menu bar 2
  key up option

Vous pouvez l'enregistrer en tant que AppleScript et l'exécuter depuis le terminal avec osascript DoNotDisturb.applescript, ou vous pouvez l'inclure dans un script Bash en l'enveloppant dans un heredoc comme ceci :

#!/bin/bash
osascript <

7 votes

Cela signifie que vous pouvez également basculer DoNotDisturb en cliquant sur les tuiles les plus à droite dans la barre de menu tout en maintenant la touche Option.

5 votes

Cela ne fonctionne plus sur Mojave. Applescript semble cliquer sur l'élément de la barre de menu comme si l'option n'était pas enfoncée, même si elle l'est.

7voto

sv3k Points 79

En s'appuyant sur les réponses de James et Zsolt, j'ai créé quelques scripts pour activer ou désactiver (pas basculer) l'état DND. Ils ne nécessitent pas non plus de combinaisons de touches ou de GUID machine pour fonctionner.

IMPORTANT : Veuillez noter que l'exécution de ces scripts pour la première fois peut nécessiter une autorisation d'accessibilité pour l'application qui exécute les scripts. Si vous ne donnez pas la permission dans la demande, le bouton alt/option restera enfoncé pour le système et vous devrez vous déconnecter puis vous reconnecter pour le "déverrouiller". Cela est également vrai pour les réponses précédentes avec AppleScript. Si le script est modifié, les autorisations devront être révoquées et réattribuées. Les autorisations sont accordées en utilisant :

Préférences Système > Sécurité et confidentialité > Accessibilité > Ajouter votre application

Pour macOS Sierra et High Sierra c'est menu bar 1 :

Activer Ne pas déranger ON (désactiver les notifications) :

if [[ $(plutil -convert xml1 -o - ~/Library/Preferences/ByHost/com.apple.notificationcenterui.*.plist | grep false) ]]; then
    osascript <


Activer Ne pas déranger _OFF_ (activer les notifications) :

    if ! [[ $(plutil -convert xml1 -o - ~/Library/Preferences/ByHost/com.apple.notificationcenterui.*.plist | grep false) ]]; then
        osascript <

``
------

**Pour les versions antérieures de macOS c'est `menu bar 2` :**

Activer Ne pas déranger _ON_ (désactiver les notifications) :

    if [[ $(plutil -convert xml1 -o - ~/Library/Preferences/ByHost/com.apple.notificationcenterui.*.plist | grep false) ]]; then
        osascript <

`

Activer Ne pas déranger _OFF_ (activer les notifications) :

    if ! [[ $(plutil -convert xml1 -o - ~/Library/Preferences/ByHost/com.apple.notificationcenterui.*.plist | grep false) ]]; then
        osascript <

` `` ```

3 votes

Cela ne fonctionne plus sur Mojave. Applescript semble cliquer sur l'élément de la barre de menus comme si l'option n'était pas enfoncée, même si c'est le cas.

5voto

Z0B Points 103

Planifier Ne pas déranger

À noter que vous pouvez également planifier Ne pas déranger depuis la ligne de commande pour activer/désactiver chaque jour à des heures précises.

Pour définir l'heure à laquelle le mode NPD sera activé :

defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui dndStart -integer 

Pour définir l'heure à laquelle le mode NPD sera désactivé :

defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui dndEnd -integer 

NOTE : remplacez et par la valeur souhaitée (expliquée ci-dessous).


Exemple:

Pour planifier le mode NPD pour commencer chaque jour à 15:00 et se terminer à 18:30, suivez les étapes suivantes :

Convertir 15:00 et 18:30 en minutes pour obtenir la valeur de et . C'est-à-dire, multiplier le nombre d'heures par 60 et ajouter le nombre de minutes.

Pour 15:00 cela serait : 15 * 60 + 0 = 900 et pour 18:30 cela serait : 18 * 60 + 30 = 1110. Ce qui nous donne les commandes ci-dessous :

defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui dndStart -integer 900
defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui dndEnd -integer 1110
killall NotificationCenter # 'réinitialise' le Centre de notifications pour qu'il prenne en compte le changement de Ne pas déranger

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