Read the statement by Michael Teeuw here.
MM-Navbar - Navigation Bar for Touchscreens to hide/show modules
-
Its a possibility.
Think u are missing a toggle there, i can build u one later and update it. -
@tidus5
Can u try this?var hideallmodules = true;
var hideallmodulesbutton = document.createElement(“span”);
hideallmodulesbutton.className = “wi wi-day-rain-mix navbar”; // change icon here
wrapper.appendChild(hideallmodulesbutton);$(hideallmodulesbutton).on(“click”, function(){
if(hideallmodules){
MM.getModules().exceptModule(this).exceptWithClass(‘clock’).enumerate(function(module){
module.show(1000, function(){
});
});
hideallmodules = false;
}else{
MM.getModules().exceptModule(this).exceptWithClass(‘clock’).enumerate(function(module){
module.hide(1000, function(){
});
});
hideallmodules = true;
}
});this is a bit messy, but should work as the rest of the buttons. will publish it to git, when i got time.
-
@chrisyy Hello
amazing!!! thank you
just small error added exceptWithClass(‘MM-navbar’) (exceptmodule(this)) didnt work (the nav itself was hidden)
thank you so much$(hideallmodulesbutton).on("click", function(){ if(hideallmodules){ MM.getModules().exceptWithClass('MM-navbar').exceptWithClass('clock').enumerate(function(module){ module.show(1000, function(){ }); }); hideallmodules = false; }else{ MM.getModules().exceptWithClass('MM-navbar').exceptWithClass('clock').enumerate(function(module){ module.hide(1000, function(){ }); }); hideallmodules = true; } }); -
@chrisyy yop everything is working perfectly
i added a timing of 1000 on every hide/show
without i had a little ugly mouvement sometimes :-)
again thanks you !!! -
What a great module! Is there a way to get the icons centerd? I´m using a 7" touchscreen display and it looks like the picture below:

If I would add more icons they go in a line below.
-
Hello
in navbar.css you can play with.center{
position: fixed;
left: 45%;
}- personnaly i removed this class
-
@tidus5 its never a good idea to manipulate modules code, but after reviewing this module there is no chance to avoid it to have custom buttons. The module owner should change this to config options.
I came up with this solution to center them
custom.css
.MM-navbar .center { left: 50%; -webkit-transform: translate(-50%); } -
I have already tested some things and still didnt update and pushed to git.
The problem with the creation of buttons out of the config is a for/while that still doesn’t work. Also i would need a library for icons.
Ur proplem was indeed an issue, will fix this within git.
-
@strawberry-3.141 did a little change on my custome.css in MagicMirror/css. Now its working very well.
Heres the code:
.MM-navbar .center {
width: 100%;
text-align: center;
left: 0px;
}
-
@chrisyy hi, i installed this module works great, how can i toggle between 2 same modules, example MMM-mails i need to toggle emails between gmail and hotmail , gmail to show hotmail to hide and vice versa
-
Hey @chrisyy - hope you are well.
Since the update i have a problem with the hide/show all butt - function not recognized in this lineMM.getModules().exceptWithClass('MM-navbar').exceptWithClass('MMM-ShipmentTracking').exceptWithClass('clock').enumerate(function(module){and now the weather and the current weather are not hide at startup - do you have the same problem ?
-
@shashank u would need to have 2 of them installed, lets say one is Mail-Gmail, the second is Mail-Hotmail
@tidus5 until now i haven’t tested it and im moving to a new place, so i my mirror aswell as my server is laying in a box right now. I saw that in the new version, there are visibility-locking options. Maybe this will have to do something with it. As soon as it is possible for me to do something, i will take a look and hopefully can fix this.
second thing: u should not make 3x exceptwithclass, do one and separate the modules with commata. -
I think this module is very cool! My present build is non-touch so I made some small additions (informed by @GinSeng in another thread) and I’m currently using voice to trigger the Navbar. Love it! I’ll be happy to provide code or details if anybody is interested.
-
@in_a_days hi, can you please share the code
-
Hi @chrisyy thank you for this awesome module!
Only problem is that with this module on, the Hide/show all module disappeared. How can I fix it?
Thanks! -
For sure. Forgive me if there are several steps.
First thing is to install this module
https://github.com/alexyak/voicecontrol
Go to your MagicMirror/modules folder and type
git clone https://github.com/alexyak/voicecontrol.git
Then install dependencies with
sudo apt-get install python-pyaudio python3-pyaudio sox
Next, install the navbar. Again, make sure you are in the MagicMirror/modules folder and type
git clone https://github.com/chr1syy/MM-navbar.git
Then you will need to go to this website and define your voice commands.
Keep track of the keywords you define and the filenames you produce. Each keyword/command will require you to download a .pmdl file that needs to be copied into the MagicMirror folder on your Pi. I’m only using 3 commands so far - calendar, newsfeed, and weather.
Still with me? Sweet! Lets configure config.js. Go to the MagicMirror/config folder and
nano config.js
Assuming you know where to place a new module in this file, add the navbar module with
{ module: 'MM-navbar', position: 'fullscreen_above' },Next we will add the voice control call to the same config.js file. There are a couple variables here that will depend on the keywords and filenames you used on the snowboy site. Here is the code I use
{ module: 'voicecontrol', position: 'bottom_right', config: { models: [ { keyword: "Calendar", description: "Say 'Calendar' to toggle display", file: "calendar.pmdl", message: "CALENDAR" }, { keyword: "Newsfeed", description: "Say 'Newsfeed' to toggle display", file: "newsfeed.pmdl", message: "NEWSFEED" }, { keyword: "Weather", description: "Say 'Weather' to toggle display", file: "weather.pmdl", message: "WEATHER" } ] } },Note that the keyword and file need to match the keyword and filenames you used on your Snowboy files. Save and quit out of config.js and we’ll hit the last step. We need to make a couple changes to the navbar code. Navigate to MagicMirror/modules/MM-navbar then
nano MM-navbar.js
First change is at line 13. Right now lines 12-19 look like this
notificationReceived: function(notification, payload, sender){ if (notification === 'DOM_OBJECTS_CREATED'){ MM.getModules().exceptModule(this).exceptWithClass('clock').enumerate(function(module){ module.hide(1000, function(){ }); }); } },You will need to modify it to look like this
notificationReceived: function(notification, payload, sender){ if (notification === "CALENDAR"){ var calendarbutton = document.getElementById('calendar-button'); calendarbutton.click(); } if (notification === "NEWSFEED"){ var newsbutton = document.getElementById('news-button'); newsbutton.click(); } if (notification === "WEATHER"){ var weatherbutton = document.getElementById('weather-button'); weatherbutton.click(); } },Now we’re going down to the section that originally starts on line 32
wrapper.className = "center"; weatherbutton.className = "wi wi-day-rain-mix navbar"; calendarbutton.className = "fa fa-calendar navbar"; newsbutton.className = "fa fa-newspaper-o navbar";And change it to
wrapper.className = "center"; weatherbutton.className = "wi wi-day-rain-mix navbar"; weatherbutton.id = 'weather-button'; calendarbutton.className = "fa fa-calendar navbar"; calendarbutton.id = 'calendar-button'; newsbutton.className = "fa fa-newspaper-o navbar"; newsbutton.id = 'news-button';Save, close and restart your MM and you should have a working, voice responsive nav bar. I know there are kind of a lot of steps here and typos and omissions are entirely possible. If you have any problems let me know and I’ll try to help. Cheers!
-
@in_a_days maybe u can make a fork of it in git? Thanks for sharing ur code.
@AlessandroRa There’s also a button in this module for hiding/showing everything. Do u have another module that will do this function for it?
@All
Forgive me if I’m not answering in time. Since I’m moving my time is very limited.
When we are done (maybe in 2-3 Weeks) i will do some updates on my own mirror and will update code if needed.U can also submit code on git, i will take a look and implement it.
I’ll try to Keep in touch.
-
Here is the navbar code with my modifications:
https://github.com/in-a-days/MM-navbar
The user will still need to install voicecontrol, create and load the .pmdl files, and properly configure config.js.
Is the show/hide all button part of this build? I’m looking for something like
var showallbutton = document.createElement("span");to match these
var weatherbutton = document.createElement("span"); var newsbutton = document.createElement("span");And I’m not finding anything. Thanks again, I really love this module!
-
@chrisyy All I have is the weather, calendar and news buttons, how can I get more of them?
I’m using: Mail, Hello World, Alarm, News, Calendar and Music player.
For hiding/showing all I’m using this module: https://github.com/masters1222/mm-hide-all -
@chrisyy first of all I want to say that your module looks really nice, unfortunate that my mirror won’t have touch ;(. This module could be used in conjunction with my ProfileSwitcher module. This way you won’t have to bother with showing/hiding certain modules and others won’t have to modify your code. :)
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login