Merge branch 'thyttan-anotherconf'
commit
0208268bf2
|
|
@ -270,6 +270,7 @@ and which gives information about the app for the Launcher.
|
|||
// 'notify' - provides 'notify' library for showing notifications
|
||||
// 'locale' - provides 'locale' library for language-specific date/distance/etc
|
||||
// (a version of 'locale' is included in the firmware)
|
||||
// 'defaultconfig' - a set of apps that will can be installed and will wipe out all previously installed apps
|
||||
"tags": "", // comma separated tag list for searching
|
||||
// common types are:
|
||||
// 'clock' - it's a clock
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
0.01: New App!
|
||||
0.02: update to my current preferences.
|
||||
0.03: update app list
|
||||
0.04: change app name "mysetup" -> "anotherconf"
|
||||
0.05: remove apps that are not "core" to the experience.
|
||||
0.06: change name "anotherconf" -> "confthyttan"
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
# Thyttan's Default Config
|
||||
|
||||
A different default set of apps and configurations. Brings many quality of life improvements. Opinionated based on the creators taste. Read more below before installing.
|
||||
|
||||
## Usage
|
||||
|
||||
Before installing do this:
|
||||
|
||||
1. Backup your current setup (via the "More..." tab of the App Loader) so you can restore it later if you want.
|
||||
2. Install this app (you'll be prompted about all data being removed from your Bangle)
|
||||
3. Try it out, switch out apps to your favorites and tweak to your liking!
|
||||
|
||||
## Features
|
||||
|
||||
There will not be a trace of a "Thyttan's Default Config" app on your watch after installation. Only the apps it installed and the configurations.
|
||||
|
||||
On the clock face:
|
||||
- Swipe right on the screen to open the launcher (Desktop Launcher) - or press the hardware button.
|
||||
- Swipe left to open a flashlight app.
|
||||
- Swipe up to open the messages.
|
||||
- Swipe down for quick access to music and podcast controls.
|
||||
- (Do a subsequent left or right swipe to enter the listed apps)
|
||||
- (Check out the "Quick Launch" app readme for more info)
|
||||
|
||||
## Requests
|
||||
|
||||
Add to the espruino/BangleApps issue tracker and mention @thyttan for bug reports and suggestions.
|
||||
|
||||
## Creator
|
||||
|
||||
thyttan
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
|
|
@ -0,0 +1 @@
|
|||
{"mode":0,"apps":[{"name":"Run+","src":"runplus.app.js","files":"runplus.info,runplus.app.js,runplus.img,runplus.settings.js,runplus_karvonen"}],"timeout":10}
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"mode":0,"apps":[{"name":"Calculator","src":"calculator.app.js"},{"name":"SleepLog","src":"sleeplog.app.js"},{"name":"Messages","sortorder":-9,"src":"messagegui.app.js"},{"name":"Messages","sortorder":-9,"src":"messagegui.app.js","files":"messagegui.info,messagegui,messagegui.app.js,messagegui.new.js,messagegui.boot.js,messagegui.img"}],"standardNumSwipeHandlers":5,"standardNumDragHandlers":1}
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"showClocks":true,"showLaunchers":true,"direct":false,"swipeExit":false,"timeOut":"15s"}
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"buzzOnCharge":true,"monthFirst":true,"twentyFourH":true,"showAmPm":false,"showSeconds":true,"showWeather":false,"stepGoal":10000,"stepBar":true,"weekBar":true,"mondayFirst":true,"dayBar":true,"redrawOnStep":false}
|
||||
|
|
@ -0,0 +1 @@
|
|||
{useAppHistory:true,disregardQuicklaunch:true,hideLoading:true}
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"colors":"011","image":"heart","touchOn":"always","oversize":7,"dragDelay":500,"minValue":0.01,"tapToLock":false,"unlockSide":"","tapSide":"","tapOn":"always","tOut":2000,"minFlash":0.2,"isOn":true,"value":0.9109}
|
||||
|
|
@ -0,0 +1 @@
|
|||
{vibrateTimeout:10,vibrate:":",vibrateCalls:":::",flash:false}
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
{ "id": "confthyttan",
|
||||
"name": "Thyttan's Default Config",
|
||||
"version":"0.06",
|
||||
"description": "A different default set of apps and configurations. Brings many quality of life improvements. Opinionated based on the creators taste. Read more below before installing.",
|
||||
"icon": "app.png",
|
||||
"type": "defaultconfig",
|
||||
"tags": "system,configuration,config,anotherconfig,thyttan",
|
||||
"supports" : ["BANGLEJS2"],
|
||||
"readme": "README.md",
|
||||
"dependencies" : {
|
||||
"sched":"app",
|
||||
"kbmulti":"app",
|
||||
"messageicons":"app",
|
||||
"widmsggrid":"app",
|
||||
"msgwakefup":"app",
|
||||
"delaylock":"app",
|
||||
"notify":"app",
|
||||
"health":"app",
|
||||
"widminbate":"app",
|
||||
"podadrem":"app",
|
||||
"spotrem":"app",
|
||||
"android":"app",
|
||||
"widanclk":"app",
|
||||
"backswipe":"app",
|
||||
"torch":"app",
|
||||
"calculator":"app",
|
||||
"widbt_notify":"app",
|
||||
"smpltmr":"app",
|
||||
"clkinfostopw":"app",
|
||||
"runplus":"app",
|
||||
"dtlaunch":"app",
|
||||
"quicklaunch":"app",
|
||||
"kineticscroll":"app",
|
||||
"alarm":"app",
|
||||
"recorder":"app",
|
||||
"agenda":"app",
|
||||
"edgeclk":"app",
|
||||
"autoreset":"app",
|
||||
"chargent":"app",
|
||||
"setting":"app",
|
||||
"fastload":"app",
|
||||
"boot":"app",
|
||||
"ateatimer":"app",
|
||||
"drained":"app"
|
||||
},
|
||||
"storage": [
|
||||
{"name":"backswipe.json",
|
||||
"url":"backswipe.json"},
|
||||
{"name":"autoreset.json",
|
||||
"url":"autoreset.json"},
|
||||
{"name":"dtlaunch.json",
|
||||
"url":"dtlaunch.json"},
|
||||
{"name":"fastload.json",
|
||||
"url":"fastload.json"},
|
||||
{"name":"quicklaunch.json",
|
||||
"url":"quicklaunch.json"},
|
||||
{"name":"messages.settings.json",
|
||||
"url":"messages.settings.json"},
|
||||
{"name":"widbt_notify.json",
|
||||
"url":"widbt_notify.json"},
|
||||
{"name":"recorder.json",
|
||||
"url":"recorder.json"},
|
||||
{"name":"edgeclk.settings.json",
|
||||
"url":"edgeclk.settings.json"},
|
||||
{"name":"setting.json",
|
||||
"url":"setting.json"}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
{lapp:{name:"Show Launcher",sortorder:-12,src:"no source"},rapp:{name:"torch",type:"app",sortorder:-11,src:"torch.app.js"},uapp:{name:"Messages",sortorder:-9,src:"messagegui.app.js"},dapp:{name:"Extension",type:"app",sortorder:-11,src:"quicklaunch.app.js"},tapp:{name:""},dlapp:{name:"PA Remote",src:"podadrem.app.js"},drapp:{name:"Remote for Spotify",src:"spotrem.app.js"},duapp:{name:""},ddapp:{name:"Extension",type:"app",sortorder:-11,src:"quicklaunch.app.js"},dtapp:{name:""},ddlapp:{name:"Alarms",src:"alarm.app.js"},ddrapp:{name:"Run+",src:"runplus.app.js"},dduapp:{name:""},dddapp:{name:"Agenda",src:"agenda.app.js"},ddtapp:{name:""},rlapp:{name:""},rrapp:{name:""},ruapp:{name:""},rdapp:{name:""},rtapp:{name:""},trace:"dr"}
|
||||
|
|
@ -0,0 +1 @@
|
|||
{recording:false,period:10,record:["gps","hrm","steps"],file:"recorder.log0.csv"}
|
||||
|
|
@ -0,0 +1 @@
|
|||
{ble:true,blerepl:true,log:false,quiet:0,timeout:10,vibrate:true,beep:true,timezone:2,HID:false,clock:"edgeclk.app.js","12hour":false,firstDayOfWeek:1,brightness:0.5,options:{wakeOnBTN1:true,wakeOnBTN2:true,wakeOnBTN3:true,wakeOnFaceUp:false,wakeOnTouch:false,wakeOnTwist:false,twistThreshold:819.2,twistMaxY:-800,twistTimeout:1000,btnLoadTimeout:700},theme:{fg:65535,bg:0,fg2:65535,bg2:8,fgH:65535,bgH:31,dark:true},clockHasWidgets:true,launcher:"dtlaunch.app.js",touch:{x1:6,y1:14,x2:197,y2:178}}
|
||||
|
|
@ -0,0 +1 @@
|
|||
{showWidget:true,buzzOnConnect:false,buzzOnLoss:false,hideConnected:false,showMessage:false,nextBuzz:30000}
|
||||
|
|
@ -15,6 +15,6 @@
|
|||
{"name":"messagesoverlay.settings.js","url":"settings.js"},
|
||||
{"name":"messagesoverlay.default.json","url":"default.json"}
|
||||
],
|
||||
"data": [{"name":"bthrm.json"}],
|
||||
"data":[{"name":"messagesoverlay.json"}],
|
||||
"screenshots": [{"url":"screen_call.png"} ,{"url":"screen_message.png"} ]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ const APP_KEYS = [
|
|||
const STORAGE_KEYS = ['name', 'url', 'content', 'evaluate', 'noOverwite', 'supports', 'noOverwrite'];
|
||||
const DATA_KEYS = ['name', 'wildcard', 'storageFile', 'url', 'content', 'evaluate'];
|
||||
const SUPPORTS_DEVICES = ["BANGLEJS","BANGLEJS2"]; // device IDs allowed for 'supports'
|
||||
const METADATA_TYPES = ["app","clock","widget","bootloader","RAM","launch","scheduler","notify","locale","settings","textinput","module","clkinfo"]; // values allowed for "type" field
|
||||
const METADATA_TYPES = ["app","clock","widget","bootloader","RAM","launch","scheduler","notify","locale","settings","textinput","module","clkinfo","defaultconfig"]; // values allowed for "type" field - listed in README.md
|
||||
const FORBIDDEN_FILE_NAME_CHARS = /[,;]/; // used as separators in appid.info
|
||||
const VALID_DUPLICATES = [ '.tfmodel', '.tfnames' ];
|
||||
const GRANDFATHERED_ICONS = ["s7clk", "snek", "astral", "alpinenav", "slomoclock", "arrow", "pebble", "rebble"];
|
||||
|
|
@ -207,6 +207,10 @@ apps.forEach((app,appIdx) => {
|
|||
if (!app.name) ERROR(`App ${app.id} has no name`, {file:metadataFile});
|
||||
var isApp = !app.type || app.type=="app";
|
||||
var appTags = app.tags ? app.tags.split(",") : [];
|
||||
/*if (appTags.some(tag => tag!=tag.trim()))
|
||||
WARN(`App ${app.id} 'tag' list contains whitespace ("${app.tags}")`, {file:metadataFile});
|
||||
if (appTags.some(tag => tag!=tag.toLowerCase()))
|
||||
WARN(`App ${app.id} 'tag' list contains uppercase ("${app.tags}")`, {file:metadataFile});*/
|
||||
if (app.name.length>20 && !app.shortName && isApp) ERROR(`App ${app.id} has a long name, but no shortName`, {file:metadataFile});
|
||||
if (app.type && !METADATA_TYPES.includes(app.type))
|
||||
ERROR(`App ${app.id} 'type' is one one of `+METADATA_TYPES, {file:metadataFile});
|
||||
|
|
@ -296,7 +300,8 @@ apps.forEach((app,appIdx) => {
|
|||
if (INTERNAL_FILES_IN_APP_TYPE[app.type].includes(file.name))
|
||||
fileInternal = true;
|
||||
}
|
||||
allFiles.push({app: app.id, file: file.name, internal:fileInternal});
|
||||
if (!app.type=="defaultconfig")
|
||||
allFiles.push({app: app.id, file: file.name, internal:fileInternal});
|
||||
if (file.url) if (!fs.existsSync(appDir+file.url)) ERROR(`App ${app.id} file ${file.url} doesn't exist`, {file:metadataFile});
|
||||
if (!file.url && !file.content && !app.custom) ERROR(`App ${app.id} file ${file.name} has no contents`, {file:metadataFile});
|
||||
var fileContents = "";
|
||||
|
|
@ -494,7 +499,7 @@ while(fileA=allFiles.pop()) {
|
|||
if (isGlob(nameA)||isGlob(nameB))
|
||||
ERROR(`App ${fileB.app} ${typeB} file ${nameB} matches app ${fileA.app} ${typeB} file ${nameA}`);
|
||||
else if (fileA.app != fileB.app && (!fileA.internal) && (!fileB.internal))
|
||||
WARN(`App ${fileB.app} ${typeB} file ${nameB} is also listed as ${typeA} file for app ${fileA.app}`);
|
||||
WARN(`App ${fileB.app} ${typeB} file ${nameB} is also listed as ${typeA} file for app ${fileA.app}`, {file:APPSDIR_RELATIVE+fileB.app+"/metadata.json"});
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
|||
2
core
2
core
|
|
@ -1 +1 @@
|
|||
Subproject commit bf08b484830ef4e811faf67ec663ebf839b5d09b
|
||||
Subproject commit 3ec8e289a26a545d0d0c50f6945978584fb3d7f8
|
||||
|
|
@ -14,4 +14,4 @@ type AppInfo = {
|
|||
|
||||
type AppType = "app" | "clock" | "widget" | "module" | "bootloader" |
|
||||
"settings" | "clkinfo" | "RAM" | "launch" | "textinput" | "scheduler" |
|
||||
"notify" | "locale";
|
||||
"notify" | "locale" | "defaultconfig";
|
||||
|
|
|
|||
Loading…
Reference in New Issue