Skip to content

Repository files navigation

MMM-Charms

A MagicMirror² module for displaying rotating affirmations, reminders, reflective prompts, time of day relevant chores, and curated quote packs from multiple named sets.

It supports local JSON packs, simple text sets, manual switching between packs, and automatic pack switching by time of day.

Features

  • Multiple named packs
  • Local JSON pack support
  • Simple text set support
  • Optional time-based pack switching
  • Optional manual switching between packs
  • Optional tap/click cycling
  • Remembers the last selected pack
  • Works for affirmations, reminders, reflective text, and quote/dialogue packs

Installation

Clone or copy the module into your MagicMirror modules folder so it sits at:

~/MagicMirror/modules/MMM-Charms

Then add it to your config/config.js file.

Basic configuration

{
  module: "MMM-Charms",
  position: "lower_third",
  config: {
    updateInterval: 60000,
    fadeSpeed: 1500,
    defaultSet: "general",
    availableSets: {
      general: "packs/general.json",
      calm: "packs/calm.json",
      confidence: "packs/confidence.json",
      family: "packs/family.json",
      gentleReminders: "packs/gentle-reminders.json",
      hardDays: "packs/hard-days.json",
      grounding: "packs/grounding.json",
      quotes: "packs/quotes.json",
      bollywood: "packs/bollywood.json",
      videoGameQuotes: "packs/video-game-quotes.json"
    },
    showSetName: true,
    enableButtons: true,
    enableTapCycle: true,
    buttonStyle: "dots",
    buttonColors: {
      general: "#ffffff",
      calm: "#7fc8f8",
      confidence: "#f6c65b",
      family: "#7bd389",
      gentleReminders: "#c8b6ff",
      hardDays: "#ffadad",
      grounding: "#9bf6ff",
      quotes: "#ffd6a5",
      bollywood: "#f4a261",
      videoGameQuotes: "#a0c4ff"
    },
    enableAutoTimeSwitch: false
  }
},

Pack ideas included in the repo

  • General
  • Calm
  • Confidence
  • Family
  • Gentle Reminders
  • Hard Days
  • Grounding
  • Quotes
  • Bollywood
  • Video Game Quotes

Creating your own packs

You can add your own packs by creating a JSON file in the packs/ folder and then adding it to availableSets in config/config.js.

Example:

availableSets: {
  general: "packs/general.json",
  calm: "packs/calm.json",
  myCustomPack: "packs/my-custom-pack.json"
}

The key name (myCustomPack) is the set name used by buttons and time-based switching.

Time-based pack switching

To switch packs automatically during the day, enable enableAutoTimeSwitch and define an autoSetByTime array.

Example:

enableAutoTimeSwitch: true,
autoSetByTime: [
  { start: "05:00", end: "11:59", set: "calm" },
  { start: "12:00", end: "16:59", set: "confidence" },
  { start: "17:00", end: "20:59", set: "family" },
  { start: "21:00", end: "04:59", set: "general" }
]

Each set value must match a key from availableSets.

Notes

  • JSON packs can be used for richer pack content and easier curation.
  • Simple text files are still supported for straightforward one-line-per-item sets.
  • Packs can be used for affirmations, reflective prompts, practical reminders, quotes, film lines, or other short rotating text collections.
  • If your global custom.css applies backgrounds, borders, or glass effects to all modules, you may want to exclude MMM-Charms so its content box does not stretch wider than intended.

AI-assisted content and development notice

Some packs included with this module may be generated, edited, or refined with AI assistance. Users should review and curate all content before using it in personal, family, educational, workplace, or care settings.

The code for this module was also produced with AI assistance and then reviewed, directed, and adapted by a human.

Had there not been AI, I would never have been able to create anything like this. Same as many would never enjoy being photographers, were it not for instant cameras, digital cameras, photoshop or smart phones. It is unlikely that I will take your jobs by vibe coding. I hope you can enjoy using this and/or go on to build something better.

This module is intended for reflective and motivational use only. It is not a substitute for professional mental health, medical, therapeutic, or crisis support.

Support

If MMM-Charms has been useful to you, tips are welcome on Ko-fi: https://ko-fi.com/testingonlypi

Credits

Inspired by MMM-affirmations by mtitus83.

This module is a separate implementation built from scratch to support multiple sets, persistence, runtime switching, and time-based automation.

Clone installation

From your MagicMirror modules folder:

cd ~/MagicMirror/modules
git clone https://github.com/testingonlypi/MMM-Charms.git
cd MMM-Charms

Then add the module to your MagicMirror config/config.js.

Update

To update MMM-Charms after installing it with git clone:

cd ~/MagicMirror/modules/MMM-Charms
git pull

Then restart MagicMirror.

If you changed files inside the module folder, back them up before running git pull.

Screenshot

MMM-Charms screenshot

About

A MagicMirror² module for displaying rotating affirmations, reminders, reflective prompts, time of day relevant chores, and curated quote packs from multiple named sets. It supports local JSON packs, simple text sets, manual switching between packs, and automatic pack switching by time of day.

Topics

Resources

Code of conduct

Stars

0 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages