Quiet Mode

Posted on
  • Does anyone use 'Quiet Mode'?

    The implementation doesn't seem to fit very nicely and it seems hard to use, so I'm considering removing it and creating an app that allows you to just schedule certain setting changes for certain times of day (eg screen brightness, vibration, etc).

  • Great ! i was dealing with this App, trying to figure out what i was doing wrong (The silent/alamr mode was never auto switching, and when manually back to normal mode, i always had to reboot the bangle to make it set its setting back to normal)

  • I use quiet mode, in order to stop my watch from vibrating or lighting up while I'm sleeping.

    In a perfect world it would be nice if my watch synchronized itself with my phone's do not disturb mode, but as long as there's some way to make sure it doesn't bother me at night I'll be happy.

  • I use it, to suppress buzzing during the night.

    I agree it is rather clunky. Both the separate settings, and especially the bit where every app checks the quiet mode setting before buzzing.
    Ripping that all out and just scheduling setting changes would be a definite improvement.

  • so you guys managed to make it work...
    Do you use a different LCD brightness for the quiet mode as well ?
    Does the schdeule works or do you manual switch to quiet and back to normal ?

  • I always leave the LCD brightness set to full.

    The schedule works fine for me - I have it switch to "Off" at 8:00 and "Alarms" at 23:00.

  • ok, in my case it s only the LCD brightness that stick maybe.
    Anyway, the widget icon does not seem to change when the time scheduled is reached on my bangle.
    I ll give a try without any LCD change

  • There is a need for a quiet mode with anything that might go off while you are asleep. EG I dont care about that system update notifciation on my phone at 3AM. But I dont like the current implementation that much. Not sure why the setting is not implemented through the firmware instead of every app that does a buzz having to check quiet mode. Could the firmware silently return from Bangle.buzz() if quiet mode is enabled ?

  • The buzz call isn't the only thing that needs to be suppressed... I charge my watch by my bed, so I don't want the screen turning on and shining in my eyes for that 3am update notification either. However, I do want the screen to turn on if I interact with the watch directly, so a bit more nuance is required than just "suppress the setLCDPower call".

    Similarly, I wonder if there are cases where one would expect vibration to work even when quiet mode is enabled, similar to how do not disturb on Android does not prevent games or media apps from playing sound.

  • Oh right, that's the reason this stuff is built into all apps: it's the only way to know if it buzzes for an alarm or only for a notification.
    We might get away with something like Bangle.forceBuzz() for alarm apps? Someone might want to definitely disable all vibration though...
    Suppressing setLCDPower from apps might work, because turning on for interaction is done by the firmware. But then you end up needing a "disable setLCDPower" setting to schedule it :-(

    I don't use an alarm app, and if a notification arrives I twist my watch to look at it anyway, so just scheduling vibration = on/off and removing setLCDPower from notifications would be fine with me...

    (The schedule app also works fine for me: "Off" at 8:30 and "Alarms" at 21:30.)

  • Ahh right - ok, so the qmsched app is definitely the missing piece of the puzzle. So @rigrig as it's yours, is there any reason you think we couldn't just remove qmOptions/etc from settings and instead store it in the Quiet mode app?

  • just remove qmOptions/etc from settings and instead store it in the Quiet mode app?

    That would probably clean up things a bit.
    So the idea is:

    Current situation:

    • global quiet setting: apps check this so they know whether to buzz
    • global qmOptions setting: overrides options like brightness during quiet mode
    • qmsched app: changes quiet setting at scheduled times, shows a widget

    After moving things to qmsched:

    • keep global quiet setting: apps still check this. No longer needs it's own submenu.
    • qmsched app changes quiet setting at scheduled times, shows the widget
    • qmsched app also handles overriding options like brightness
  • so, the issue is here, on my use of the schedule app. I flushed it and reinstalled it, but still no change.

  • @rigrig yes, that sounds perfect. When it needs to change something, it can change the actual setting immediately and the settings.json file, so if apps change the effect is permanent.

    Is that something you're happy to do, or should I look at it?

  • I'd be happy to take a look at it, most of the work will just be moving some code around anyway.

  • Hi all,

    I'm not sure if I'm correct in this thread, I just try :)

    So, from the user side, I enjoyed Nubia watch's handling of "quiet mode" the most. It worked the following:
    To activate quiet mode:

    1. Go to settings -> set quiet mode active
      => Watch confirms and shows "quiet mode screen"
    2. done :)
      => After a few seconds, screen turns off completely.

    To deactivate quiet mode:

    1. Hold button for a few seconds
      => watch lights up and is ready
    2. done :)

    If you are in "quiet mode screen" and press the button (short, i.e. not long), screen shows "quiet mode screen".

    What is "quiet mode screen"?
    It only shows the time and the text "Quiet mode - long press button to turn back on" (or similar).

    Personal note: I liked this behavior very much as it was straight forward once I learned it. I'm not too much on a daily schedule which is why scheduling doesn't work out for me too well.

    I read the discussion here. You discussed some technical stuff (buzz, alarm... etc), I can't answer for other smart watches I had (Pebble, Nubia, Ticwatch).
    I can say, though, that I'm quite sensitive on light. So in quiet mode, the screen should never turn on except I explicitly ask it to do so which, I suppose, is best achieved by a long-press of the button, as I mentioned before.
    It never happened, but I guess I would startle if it would vibrate during sleep :D

    It would be great, though, if it could still measure heart rate etc. of my sleep...

    I haven't looked into coding for bangle, yet. I hoped you guys liked the idea and perhaps adapt qmsched or so to operate like this. Or you tell me, long-press is not supported by bangle :)

    Looking forward to your feedback.


  • Long press is normally reserved for a reboot. You could override that in code but then if you get into bother there is no way to reset the watch.

    Using the health app you can measure heart rate in your sleep. But note when the hear rate monitor turns on will light up the back with the green leds.

  • If there was an 'enter quiet mode' app, you could use the pattern launcher to invoke it whenever. I just use a schedule, works great.

  • If there was an 'enter quiet mode' app, you could use the pattern launcher to invoke it whenever.

    This sounds like a good idea. If you don't want the watch to do anything it should be pretty easy to write an app that just sits there silently with the bare minimum functionality when run.

  • I've been looking at making an app to allow easy changing of screen brightness, wake behaviour (basically to run before bed). Did you get anywhere with the app you mentioned in the first post for scheduling changes like this? If not then this might be something I'll pick up.

    Right now I'm just testing reading and writing settings:

    settings = require('Storage').readJSON('setting.jso­n', 1);
    if (!settings) load();
    if (settings.brightness != 0.1) {
      settings.brightness = 0.1;
    } else {
      settings.brightness = 1.0;
    require('Storage').write('setting.json',­ settings);

    EDIT: From actually reading the thread further it looks like some of these quiet mode scheduling apps might do what I want already, will have a look

  • I think you're looking for Quiet Mode Schedule and Widget.
    It can turn quiet mode on/off automatically on a schedule, and you can also tell it to switch themes or change LCD brightness during quiet mode.

  • Thanks @rigrig yep this is basically exactly what I wanted - though it has the issue of flashing to the previous brightness for a split second every time a new app loads while on the quiet mode. That's a pretty minor issue given I likely won't be interacting with the watch much while quiet mode is on.

    I wonder if there's a way of getting round that without also writing the global settings value like I'm doing above.

  • Hi everyone, sorry to dredge up an old conversation! Brand new user here, received my Bangle.js 2 yesterday and am very excited as someone whose Pebble is currently held together with glue.

    Just wanted to add my perspective as someone who switched in and out of Quiet Time on Pebble VERY frequently and was hoping to do the same on the Bangle.js 2. I have a baby who breastfeeds on demand and also co-sleeps with me. Quiet Time on Pebble was fantastic for this because it:

    • turns off vibrations
    • doesn't light up the screen when a notification is received, although it does light up the screen when I interact with the watch.
    • is easily turned on/off by long-pressing one of the physical buttons (no need to enter the menu system)

    From what I can tell, Quiet Mode on Bangle.js 2 will turn off vibrations, but the screen will still light up when a notification is received even if Quiet mode disables auto-open = YES under the Messages app settings. Please do correct me if I am wrong.

    I get the sense from reading through this conversation that mine is probably an unusual use case (most people seem satisfied with scheduling Quiet Mode) so I was hoping to solve my own problem. I am not a coding wizard, but comments #18 and #19 give me hope that it might be possible for me to create this 'enter quiet mode' app and use it with Pattern Launcher. (One day, when my baby gives me time to code again!)

    I am unsure if I would be able to stop the screen lighting up when notifications are received though, as I think that is part of the Messages app?

    Thanks for reading, very excited to get into the Bangle.js 2!

  • Hello! Welcome! :)

    I think the fastest solution is to combine:

    Please pay attention to the wonderful Light Switch Widget from this list, with it you can quickly turn off | turn on the screen backlight by clicking on the widget itself. You can quickly change the screen brightness level as well. There are instructions in the description.

  • Hi Serj, thank you for your thoughtful reply! I had a go with this combo and absolutely could not work out why going into the menu system always had maximum brightness despite the settings under Settings > System > LCD, or in Light Switch Widget. I eventually realised (after a few factory resets and trying to work out what I did wrong) that it was caused by Quiet Mode Schedule and Widget. That app seems to stop working when you select a quiet mode option, and maybe that's why the brightness behaves unexpectedly? I didn't look any further into it as I ended up bashing out my own clock ('Shhh Clock') to suit my very specific use case.

    Here's the gist if anyone would like a clock that:

    • Toggles Quiet Mode to Alarm and brightness to 0.1 by tapping the bottom half of the screen
    • Has massive numbers for tired eyes
    • Has the time on the right so it's less likely to be covered by your sleeve if you wear your watch on your left
    • Is based off the clock tutorial and is someone's bare-minimum very first attempt at bangling! (Corrections welcome, I am here to learn)
  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview

Quiet Mode

Posted by Avatar for Gordon @Gordon