Should you display a notification to your user? This module allows you to check.
Do Not Disturb / Quiet Hours
const getDoNotDisturb from 'electron-notification-state'// On Windows, logs `true` if "quiet hours" are enabled// On macOS, logs `true` if "do not disturb" is enabledconsole;
On Windows, you likely want to check SHQueryUserNotificationState, checking whether or not a screensaver is running, if the screen is locked, or if a presentation is running. On macOS, you likely want to check if the screen is locked and if the if the user has an active screen session.
The call below logs a different string, depending on the platform:
SESSION_SCREEN_IS_LOCKEDThe screen is locked.
SESSION_ON_CONSOLE_KEYThe user currently has console/graphical control.
QUNS_NOT_PRESENTA screen saver is displayed, the machine is locked, or a nonactive Fast User Switching session is in progress.
QUNS_BUSYA full-screen application is running or Presentation Settings are applied. Presentation Settings allow a user to put their machine into a state fit for an uninterrupted presentation, such as a set of PowerPoint slides, with a single click.
QUNS_RUNNING_D3D_FULL_SCREENA full-screen (exclusive mode) Direct3D application is running.
QUNS_PRESENTATION_MODEThe user has activated Windows presentation settings to block notifications and pop-up messages.
QUNS_ACCEPTS_NOTIFICATIONSNone of the other states are found, notifications can be freely sent.
QUNS_QUIET_TIMEIntroduced in Windows 7. The current user is in "quiet time", which is the first hour after a new user logs into his or her account for the first time. During this time, most notifications should not be sent or shown. This lets a user become accustomed to a new computer system without those distractions. Quiet time also occurs for each user after an operating system upgrade or clean installation, according to Windows. This is not the same as "quiet hours". Note that during quiet time, if the user is in one of the other blocked modes (QUNS_NOT_PRESENT, QUNS_BUSY, QUNS_PRESENTATION_MODE, or QUNS_RUNNING_D3D_FULL_SCREEN) SHQueryUserNotificationState returns only that value, and does not report QUNS_QUIET_TIME.
QUNS_APPIntroduced in Windows 8. A Windows Store app is running.
const getSessionState from 'electron-notification-state'console;
MIT. Please see LICENSE for details.