From 528b0f8adde67e81ba849c2e6fb2289a496bd58e Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 10 Jul 2025 21:33:51 -0400 Subject: [PATCH 1/7] Add zero brightness for LCD brightness --- apps/setting/settings.js | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/apps/setting/settings.js b/apps/setting/settings.js index 45b971e32..640c75bdd 100644 --- a/apps/setting/settings.js +++ b/apps/setting/settings.js @@ -326,20 +326,24 @@ function showThemeMenu(pop) { upd(th); } let rgb = {}; - rgb[/*LANG*/'black'] = "#000"; - rgb[/*LANG*/'white'] = "#fff"; - rgb[/*LANG*/'red'] = "#f00"; - rgb[/*LANG*/'green'] = "#0f0"; - rgb[/*LANG*/'blue'] = "#00f"; - rgb[/*LANG*/'cyan'] = "#0ff"; - rgb[/*LANG*/'magenta'] = "#f0f"; - rgb[/*LANG*/'yellow'] = "#ff0"; - if (!BANGLEJS2) { - // these would cause dithering, which is not great for e.g. text - rgb[/*LANG*/'orange'] = "#ff7f00"; - rgb[/*LANG*/'purple'] = "#7f00ff"; - rgb[/*LANG*/'grey'] = "#7f7f7f"; - } + rgb[/*LANG*/'Black'] = "#000"; + rgb[/*LANG*/'White'] = "#fff"; + rgb[/*LANG*/'Red'] = "#f00"; + rgb[/*LANG*/'Green'] = "#0f0"; + rgb[/*LANG*/'Blue'] = "#00f"; + rgb[/*LANG*/'Cyan'] = "#0ff"; + rgb[/*LANG*/'Magenta'] = "#f0f"; + rgb[/*LANG*/'Yellow'] = "#ff0"; + + // These would cause dithering, which is not great for e.g. text + rgb[/*LANG*/'Orange'] = "#ff7f00"; + rgb[/*LANG*/'Purple'] = "#7f00ff"; + rgb[/*LANG*/'Grey'] = "#7f7f7f"; + rgb[/*LANG*/'Maroon'] = "#3e1363"; + rgb[/*LANG*/'Indigo'] = "#3e1363"; + rgb[/*LANG*/'Dark Green'] = "#0e5c13"; + rgb[/*LANG*/'Navy'] = "#121e75"; + let colors = [], names = []; for(const c in rgb) { names.push(c); @@ -1077,4 +1081,4 @@ function showAltitude() { } // Show the main menu -pushMenu(mainMenu()); \ No newline at end of file +pushMenu(mainMenu()); From b6eb67ace22281fb10e7607836b78a824a1a4954 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 10 Jul 2025 21:36:50 -0400 Subject: [PATCH 2/7] Update ChangeLog --- apps/setting/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/setting/ChangeLog b/apps/setting/ChangeLog index 03ee8db12..e92ea7bb8 100644 --- a/apps/setting/ChangeLog +++ b/apps/setting/ChangeLog @@ -88,3 +88,4 @@ of 'Select Clock' 0.77: Save altitude calibration when user exits via reset 0.78: Fix menu scroll restore on BangleJS1 0.79: Ensure that tapping on pressure/altitude doesn't cause a menu to display temporarily +0.80: Add option to set LCD brightness to 0 From 3452d5e4de6e9a6b3e555eb05ed53c5052d8a8d0 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 10 Jul 2025 21:37:09 -0400 Subject: [PATCH 3/7] Update ChangeLog --- apps/setting/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/setting/ChangeLog b/apps/setting/ChangeLog index e92ea7bb8..dafaef48c 100644 --- a/apps/setting/ChangeLog +++ b/apps/setting/ChangeLog @@ -88,4 +88,4 @@ of 'Select Clock' 0.77: Save altitude calibration when user exits via reset 0.78: Fix menu scroll restore on BangleJS1 0.79: Ensure that tapping on pressure/altitude doesn't cause a menu to display temporarily -0.80: Add option to set LCD brightness to 0 +0.80: Add option to set LCD brightness to 0, default brightness is now 0 as well. From 1aeeec65de4dad1d8f2a1f06b9d3bfd57a66caf4 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 10 Jul 2025 21:37:24 -0400 Subject: [PATCH 4/7] Update metadata.json --- apps/setting/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/setting/metadata.json b/apps/setting/metadata.json index e255a0dcb..c7ba12e09 100644 --- a/apps/setting/metadata.json +++ b/apps/setting/metadata.json @@ -1,7 +1,7 @@ { "id": "setting", "name": "Settings", - "version": "0.79", + "version": "0.80", "description": "A menu for setting up Bangle.js", "icon": "settings.png", "tags": "tool,system", From f1570224af2d7ee4149be6238cb98ffd9d22f156 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 11 Jul 2025 13:51:21 -0400 Subject: [PATCH 5/7] Change settings.js to changed version --- apps/setting/settings.js | 41 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/apps/setting/settings.js b/apps/setting/settings.js index 640c75bdd..7c2bcf33c 100644 --- a/apps/setting/settings.js +++ b/apps/setting/settings.js @@ -1,3 +1,5 @@ +Modules.addCached("widget_utils",function(){exports.offset=0,exports.hide=function(){if(exports.cleanup(),!global.WIDGETS)return;g.reset();for(var a of global.WIDGETS){if(a._draw)return;a._draw=a.draw,a.draw=()=>{},a._area=a.area,a.area='',a.x!=undefined&&g.clearRect(a.x,a.y,a.x+a.width-1,a.y+23)}},exports.show=function(){if(exports.cleanup(),!global.WIDGETS)return;for(var a of global.WIDGETS){if(!a._draw)return;a.draw=a._draw,a.area=a._area,delete a._draw,delete a._area,a.draw(a)}},exports.cleanupOverlay=function(){exports.offset=-24,Bangle.setLCDOverlay&&Bangle.setLCDOverlay(undefined,{id:'widget_utils'}),delete exports.autohide,delete Bangle.appRect,exports.animInterval&&(clearInterval(exports.animInterval),delete exports.animInterval),exports.hideTimeout&&(clearTimeout(exports.hideTimeout),delete exports.hideTimeout)},exports.cleanup=function(){exports.cleanupOverlay(),delete exports.offset,exports.swipeHandler&&(Bangle.removeListener('swipe',exports.swipeHandler),delete exports.swipeHandler),exports.origDraw&&(Bangle.drawWidgets=exports.origDraw,delete exports.origDraw)},exports.swipeOn=function(e){function f(){const b=exports.offset;Bangle.appRect.y=b+24,Bangle.appRect.h=1+Bangle.appRect.y2-Bangle.appRect.y,Bangle.setLCDOverlay&&(b>-24?Bangle.setLCDOverlay(a,0,b,{id:'widget_utils',remove:()=>{require('widget_utils').cleanupOverlay()}}):Bangle.setLCDOverlay(undefined,{id:'widget_utils'}))}function c(a,b){exports.animInterval&&clearInterval(exports.animInterval),exports.animInterval=setInterval(function(){exports.offset+=a;let c=!1;a>0&&exports.offset>=0?(c=!0,exports.offset=0):a<0&&exports.offset<-23&&(c=!0,exports.offset=-24),c&&(clearInterval(exports.animInterval),delete exports.animInterval,b&&b()),f()},50)}if(process.env.HWVERSION!==2)return exports.hide();if(exports.cleanup(),!global.WIDGETS)return;exports.autohide=e===undefined?2e3:e,Bangle.appRect={x:0,y:0,w:g.getWidth(),h:g.getHeight(),x2:g.getWidth()-1,y2:g.getHeight()-1};let a=Graphics.createArrayBuffer(g.getWidth(),26,16,{msb:!0});a.theme=g.theme,a._reset=a.reset,a.reset=function(){return this._reset().setColor(g.theme.fg).setBgColor(g.theme.bg)},a.reset().clearRect(0,0,a.getWidth(),23).fillRect(0,24,a.getWidth(),25);let d=g;exports.offset=-24;for(var b of global.WIDGETS)b._draw||(b._draw=b.draw,b.draw=function(){g=a,this._draw(this),g=d,exports.offset>-24&&f()},b._area=b.area,b.area.startsWith('b')&&(b.area='t'+b.area.substr(1)));exports.origDraw=Bangle.drawWidgets,Bangle.drawWidgets=()=>{g=a,exports.origDraw(),g=d},exports.swipeHandler=function(d,a){exports.hideTimeout&&(clearTimeout(exports.hideTimeout),delete exports.hideTimeout);let b;exports.autohide>0&&(b=function(){exports.hideTimeout=setTimeout(function(){c(-4)},exports.autohide)}),a>0&&exports.offset<0&&c(4,b),a<0&&exports.offset>-24&&c(-4)},Bangle.on('swipe',exports.swipeHandler),Bangle.drawWidgets()}}); +Modules.addCached("date_utils",function(){exports.dow=(c,a)=>{var b=require('locale').dow({getDay:()=>(c|0)%7},a).slice(0,a==2?1:100);return a==2?b.toUpperCase():b},exports.dows=(d,c)=>{var a=[];for(var b=0;b<7;b++)a.push(exports.dow(b+(d||0),c));return c==2?a.map(a=>a.toUpperCase()):a},exports.month=(c,a)=>{var b=require('locale').month({getMonth:()=>(11+(c|0))%12},a).slice(0,a==2?1:100);return a==2?b.toUpperCase():b},exports.months=c=>{var a=[],d=require('locale');for(var b=0;b<12;b++)a.push(d.month({getMonth:()=>b},c).slice(0,c==2?1:100));return c==2?a.map(a=>a.toUpperCase()):a}}); Bangle.loadWidgets(); Bangle.drawWidgets(); @@ -72,7 +74,7 @@ function resetSettings() { // clockHasWidgets: false, // Does the clock in 'clock' contain the string 'Bangle.loadWidgets' "12hour" : false, // 12 or 24 hour clock? firstDayOfWeek: 0, // 0 -> Sunday (default), 1 -> Monday - brightness: 1, // LCD brightness from 0 to 1 + brightness: 0, // LCD brightness from 0 to 1 // welcomed : undefined/true (whether welcome app should show) options: { wakeOnBTN1: true, @@ -326,24 +328,20 @@ function showThemeMenu(pop) { upd(th); } let rgb = {}; - rgb[/*LANG*/'Black'] = "#000"; - rgb[/*LANG*/'White'] = "#fff"; - rgb[/*LANG*/'Red'] = "#f00"; - rgb[/*LANG*/'Green'] = "#0f0"; - rgb[/*LANG*/'Blue'] = "#00f"; - rgb[/*LANG*/'Cyan'] = "#0ff"; - rgb[/*LANG*/'Magenta'] = "#f0f"; - rgb[/*LANG*/'Yellow'] = "#ff0"; - - // These would cause dithering, which is not great for e.g. text - rgb[/*LANG*/'Orange'] = "#ff7f00"; - rgb[/*LANG*/'Purple'] = "#7f00ff"; - rgb[/*LANG*/'Grey'] = "#7f7f7f"; - rgb[/*LANG*/'Maroon'] = "#3e1363"; - rgb[/*LANG*/'Indigo'] = "#3e1363"; - rgb[/*LANG*/'Dark Green'] = "#0e5c13"; - rgb[/*LANG*/'Navy'] = "#121e75"; - + rgb[/*LANG*/'black'] = "#000"; + rgb[/*LANG*/'white'] = "#fff"; + rgb[/*LANG*/'red'] = "#f00"; + rgb[/*LANG*/'green'] = "#0f0"; + rgb[/*LANG*/'blue'] = "#00f"; + rgb[/*LANG*/'cyan'] = "#0ff"; + rgb[/*LANG*/'magenta'] = "#f0f"; + rgb[/*LANG*/'yellow'] = "#ff0"; + if (!BANGLEJS2) { + // these would cause dithering, which is not great for e.g. text + rgb[/*LANG*/'orange'] = "#ff7f00"; + rgb[/*LANG*/'purple'] = "#7f00ff"; + rgb[/*LANG*/'grey'] = "#7f7f7f"; + } let colors = [], names = []; for(const c in rgb) { names.push(c); @@ -478,11 +476,12 @@ function LCDMenu() { Object.assign(lcdMenu, { /*LANG*/'LCD Brightness': { value: settings.brightness, - min: 0.1, + min: 0, max: 1, step: 0.1, onchange: v => { - settings.brightness = v || 1; + settings.brightness = v || 0; + print(settings.brightness); updateSettings(); Bangle.setLCDBrightness(settings.brightness); } From 7c5976b0ee24232dd249ab0e0de8b8cd566643a2 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 11 Jul 2025 15:16:15 -0400 Subject: [PATCH 6/7] Update settings.js --- apps/setting/settings.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/setting/settings.js b/apps/setting/settings.js index 7c2bcf33c..37944b638 100644 --- a/apps/setting/settings.js +++ b/apps/setting/settings.js @@ -1,5 +1,3 @@ -Modules.addCached("widget_utils",function(){exports.offset=0,exports.hide=function(){if(exports.cleanup(),!global.WIDGETS)return;g.reset();for(var a of global.WIDGETS){if(a._draw)return;a._draw=a.draw,a.draw=()=>{},a._area=a.area,a.area='',a.x!=undefined&&g.clearRect(a.x,a.y,a.x+a.width-1,a.y+23)}},exports.show=function(){if(exports.cleanup(),!global.WIDGETS)return;for(var a of global.WIDGETS){if(!a._draw)return;a.draw=a._draw,a.area=a._area,delete a._draw,delete a._area,a.draw(a)}},exports.cleanupOverlay=function(){exports.offset=-24,Bangle.setLCDOverlay&&Bangle.setLCDOverlay(undefined,{id:'widget_utils'}),delete exports.autohide,delete Bangle.appRect,exports.animInterval&&(clearInterval(exports.animInterval),delete exports.animInterval),exports.hideTimeout&&(clearTimeout(exports.hideTimeout),delete exports.hideTimeout)},exports.cleanup=function(){exports.cleanupOverlay(),delete exports.offset,exports.swipeHandler&&(Bangle.removeListener('swipe',exports.swipeHandler),delete exports.swipeHandler),exports.origDraw&&(Bangle.drawWidgets=exports.origDraw,delete exports.origDraw)},exports.swipeOn=function(e){function f(){const b=exports.offset;Bangle.appRect.y=b+24,Bangle.appRect.h=1+Bangle.appRect.y2-Bangle.appRect.y,Bangle.setLCDOverlay&&(b>-24?Bangle.setLCDOverlay(a,0,b,{id:'widget_utils',remove:()=>{require('widget_utils').cleanupOverlay()}}):Bangle.setLCDOverlay(undefined,{id:'widget_utils'}))}function c(a,b){exports.animInterval&&clearInterval(exports.animInterval),exports.animInterval=setInterval(function(){exports.offset+=a;let c=!1;a>0&&exports.offset>=0?(c=!0,exports.offset=0):a<0&&exports.offset<-23&&(c=!0,exports.offset=-24),c&&(clearInterval(exports.animInterval),delete exports.animInterval,b&&b()),f()},50)}if(process.env.HWVERSION!==2)return exports.hide();if(exports.cleanup(),!global.WIDGETS)return;exports.autohide=e===undefined?2e3:e,Bangle.appRect={x:0,y:0,w:g.getWidth(),h:g.getHeight(),x2:g.getWidth()-1,y2:g.getHeight()-1};let a=Graphics.createArrayBuffer(g.getWidth(),26,16,{msb:!0});a.theme=g.theme,a._reset=a.reset,a.reset=function(){return this._reset().setColor(g.theme.fg).setBgColor(g.theme.bg)},a.reset().clearRect(0,0,a.getWidth(),23).fillRect(0,24,a.getWidth(),25);let d=g;exports.offset=-24;for(var b of global.WIDGETS)b._draw||(b._draw=b.draw,b.draw=function(){g=a,this._draw(this),g=d,exports.offset>-24&&f()},b._area=b.area,b.area.startsWith('b')&&(b.area='t'+b.area.substr(1)));exports.origDraw=Bangle.drawWidgets,Bangle.drawWidgets=()=>{g=a,exports.origDraw(),g=d},exports.swipeHandler=function(d,a){exports.hideTimeout&&(clearTimeout(exports.hideTimeout),delete exports.hideTimeout);let b;exports.autohide>0&&(b=function(){exports.hideTimeout=setTimeout(function(){c(-4)},exports.autohide)}),a>0&&exports.offset<0&&c(4,b),a<0&&exports.offset>-24&&c(-4)},Bangle.on('swipe',exports.swipeHandler),Bangle.drawWidgets()}}); -Modules.addCached("date_utils",function(){exports.dow=(c,a)=>{var b=require('locale').dow({getDay:()=>(c|0)%7},a).slice(0,a==2?1:100);return a==2?b.toUpperCase():b},exports.dows=(d,c)=>{var a=[];for(var b=0;b<7;b++)a.push(exports.dow(b+(d||0),c));return c==2?a.map(a=>a.toUpperCase()):a},exports.month=(c,a)=>{var b=require('locale').month({getMonth:()=>(11+(c|0))%12},a).slice(0,a==2?1:100);return a==2?b.toUpperCase():b},exports.months=c=>{var a=[],d=require('locale');for(var b=0;b<12;b++)a.push(d.month({getMonth:()=>b},c).slice(0,c==2?1:100));return c==2?a.map(a=>a.toUpperCase()):a}}); Bangle.loadWidgets(); Bangle.drawWidgets(); From 4595680e81dc916118ccb5f6c85a588161447aad Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Mon, 21 Jul 2025 11:23:26 -0400 Subject: [PATCH 7/7] Fixed for @gfwilliams' reviewed changes --- apps/setting/settings.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/setting/settings.js b/apps/setting/settings.js index 37944b638..777131b5e 100644 --- a/apps/setting/settings.js +++ b/apps/setting/settings.js @@ -1,3 +1,4 @@ + Bangle.loadWidgets(); Bangle.drawWidgets(); @@ -72,7 +73,7 @@ function resetSettings() { // clockHasWidgets: false, // Does the clock in 'clock' contain the string 'Bangle.loadWidgets' "12hour" : false, // 12 or 24 hour clock? firstDayOfWeek: 0, // 0 -> Sunday (default), 1 -> Monday - brightness: 0, // LCD brightness from 0 to 1 + brightness: 1, // LCD brightness from 0 to 1 // welcomed : undefined/true (whether welcome app should show) options: { wakeOnBTN1: true, @@ -474,12 +475,11 @@ function LCDMenu() { Object.assign(lcdMenu, { /*LANG*/'LCD Brightness': { value: settings.brightness, - min: 0, + min : BANGLEJS2 ? 0 : 0.1, max: 1, step: 0.1, onchange: v => { - settings.brightness = v || 0; - print(settings.brightness); + settings.brightness = v ?? 1; updateSettings(); Bangle.setLCDBrightness(settings.brightness); }