• Thanks - glad you're enjoying it!

    Yes, it's totally possible to change the widget positions!

    First method is just to use require("widget_utils").swipeOn() which will allow you to swipe the widgets down from the top. It's used in a few clocks now and is nice and easy.

    Second method is just to change the 'area' of widgets and set the position manually. You could do this once, but some widgets start off with width=0 and change (maybe when a message is received).

    drawWidgets itself looks like https://github.com/espruino/Espruino/blo­b/master/libs/js/banglejs/Bangle_drawWid­gets_Q3.js so if you don't have the area as tl/tr/bl/br it'll skip setting a position but will render them anyway. All you need to do is add your own drawWidgets implementation that runs first and sets the position up yourself.

    For example:

    Bangle.loadWidgets();
    
    Bangle.drawWidgets = (oldDrawWidgets => {
      y = 0;
      for (var wd of WIDGETS) {
        wd.area="_";
        if (wd.width) {
          wd.y = y;
          wd.x = 0;
          y+=24;
        }
      }
      oldDrawWidgets();
    })(Bangle.drawWidgets);
    
    Bangle.drawWidgets();
    
  • What about allowing the widget configuration from the apploader page?

    As solutions I can imagine:

    • Modifying through regexp following line of code before uploading
      WIDGETS["wdclkbttm"]={area:"br",...

    • Implementing on default bangle system code/function from Widget Editor

About

Avatar for Gordon @Gordon started