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

Allow to temporarily switch theme/mode for e.g. today / Prepone activation on demand #439

Closed
tooomm opened this issue Mar 25, 2022 · 16 comments
Labels
enhancement New feature or request

Comments

@tooomm
Copy link
Contributor

tooomm commented Mar 25, 2022

Describe the enhancement or feature you'd like
Untitled
There are only permanent toggle buttons which override your custom schedule. While there are use cases for this, there are other situations where one only wants to enable Dark Mode according to a specific environment they are currently working in.
It would be a great if the tool supports the user here and automatically goes back to his selected schedule.

It could be a combined button which temporarily enables the mode which is currently not running, e.g.
Enable Light/Dark Theme for Today
Enabling a certain mode until next (scheduled) execution would also describe the requested action.

Such a feature would basically prepone the planned schedule activation on request once, without altering the schedule itself and goes back to normal behavior on the selected times.


(BTW: If you want to take a screenshot, the enabled check marks in that menu never shop up in the screenshot on Win 10 😄)

@Spiritreader
Copy link
Member

Spiritreader commented Oct 6, 2022

IT'S HERE!!!

UI Implementation in the app is still a work in progress, but the rest is available starting with 10.3.0.12

There are hotkeys as well as tray menustrip options

Note: the feature we're tackling here is strictly postponing theme switch until the next day (next switch interval)
Skipping for a fixed amount of time will be tackled in #204

@Spiritreader
Copy link
Member

admtogglespostponedemo

image

@tooomm
Copy link
Contributor Author

tooomm commented Oct 8, 2022

Hi @Spiritreader, those a great news! Thanks for the update and working on this.

Regarding the tray menustrip options:
Currently, you show check marks as well as completely change the display name of the option when selected/enabled.
[_] Skip next switch and [✓] Resume switch (paused until 18:43) from your example above.
I think a check mark works best to show if something is enabled or not. But if you change the title completely (adding some information is fine), the connection to the option is lost for the user. Changing a label completely works well with a toggle button to tell the user what will happen when clicked for example, but not so much here.
To keep things simple and intuitive I suggest to try something like
[_] Skip next switch (not selected, disabled) and [✓] Skip next switch (18:43) (selected, enabled). The time of the next scheduled switch could also be shown when the option is not enabled to clearly tell the user which switch is going to be skipped like [_] Skip next switch (18:43), or make it even more verbose like
[_] Skip next switch to dark (at 18:43)
[_] Skip next switch to light (at 7:00)


Besides the UI suggestion, I'm just not sure if things are working as they should for me on Windows 10 with v10.3.0.23 at all... 🙈

  1. Let's say it's 17:00 o'clock, I put dark mode to start at 17:02. I then select Skip next switch from the tray icon. The check mark appears and the text changes to Resume switch (paused until 17:02). Then, at 17:02 it switches to dark mode, the menu option changes back to Skip next switch (and the check mark disappears)... but shouldn't it skip that switch?! 🤔
    I then tried the same with light mode and put it to start at 17:10 and dark mode to 20:00 and told it to skip the next switch. Same result: The switch still occurs and the skip feature does not work respectively.

  2. I see in your video, when the Show notification on toggle option is selected, a notification shows up on Windows 11. That's not the case on Windows 10 for me.


Note: the feature we're tackling here is strictly postponing theme switch until the next day (next switch interval)
Skipping for a fixed amount of time will be tackled in #204

👍

@Spiritreader
Copy link
Member

Spiritreader commented Oct 9, 2022

Hey Tom, long time no see
Appreciate your thorough testing!

I think a check mark works best to show if something is enabled or not.

I do understand the appeal of what you have proposed, but I will just remove the checkmark for the skip entry such that it behaves like the toggle button. The postpone menu entry is technically a toggle, so I will just keep the text changes instead.

I see in your video, when the Show notification on toggle option is selected,

Notification is only shown when using hotkeys. Haven't decided yet whether that will change.

I'm just not sure if things are working as they should for me

They definitely are working like they should. It's just that how things work currently aren't correct for all scenarios.
There's more of a misconfiguration. The entry you can hit in the notification misbehaves in one particular situation:
It works the same as the postpone that is induced when using the toggle theme hotkey.

That one expires one second after the next theme switch trigger time.
So for example, sunset is at 18:00, and current time is 16:00. User hits "toggle theme" and the theme switches to dark. The postpone is engaged until 18:00:01 and once it expires the system finds itself correctly in the dark state again.

However as you've spotted correctly, when someone just wants to postpone the theme without switching, it needs to be moved ahead one more switch. Thanks for pointing that out, did miss that.
In that case that also introduces the necessity for one more hotkey to toggle postpone off and on.
Note that this affects the timer-based switch only. It already works as you described for the windows night light governor.

Logic is the same on both OS versions.

@tooomm
Copy link
Contributor Author

tooomm commented Oct 9, 2022

Always a pleasure to help with improving a great tool even further! ;)


The postpone menu entry is technically a toggle, so I will just keep the text changes instead.

As long as you remove the check mark when going for the toggle style it should remove potential confusion for users. 👍

Notification is only shown when using hotkeys. Haven't decided yet whether that will change.

Ahh, was not aware of that. When using hotkeys, the notification shows up on Windows 10 for me as well!


Definitely looking forward to the next beta releases!

@Spiritreader
Copy link
Member

Spiritreader commented Oct 10, 2022

As long as you remove the check mark when going for the toggle style it should remove potential confusion for users. 👍

Yea scratch what I said. I tried multiple options without the checkmark and that was even more confusing because it logically clashes with the auto switching entry above it.
I've resorted to a hybrid approach of how it was before (mainly due to limitations of what the time calculation currently is able to do and therefore which times are shown) and what you suggested. I think I'm quite happy with the result now.

In addition, when auto theme switching is disabled, the pause/postpone entry now gets hidden.

The logic oversight you pointed out is now fixed (turned out that was MUCH much worse and more difficult to get right than a bug could've ever been...)

It now correctly detects the scenario of wanting to stay in the current theme by extending the postpone properly, but still keeps the toggle logic the same.
Also the windows night light mode does show some information now, but it's not more than sunset/sunrise because it's not possible to extract precise time data from the binary blob.

New hotkey has also been added with a toggleable notification.

And the postpone notification now shows when clicking on the context menu entry.

I've consolidated all of those changes in a new build (10.3.0.28)

Spiritreader added a commit that referenced this issue Oct 10, 2022
- add new hotkey to toggle postpone
- add logic for keeping current theme active for an entire day
- inform user about postpone delay in tray / app / notification
- fixed a bug where postpone timers were cancelled unexpectedly
- fixed a bug where postpone timers would show incorrect values
@tooomm
Copy link
Contributor Author

tooomm commented Oct 10, 2022

Quick feedback:

  • The first button should probably be labeled Toggle now or Switch theme?
    not
    The text should also align with the label better. A confirm button for switching immediately does not work well here IMHO.

  • The "skip" logic works now, the check mark while preserving the option label is easy to understand as well. Nice addition with hiding the pause option when automatic switching is disabled! 👌

  • I still think the wording on the label can be improved. Maybe it's just me, but telling the user to pause something until e.g. 21:00, when it's shortly after 21:00 can be a bit puzzling:
    pause
    I get the idea behind it, but the time value doesn't really add too much and leaves room for misinterpretation.
    Do you see any disadvantage or shortcoming when using a more simple label like Skip next activation, Pause for today, Keep current theme for today or Use current theme until tomorrow etc?

@Spiritreader
Copy link
Member

Spiritreader commented Oct 10, 2022

The first button should probably be labeled Toggle now or Switch theme?

There are no translation strings yet for the butons. This will come at some point in the future

21:00, when it's shortly after 21:00 can be a bit puzzling:

Nothing will change in that regard. People will just have to use a bit of brain.
"today" and "tomorrow" alone doesn't work because it doesn't imply which of the 2 switches in a day are triggered.
I could add tomorrow and today after the time, in addition, but that may make the tray icon context menu too large.

Update: I think I'll go with this
image

@tooomm
Copy link
Contributor Author

tooomm commented Oct 15, 2022

After using it for a while, I like your solution and that you only add the day when it's not the same day. 👍

When following Windows night light, the tray menu uses the nice term (until next sunset)/(until next sunrise).
The same should be used for both "sunset to sunrise" options instead time values as well in my opinion.

@Spiritreader
Copy link
Member

Spiritreader commented Oct 15, 2022

I'm quite happy with where it's at right now, the version you're seeing is final.

@tooomm
Copy link
Contributor Author

tooomm commented Oct 15, 2022

Just saying... Users that explicitly chose to use a dynamic event based on their location over a specific time value probably care about the sun, not the time.

@skaiteo
Copy link

skaiteo commented Oct 28, 2022

Hey @Spiritreader, I noticed the "Toggle theme" option here. I can't find any mention of it in other issues, commits or PRs, is it already implemented or is it being developed together with this feature request?

@Spiritreader
Copy link
Member

Spiritreader commented Oct 28, 2022

Hey @Spiritreader, I noticed the "Toggle theme" option here. I can't find any mention of it in other issues, commits or PRs, is it already implemented or is it being developed together with this feature request?

Yes it's implemented and available in the latest beta versions of Auto Dark Mode.

There's also a hotkey that's functionally the same and the shell commands (--swap, --light, --dark) were also updated.

It was indeed developed alongside the postpone feature but part of the toggle code was already there from an older ADM version which has now been reworked into the new system.

@skaiteo
Copy link

skaiteo commented Oct 28, 2022

Awesome! Is stable 10.3.0 is releasing any time soon?

@Spiritreader
Copy link
Member

Awesome! Is stable 10.3.0 is releasing any time soon?

The current beta version is the stable RC. Functionally they're the same. We're running a testing phase at the moment to ensure no unexpected behavior shows up

@skaiteo
Copy link

skaiteo commented Oct 28, 2022

Nice, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants