A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

Subcategories

  • Any suggestions or wishes for the forum?

    105 Topics
    727 Posts
    J
    @sdetweil Thanks, I made the changes ad it works perfectly. Thank you for your prompt response.
  • A command to refresh magic mirror page

    5
    1 Votes
    5 Posts
    2k Views
    S
    @FrostByte as long as the change doesn’t affect a node_helper, which are only loaded at start time the config.js os loaded as part of the web page there is no notification it changed to the client browser
  • MMM-Keyboard setup

    6
    0 Votes
    6 Posts
    1k Views
    S
    @blt791 it’s quite a lot of work. You can use the developers window sources tab to debug the code Ctrl-shift-i, select the sources tab Navigate in the left nav to your module and it’s source file You can walk thru the code line by line if need be
  • Community task: Check automated translations

    1
    0 Votes
    1 Posts
    538 Views
    KristjanESPERANTOK
    Hey everyone, MagicMirror is currently available in 47 languages. However, a lot of these translations are incomplete. I have used translation tools to fill the gaps and compiled the results in a pull request (https://github.com/MagicMirrorOrg/MagicMirror/pull/3794). If you know a language other than German, Esperanto and English, please take a look at the PR and give us feedback.
  • Which version of Debian to use

    20
    0 Votes
    20 Posts
    5k Views
    S
    @DarrenO-0 it also works on wayland compositor get a short view of the desktop before MM comes up
  • Tide Chart Module

    8
    0 Votes
    8 Posts
    6k Views
    F
    @Area-49 this is a really simple and elegant way to display the tides. I couldnt help but notice the name as well, im looking for a tide chart for my relatives on the Kenai in Alaska who fish Halibut. Can you provide any guidance on the cron job code and how/where you downloaded/hosted the xtides? thanks
  • Skylight Calendar DIY Build

    13
    0 Votes
    13 Posts
    12k Views
    M
    @mmmallday I’d love to see your setup. I have many of the modules configured, but I want it to have a similar look-and-feel to Skylight. Unfortunately, UI/UX and CSS is not my strong suit. How does yours look?
  • node clientonly for Windows

    9
    1 Votes
    9 Posts
    1k Views
    S
    looks like electron (browser) is confused about the os running
  • Auto Start on Windows 11

    7
    0 Votes
    7 Posts
    2k Views
    S
    @Krowyn only thing i can think is the cd MagicMirror failed because the current directory is not correct where is this bat file located? maybe it should be cd %USERPROFILE%\MagicMirror npm run start:windows
  • new Raspi OS release

    19
    2 Votes
    19 Posts
    6k Views
    mumblebajM
    @sdetweil So, I have not seen any issues thus far other than having to figure out the screen blanking for me on Labwc, I have to test the wlopm, but for now I have switched back to Wayfire. No other issues in logs etc.
  • Modul MMM-AssistantMK2

    4
    0 Votes
    4 Posts
    2k Views
    S
    @Future.Mirror we had a good Google Assistant. the author left and took his modules w him Amazon has killed software versions of an Alexa device https://forum.magicmirror.builders/topic/16069/alexa-implementations-now-more-difficult-and-some-features-will-stop-working biggest thing is you cant access skills unless your ‘alexa device’ is certified., which sw only cannot be since then they have frozen the sdk, dropped all support for hardware developers, … there are some other voice interfaces, search the 3rd party list linked above with ‘voice’ but they are very limited in function. hide/show some modules., and voice reco is not particularly good i wouldn’t call them assistants
  • troubleshooting

    7
    0 Votes
    7 Posts
    1k Views
    R
    @sdetweil those wake up in the night thoughts may be some of my best work… lol… Thanks again!
  • Bugsounet and MMM-Pir

    68
    0 Votes
    68 Posts
    33k Views
    F
    Thank you @gullymat. Very interesting comparision!
  • Looking for feedback and advice

    15
    0 Votes
    15 Posts
    6k Views
    S
    @Xsoldier2000 the thing you see on github IS a web page dynamically constructed from a list of files in the project repository AND a rendering of a readme if one is found, and some other github project mgmt services, issues, fixes, …
  • i need help w pi imager and ssh, headless, oops, user error

    15
    0 Votes
    15 Posts
    5k Views
    S
    @rkorell i knew you were teasing me. thank you for that!
  • Create a clone of MMM-Webview

    6
    0 Votes
    6 Posts
    2k Views
    JohanbaJ
    @sdetweil Thank a mil for the info I am going to try and update my config as such, and see how to get this going i might reach out again if I am struggling
  • New module installer

    51
    1 Votes
    51 Posts
    26k Views
    S
    Just added search in the installer
  • MMM-update - Please help beginner and need help

    17
    0 Votes
    17 Posts
    5k Views
    S
    @Rberry91 did you fix this?
  • MMM-Carousel CSS influence

    2
    2 Votes
    2 Posts
    972 Views
    S
    @chrisfr1976 for educational purposes, before you go reinstalling a module you THINK has been modified, do git status in the module folder this will tell you if any shipped files have been changed git diff will show you WHAT changed
  • Question about backup script

    30
    1 Votes
    30 Posts
    11k Views
    R
    @sdetweil Your: git config --local user.name “my name” git config --local user.email “my email” plus git config --local user.password “myverylonggithubtoken” does the trick… The stackoverflow article is confusing to me but your suggestion is there :-) Thanks a lot! Warm regards, Ralf
  • Contrasting text on changing background

    4
    0 Votes
    4 Posts
    2k Views
    B
    @sdetweil said in Contrasting text on changing background: @mwm341 I want that too. text over photos. haven’t figured out a way yet. I kludged something together today with the MMM-Wallpaper module. It’s not elegant, but it’s been working for me so far. What I’m doing is having the module draw the image onto an off-screen canvas and compute its average brightness using the luminance formula. Based on whether this brightness exceeds a defined threshold (115 has been working for me), the module then updates a global CSS variable with either a light or dark text color. I’m using color: var(--dynamic-text-color); as the variable. Since it’s determining global brightness, it can still “miss” picking a good color for each module. Depending on compute load, I’m thinking an update would be to determine that brightness value for each quadrant of an image then creating a variable for each quadrant and setting the text style in those areas to that color. A downside to this approach is that it won’t work perfectly with different display aspect ratios, but if you’re only ever using a 16:9 display that would be mitigated. Brightness function: // Helper function to compute average brightness of an image. getAverageBrightness: function(image, callback) { var canvas = document.createElement("canvas"); var width = image.naturalWidth; var height = image.naturalHeight; canvas.width = width; canvas.height = height; var context = canvas.getContext("2d"); context.drawImage(image, 0, 0, width, height); try { var imageData = context.getImageData(0, 0, width, height); } catch (error) { console.error("Error accessing image data:", error); callback(255); // Assume bright background if error. return; } var data = imageData.data; var colorSum = 0; var pixels = data.length / 4; for (var i = 0; i < data.length; i += 4) { var r = data[i]; var g = data[i + 1]; var b = data[i + 2]; // Calculate brightness using the luminance formula. var brightness = 0.299 * r + 0.587 * g + 0.114 * b; colorSum += brightness; } var averageBrightness = colorSum / pixels; callback(averageBrightness); }, Updated onImageLoaded function: onImageLoaded: function(imageData, element) { var self = this; return () => { self.resetLoadImageTimer(); element.className = `wallpaper ${self.config.crossfade ? "crossfade-image" : ""}`; element.style.opacity = 1; // Analyze the image brightness and adjust text color accordingly. // This will update both the module's caption and a global CSS variable. self.getAverageBrightness(element, function(brightness) { var threshold = 128; // Adjust this threshold as needed. var textColor = brightness > threshold ? "black" : "white"; self.title.style.color = textColor; // Set a global CSS variable for dynamic text color. document.documentElement.style.setProperty('--dynamic-text-color', textColor); }); self.title.style.display = "none"; setTimeout(() => { var caption = imageData.caption; if (self.config.caption && caption) { self.title.innerHTML = caption; self.title.style.display = "initial"; } if (self.imageElement !== null) { self.content.removeChild(self.imageElement); } self.imageElement = self.nextImageElement; self.nextImageElement = null; }, self.config.crossfade ? 1000 : 0); }; },