InfiniTimeOrg / InfiniTime

Firmware for Pinetime smartwatch written in C++ and based on FreeRTOS
GNU General Public License v3.0
2.63k stars 902 forks source link

Terminal Watchface Improvements and added Weather. #2001

Open JustScott opened 4 months ago

JustScott commented 4 months ago

terminal_weather_misty terminal_weather_clear terminal_less_gray terminal_all_gray

I don't personally use the terminal watch face, so I'm looking for suggestions on what colors you guys want, and if I should change certain text like the steps# in the step counter.

github-actions[bot] commented 4 months ago

Build checks have not completed. Possible reasons for this are:

  1. The checks need to be approved by a maintainer
  2. The branch has conflicts
  3. The firmware build has failed
vkareh commented 4 months ago

This is really cool, I like the graying out of n/a data!

How does it truncate if you have longer weather condition names, like Scattered Clouds or something?

Also, there seems to be a # sign after some of the lines, is that on purpose?

One suggestion though: the PS1 could be, say, lightGray so that it doesn't overpower the rest of the data, maybe then the time can be white so that it's easier to see at a quick glance?

I haven't really used this face a lot, but this PR might tip the scale for me.

JustScott commented 4 months ago

@vkareh I'm confused about the #'s at the end of the lines as well, they were already there so i didn't want to remove them incase there was a reason. As far as the trunacation, I modified your GetCondition function to GetSimpleCondition, which just uses a single word, like cloudy instead of Scattered Clouds... it misses out on some detail, but I just don't see a way of fitting more than one word.

JustScott commented 4 months ago

This is with the time and date fonts white. I think the prompts look better in the first image with the lightGray, instead of the second image with gray. Thoughts?

terminal_lightgray_prompt terminal_gray_prompt

vkareh commented 4 months ago

I think the prompts look better in the first image with the lightGray, instead of the second image with gray. Thoughts?

In fully agree. Light gray looks better

AlbeyAmakiir commented 4 months ago

I really like the prompts being light gray. Good idea.

I'm a fan of each item being a different colour the way it currently is, and especially the [LABEL] part being the base terminal colour, as the colour helps direct my eye, but I do like the idea of the battery changing colour and the empty items being grayed out.

I dunno where the # has come from. It's not on mine, and I use the watchface all the time. Here's what mine looks like, at version 1.14.0: IMG_20240204_133547

FintasticMan commented 4 months ago

I agree with Albey above that I prefer the labels being white. The # symbols come from the way that the text was being coloured. It was done with #012345 text#, and I presume the final # wasn't removed at first. It has been fixed now though, I see.

I definitely prefer lightGray to gray, but perhaps if the labels are the same colour white works too?

Is there a reason that the same function for the weather description from the forecast app can't be used here? Are some words too long to fit?

I quite liked the colour variety of the current watch face. Maybe we can experiment with the colours a bit?

JustScott commented 4 months ago

@FintasticMan Ah that's where the # came from, and yes more than a one word weather description overflows. Here's a version of the face with the labels white (#ffffff), the time and date using their original color value, and the prompts still using the lightGray value.

terminal_grayed terminal_active

JustScott commented 4 months ago

What are your guys thoughts on replacing the 'you have mail' text for new notifications, with just turning the the prompts orange (or some other color)?

terminal_orange_prompts

AlbeyAmakiir commented 4 months ago

The extra line is nice and obvious. Only changing colour wouldn't communicate to new users of the face why it has done so. Moreso, communicating any information through colour alone makes it inaccessible to colourblind users.

That said, I'm not opposed to adding that colour to the mail text. That could make it stand out even better than it does now, I think.

Was there another reason you suggested changing the colour instead of having the line?

JustScott commented 4 months ago

@AlbeyAmakiir I just thought it was a bit out of place for a terminal watch face to have random text above the first prompt appear. But you're right, just changing the color wouldn't work, I hadn't taken into account color blind users.

I think having a more realistic terminal message could fit the lore a little better, I made an example of a background 'notify' job completing in the picture below, but if anyone has a better one let me know. (I'm also completely fine with leaving it as it was if that's how people prefer it).

terminal_notification

AlbeyAmakiir commented 4 months ago

Hmm, I'm not sure. Having it at the top does have the advantage that it's right next to the direction in which you need to swipe for notifications, which I only noticed because your alternative is at the other extreme. But you're right it's a little off-lore. I also considered a [MAIL] entry in the output, but that doesn't have the benefit of being entirely invisible until there's a notification, which seems like it might be important for grabbing attention.

So it might be best to leave it as is, but I'm chill if others feel differently. I'm not sure how to weigh up the pros and cons of all these options.

vkareh commented 4 months ago

@JustScott

What are your guys thoughts on replacing the 'you have mail' text for new notifications, with just turning the the prompts orange (or some other color)?

I agree with @AlbeyAmakiir with regards to accessibility. Color-coding on a notification is not great UX. The [1]+ Done line at the bottom looks really cool, but the implication is that a background job is finished. The Done message is bash's rendering of a POSIX signal (I think SIGHUP) and so the text can be anything (bash has built-ins for Done, Stopped, Exit, etc...). I think the message can very well be [1]+ Notify, a reasonable rendering of a made-up SIGNOTIFY POSIX signal (we're all playing make believe here anyway, right?)

Playing with a terminal, I recreated what the flow would look like this (and yes, I modified my PS1 and created a now alias just for this test :stuck_out_tongue_closed_eyes:):

user@watch:~ $ now
[TIME] 12:28:51
[DATE] 02/05/24
user@watch:~ $ echo "You have mail." &
[1] 71270
You have mail.
[1]+  Done                    echo "You have mail."
user@watch:~ $ now
[TIME] 12:28:54
[DATE] 02/05/24
user@watch:~ $ notify-send "You have mail." &
[1] 71281
user@watch:~ $ now
[TIME] 12:28:59
[DATE] 02/05/24
[1]+  Done                    notify-send "You have mail."
user@watch:~ $ 

Based on this, the signal message can be either before the top prompt (in the case of using echo &) or before the bottom prompt (in the case of using notify-send &). In both cases it shows up before the prompt, and never after it.

Translating this to the watch face, I think we have two options that could work and satisfy the lore: InfiniSim_2024-02-05_123151 InfiniSim_2024-02-05_123308

I personally prefer the first one.

vkareh commented 4 months ago

Not sure if this is desired, but continuing on the theme/lore aspect, I recolored the watchface to use a 3-bit color space (8 colors). Maybe better to just use LVGL's pre-defined colors (which more or less simulate a 4-bit color space) InfiniSim_2024-02-05_142017

Not sure, maybe it's too much...

AlbeyAmakiir commented 4 months ago

I won't know for sure until I see it on the actual watch screen, but on my computer the 3-bit colours look a bit too harsh. Maybe it'll be fine irl, though? I'm not sure.

I definitely prefer the notify text being at the top over the bottom. (Also, I really appreciate that you actually tested that on a terminal. Fantastic. XD )

vkareh commented 4 months ago

@AlbeyAmakiir I agree - the 3-bit colours are not great, to be honest.

FintasticMan commented 4 months ago

I would say it would be best to break the weather display out of this PR into its own, so that we can discuss that separately from changing the UI.

pbone64 commented 3 months ago

I much prefer the white prompts. It fits the terminal theme better (at least in my experience) and using less colours makes the face as a whole less busy.

Integrat-edCircuit commented 2 weeks ago

+1 having weather on terminal watchface would be great, as it is more precise for the number of steps than pinetimestyle