@almightyyoshi
For removing calendarWeek number;
https://github.com/MMRIZE/MMM-CalendarExt3/wiki/Examples-%26-Tips
Read the statement by Michael Teeuw here.
Posts
-
RE: MMM-CalendarExt3
-
RE: MMM-CalendarExt3
eventTransformer: (ev) => { ev.title = ev.title.replace("All:", "") return ev },
-
MMM-Hotword2
MMM-Hotword2
MagicMirror module with
Picovoice
’sPorcupine
for Hotword detector. My previousMMM-Hotword
module is deprecated due to thatsnowboy
hot-word detecting engine closed its service. Fortunately, PICOVOICE’s Porcupine and its siblings would be good enough alternative. So I rebuilt the hot-word detector again.I know, there is other Porcupine modules already, but they may lack some features which I need to use. So I revamped my old one for my demands.
Features
- Multi Hotwords/ Custom Hotwords supported
- Individual Hotword setting
- On detection, various works possible;
- Control other modules with custom notification
- Execute Shell command or scripts and get the result.
- Not only hotword, but also continuous utterance could be acauired.(as recorded wav file)
- The recorded file could be consumed on other STT / voice handling modules
- No need to rebuild for electron
For more details; https://github.com/MMRIZE/MMM-Hotword2
-
RE: How do I contribute a PR to a module?
- Make a GITHUB account
- Fork the original target repository to your account.
- git-clone forked repo into your local dev pc.
- Do your modifications in your local repo.
- Commit your modified version to your GitHub.
- Make PR to the original target repo.
- Wait for confirmation and merging by original owner.
-
RE: Dynamic Font Colors
@ijoshea
Anyway, It looks so interesting, So I tried something. I simply did monkey patching to get dominant color fromMMM-GooglePhotos
’s image on load.
You can do your job with this code without modifying the source codes itselfs./* config/config.js */ { module: "MMM-ModuleMonkeyPatch", config: { patches: [ { module: "MMM-GooglePhotos", method: "ready", patch: async function (original, [ url, target ]) { const ret = original(url, target) let color = null const process = async () => { const { resolve, promise } = Promise.withResolvers() const img = new Image() img.crossOrigin = 'Anonymous' img.src = 'https://corsproxy.io/?' + url img.onload = () => { const colorThief = new ColorThief() const color = colorThief.getColor(img) resolve(color) } return promise } if (typeof ColorThief === 'undefined') { const loadScript = async (src) => { const { resolve, promise } = Promise.withResolvers() const script = document.createElement('script') script.src = src document.head.appendChild(script) script.onload = () => resolve() return promise } await loadScript('https://cdn.jsdelivr.net/npm/colorthief@2/dist/color-thief.min.js') color = await process() } else { color = await process() } console.log(color) // It will show [R, G, B] array // doYourJob(color) return ret }, }, ], }, },
-
RE: MMM-Touch or similar without visible module
@mmmmh
useDisplay: false,
-
RE: Dynamic Font Colors
@ijoshea
I had the same needs on building modules. (btw, GooglePhotos and CX3 were built by me :D )Sometimes I suggested other module’s background for the readability. Sometimes, I made an auto-calculated contrast color(e.g. CX3)
My final conclusion is… waiting for new CSS feature
contrast-color()
. It will be introduced later this year in the most modern browsers.
https://drafts.csswg.org/css-color-5/#contrast-color -
RE: Update needed
@Bungle68
If you don’t need, you don’t have to update.
You don’t know whether it will be better to do update, you don’t have to.
If you decide to do update, I recommend to start over from formatting SD card. It will be easier. -
RE: NPM problem "EBADENGINE" which I fail to solve
@Ix
Install recent nodejs.
I don’t know how you have installed the current version of nodejs. So I cannot give you an exact advice.
Generally I prefer to manage node version withnvm