Skip to content

Instantly share code, notes, and snippets.

@devsnek
Last active January 7, 2025 15:06
Show Gist options
  • Save devsnek/0167a15ebb6fffc5e211d468ed0ca35b to your computer and use it in GitHub Desktop.
Save devsnek/0167a15ebb6fffc5e211d468ed0ca35b to your computer and use it in GitHub Desktop.
const fontStr = E.toString(
require("heatshrink").decompress(
atob(
"ACsf4AFDg/wAocB/gSEv4YdACUHwAFDh/gAoc//AqE/w2D///DAUDAoIYCh4FBDAUfAol/AoJWCAgP/MQQFCEYU//4vDEYJnDF4JzEGgYYCLIrDdMIRjDAoZdBJQIABJgJuCLAQYZQoSuCOgQJCMYYYCN4QJBDExjkDAoAYPlbgwMAY7DJQhtGAARUDDCgAUh/+j5jEw5jE8JjE/F/MYYYY8Ef4DHDg/wY4cB/jHEv7HEDEZIBDAgGBDAYFBDAYFBDCq0YawZjDBIgnDMYb5DSvAYfR4L5DAoX/VwYABVwYABDCgAYcAQFCcAa9CcAS9CfIQYbgB8BHIiVBAAaVBAoaVBDE6ulDAoAYGIUPGInDGInwGIn8n5KEDC2APgIYC8CVBBIMD/CVBBIIOBSoIJBDFCVDDAKuEDAKuDDAKuDDCIAYfNYYGV3IYFV0QYFVybKESoIbEGgQACn40BDCwLEOQQYDEgiLCDFL5SBgauBDC6uSAApKxSoMH+CGC/0B/ifCSoN/T4QOBj/ABIIYmMcgYFADAcBJQxjDAoJjDAoJjDDDCu4DAqukDAoAZJYJSBAoJaCKQMALQRrBAwJBBNYIYaAAo",
),
),
);
function setFont() {
g.setFontCustom(fontStr, 46, atob("DBQdGh0dHR0dHB0dDA=="), 50 | 65536);
}
const width = g.getWidth();
const height = g.getHeight();
function draw() {
// black out
g.setColor("#000");
g.fillRect(0, 0, width, height);
// red rect
g.setColor("#f00");
g.fillRect(0, 65, width, 111);
// text
const date = new Date();
const yearStr = date.getFullYear().toString();
let timeStr = "";
const hours = date.getHours();
const minutes = date.getMinutes();
if (hours < 10) timeStr += "0";
timeStr += hours;
if (minutes < 10) timeStr += "0";
timeStr += minutes;
let dateStr = "";
const month = date.getMonth() + 1;
if (month < 10) dateStr += "0";
dateStr += month;
const day = date.getDate();
if (day < 10) dateStr += "0";
dateStr += day;
setFont();
function d(s, y) {
let x = 10;
for (let i = 0; i < 4; i += 1) {
g.drawString(s[i], x, y);
x += 41;
}
}
g.setColor("#666");
d("1532", -25);
g.setColor("#fff");
d(yearStr, 23);
d(timeStr, 70);
d(dateStr, 117);
g.setColor("#666");
d("8543", 165);
queueDraw();
}
let drawTimeout;
function queueDraw() {
if (drawTimeout) clearTimeout(drawTimeout);
drawTimeout = setTimeout(function () {
drawTimeout = undefined;
draw();
}, 60000 - (Date.now() % 60000));
}
g.clear();
draw();
Bangle.on("lcdPower", (on) => {
if (on) {
draw();
} else {
if (drawTimeout) clearTimeout(drawTimeout);
drawTimeout = undefined;
}
});
Bangle.setUI("clock");
Bangle.loadWidgets();
Bangle.drawWidgets();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment