Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Download center for watchfaces, 3D cases and more #104

Open
mat942 opened this issue May 25, 2021 · 20 comments
Open

Download center for watchfaces, 3D cases and more #104

mat942 opened this issue May 25, 2021 · 20 comments
Assignees
Labels
help wanted Extra attention is needed

Comments

@mat942
Copy link

mat942 commented May 25, 2021

Hello all,

Given user base is growing by the day and OSW offers a very high degree of customization I think a place to showcase each user creativity could be great. The idea would be to have a place we can download watchfaces and integrate them easily (maybe redo code so its a single file to replace?). It could also be used for 3d cases or apps later on. Something like an "OSW store" but all free with credit to creators of course.

Any thoughts? Happy to assist

@uvwxy uvwxy added this to the Ideas / Backlog milestone May 26, 2021
@uvwxy uvwxy self-assigned this May 26, 2021
@uvwxy uvwxy added the help wanted Extra attention is needed label May 26, 2021
@richtepa
Copy link
Contributor

I would like to help too. Is there a plan?
Do we make watchfaces in a single file first?
Do we want to use an available system for sharing/downloading or do we want to code it ourseves?
The user needs to compile and program the whole firmware. OSW-OS is hosted on GH. Is there a good way to integrate the Download center on GH (another Repo in combination with GH-Pages)?

@richtepa
Copy link
Contributor

On a download center we could also make it possible to configure and install the FW on the watch via USB (later OTA).
By selecting apps/watch-faces we could change the code correspondingly. Uploading should not be a problem, too. We only need to have an idea on how to build the FW from the code (client or server).

@mat942
Copy link
Author

mat942 commented Jun 18, 2021

I was thinking of runnign a wordpress site that can handle upload dowload and have either a unified watchface format or store firmware elfs.

@mat942
Copy link
Author

mat942 commented Jun 18, 2021

I would like to help too. Is there a plan?
Do we make watchfaces in a single file first?
Do we want to use an available system for sharing/downloading or do we want to code it ourseves?
The user needs to compile and program the whole firmware. OSW-OS is hosted on GH. Is there a good way to integrate the Download center on GH (another Repo in combination with GH-Pages)?

I think the easiest way is make watch faces single file and shareable first
We can then work on a peer review or voting system to score the best in a gallery format with easy implementation on the user side. Would be good to keep the watch face version independent and build independent (light/gps)

@richtepa
Copy link
Contributor

I was thinking of runnign a wordpress site that can handle upload dowload

Wordpress is a simple solution, too. I'm not very experienced using Wordpress but there are a lot of plugins. Maybe there is the perfect one out there.

have either a unified watchface format or store firmware elfs

I'm not sure if elfs are the way to go. If you provide a watchface as .elf it will be the whole OS. This way you cannot add apps or change the config. Or did I miss something?

I think the easiest way is make watch faces single file and shareable first

Yes. 💯

We can then work on a peer review or voting system to score the best in a gallery format with easy implementation on the user side.

For watchfaces e.g. upload

  • Watchface itself
  • Screenshot / Image (maybe provide easy tool to create these screenshots)
  • Title + (short) description

Voting system is a nice idea.

Would be good to keep the watch face version independent and build independent (light/gps)

I'd prefer light+gps by default, but gps-only should be possible, too (e.g. if someone wants to shows a map or uses any other feature)

@mat942
Copy link
Author

mat942 commented Jun 18, 2021

something like this could work https://wordpress.org/plugins/bbp-voting/

@mat942
Copy link
Author

mat942 commented Jun 18, 2021

fully agree with your vision @richtepa

@richtepa
Copy link
Contributor

Is @uvwxy d'accord with our plan?

Then I'll search and test for suitable wordpress plugins this weekend.

@richtepa
Copy link
Contributor

@mat942 is there something you want to do? (I don't want to take it away from you 😉 )

@simonmicro
Copy link
Member

simonmicro commented Jun 18, 2021

I think the easiest way is make watch faces single file and shareable first

💯 - Problem is we are unable to compile a stand-alone add-on for the firmware, as the latter one may not include all used functions (optimizations, optimizations).

  • @SeanReg build a LUA integration and we could try to port existing apps and extend the API to make it really usable (may the best way)!
  • The better way (I think) would be to utilize something like a website / docker container to compile the OS with all needed add-ons directly for the watch and then sent it over (OTA is WIP and will be soon ™️ finished)! A cool example would be https://github.com/benzino77/tasmocompiler

I was thinking of runnign a wordpress site that can handle upload dowload and have either a unified watchface format or store firmware elfs.

Brrr - who is up for maintaining that site in a secure way? Not me... I'm thinking a more static approach - like Hugo and then integrating into GitHub for the file / source storage (take a look into https://cinnamon-spices.linuxmint.com/ and his Github Repo https://github.com/linuxmint/cinnamon-spices-applets). Additionally everyone should be able to host a copy of the repo by himself easily? But that's just a personal preference...

But lets see, what you guys can build!

@mat942
Copy link
Author

mat942 commented Jun 18, 2021

We might want to create a community branch to have an architecture development for shareable watch faces

@mat942
Copy link
Author

mat942 commented Jun 18, 2021

good catch on the web maintenance, we will need to figure out a system for users to submit their ideas though so we keep the site populated

@mat942
Copy link
Author

mat942 commented Jun 18, 2021

your lead with tasmo also looks very promising

@simonmicro
Copy link
Member

something like this could work https://wordpress.org/plugins/bbp-voting/

BUT this looks very good for a feature request page?! Maybe, maybe... Someone interested?

@mat942
Copy link
Author

mat942 commented Jun 18, 2021

something like this could work https://wordpress.org/plugins/bbp-voting/

BUT this looks very good for a feature request page?! Maybe, maybe... Someone interested?

https://wordpress.org/plugins/simple-feature-requests/

@richtepa
Copy link
Contributor

The better way (I think) would be to utilize something like a website / docker container to compile the OS with all needed add-ons directly for the watch and then sent it over (OTA is WIP and will be soon ™️ finished)! A cool example would be https://github.com/benzino77/tasmocompiler

That's my favorite way, too. Creating the compiler will be hard.

Brrr - who is up for maintaining that site in a secure way? Not me... I'm thinking a more static approach - like Hugo and then integrating into GitHub for the file / source storage (take a look into https://cinnamon-spices.linuxmint.com/ and his Github Repo https://github.com/linuxmint/cinnamon-spices-applets). Additionally everyone should be able to host a copy of the repo by himself easily? But that's just a personal preference...

Thats why I suggested the GH approach earlier. We could create some small scripts and only display/provide the watchfaces from GH on the external download center. Editing would be in GH. (like Hugo but more tailored to our needs)

But lets see, what you guys can build!

I think we are still in the idea/planning phase. The more people share their ideas and taught on the different methods, the better the result will be.

@richtepa
Copy link
Contributor

I have no idea on how to combine the files into one.

This weekend I started writing some code (https://github.com/richtepa/osw-store) for the download center. It's a bit rough and has a lot of loose ends I need to fix. (+cleaning the code up, security, more features, etc.) The design is also not pretty 😉 .

A preview of this possible solution can be found here: https://osw.richter.dev
If you don't want to "sign up":
username: demo
password: 1234

If the feedback is mostly positive I will keep working on this way.
ANY feedback is desired, negative too!

@uvwxy
Copy link
Member

uvwxy commented Jun 20, 2021

Sorry for the late response. Thank you for the great discussion!
Here is what I picked up + my two cents:

  • first share the c++ files until the lua script part is ready (it's missing gfx at the moment and uses ArduinoGraphics instead). Once the lua part is worked out, it should be easy to port to c++, and make something dynamic to download them onto the watch from the watch (think: far in the future ;) )
  • I wrote OswServiceTaskRawScreenServer.cpp, to grab raw rgb888 screen frames directly form the watch to create screenshots while apps are running (convert to png on desktop), this way we could create nice gifs with a nice bash loop. even if the gfx code can be compiled on desktop, I guess most will work with developing directly on the watch, and hence the idea to grab the screens from there. The server is not working yet, but the general code/stubs are there
  • static vs wordpress: personally I prefer static, generated from markdown (maintained via github). either mkdocs (like the project page) or jekyll (like my website p3dt.net, there even nice tools to always show the latest additions)
  • creating customized builds via docker: this is something I could do, I have a server that can run docker. the basic idea would be to use flags to enable/disable apps and then createa platformio profile to run the compiler in the container

@richtepa
Copy link
Contributor

[...] ANY feedback is desired [...]

No feedback is feedback, too.

I wrote OswServiceTaskRawScreenServer.cpp [...] The server is not working yet, but the general code/stubs are there
[...] creating customized builds via docker: this is something I could do

I think this is a point we could add to the backlog. But if this is something we (you) can do, great 👍 .

first share the c++ files [...]

Yes, in my opinion the page itself (providing the c++ files) would be the first step.

static vs wordpress [...] generated from markdown (maintained via github). either mkdocs (like the project page) or jekyll (like my website p3dt.net, there even nice tools to always show the latest additions)

I am not familiar with these tools. Is there a way to add a voting system (if we like to)? If there is nobody else, I think this task will be yours, too 😉 .

@mat942
Copy link
Author

mat942 commented Apr 14, 2022

Hi guys! discussion on this has been pretty much frozen since summer. Has anybody advanced any steps?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants