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

Saves, Presets, Defaults #371

Open
ZenRevision opened this issue Sep 5, 2024 · 5 comments
Open

Saves, Presets, Defaults #371

ZenRevision opened this issue Sep 5, 2024 · 5 comments
Labels
enhancement New feature or request

Comments

@ZenRevision
Copy link

ZenRevision commented Sep 5, 2024

Just trying WindowTop for first time. It is almost precisely what I was looking for, so I'll definitely be purchasing a license. The are just a couple stumbling blocks though.

There should be a list of saved window configs, that we can edit or delete without reopening a given window. We should also be able to manually add saved configs by inputting a window name, application.exe, or guid, and edit which settings get applied.

We should also be able to create presets, that can be activated with hotkeys or via the menu. So a save preset hotkey and/or when we open the menu, there could be a save preset icon next to the save icon. The save preset would just save all the settings currently active, but not targeted to a specific window. When saving a preset it should open a small dialogue to give the preset a name, and optionally assign a hotkey.

Then the hotkey assigned to a preset would activate all associated settings, and in the menu there could be a preset button, that would open a dropdown list from which one could activate saved presets. Also, in settings, along with a list of saved window configs (mentioned above), there should be a list of saved presets, where we could edit, delete, or manually add new presets.

Finally, it seems like we should be able to edit defaults. So when I activate the Glass effect, for instance, it defaults to whatever I set for the default Glass settings (for example, 75% Transparent, 50% Blur, 50% Image, 50% Text, with Filter Images on). This could just be a remember settings tickbox in the menu dropdowns, or even just an option in settings to remember all settings globally. Edit: I guess we can set some defaults, but not all. It seems like Glass doesn't use the global default transparency, and I don't see anywhere to set default Glass settings at all.

I will purchase a license regardless, but if editable presets, and/or editable defaults (edit; or rather, more comprehensive defaults), where implemented, I would be able to recommend this software whole heartedly to numerous colleagues.

As documented there are artifacts and inconsistencies with the Glass effect (I'm using Win 10, and notice artifacts in Notepad++, while Sublime Text looks almost perfect, but in Sublime Text the effect just turns off when switching tabs, or on other random interactions). I realize the issues with Glass may not be easy to fix, but I hope it can be addressed eventually as this is the only app I have found which can do transparent backgrounds with blur almost universally, which is a truly killer feature. One thing I think may help is to employ some antialiasing between transparent and opaque elements (text generally looks good, so maybe somehow improving the identification of UI elements for antialiasing and to try to separate them from the background more consistently).

Thanks for building such an awesome app! Looking forward to seeing how you continue developing it!

@ZenRevision ZenRevision changed the title Save for app window Saves, Presets, Defaults Sep 5, 2024
@gileli121
Copy link
Member

@ZenRevision
Thanks for your great feedback!

About option to modify list of saved window configuration, I am aware that it is not available. I actually even started to develop this option under another development branch but suspended to develop it due to some priorities.
But this feature to modify window configurations from list (instead of editing the settings.json file) is almost finished. I just need time to finish with implementation and release a beta for testing. I will consider if this should be the highest priority.

About the presets, can you give an example of a possible workflow with a real application?
I need an actual example to understand the suggestion better.

If you have feedback on the Glass settings, I'd appreciate it if you could open it as a separate issue. This will help us keep track of all the different aspects of the software we need to improve.

@gileli121 gileli121 added the enhancement New feature or request label Sep 8, 2024
@ZenRevision
Copy link
Author

ZenRevision commented Sep 11, 2024

Yeah, it's great that it sounds like the ability to modify the list of saved window configs will be implemented at some point!

It would be great if we could edit saved config's window identification method. For example, I save a config with Notepad++, then I edit the saved config to identify the Notepad++ window based on the window title, rather than the .exe, because Notepad++ includes the document name in the window title. That way I could have a saved window config that only activated when a Specific document was open in Notepad++. Ideally we could have some target matching options like , , and <doesn't contain> and target type options like, , <.exe name>, and . Ideally, multiple sets of these criteria could be combined as well.

So based on that, here are a few example window matching rules.

  • Example 1:
    Apply this config if <window title> <contains> <example string>
  • Example 2:
    Apply this config if <window title> <precisely matches> <example string>
  • Example 3:
    Apply this config if <.exe name> <precisely matches> <example.exe> & <window title> <doesn't contain> <example string>

I don't really think that accessing saved configs, to add/edit/delete them, really even needs a UI. This feature could just be for advanced users. You could just save these configs in .json or .xml files in a directory, using human readable file names like name_of_exe_000.json, making them easy enough to identify by name, and these file names would really just be for reference anyway, as the window targets would be determined by values within these .json files, not their file names. So users could rename these files according to their own preferences.

That way we could create new configs easily, edit existing configs easily, and delete unneeded configs easily, without the need for any major UI refactoring.

Regarding the presets I mentioned previously, as well as the Glass feature, I'll open separate issues.

@gileli121
Copy link
Member

gileli121 commented Sep 11, 2024

@ZenRevision
Your idea to apply saved config, not by the process name, was something I had thought of before. It seems like a good idea.
I did not consider the option of not providing it with a detailed UI (so the user will, for the most part, use/edit XML/JSON files).
I agree that it may be possible not to provide a detailed UI for it because very advanced users probably use it.

About the presets, see my comment there.
It sounds like you're trying to solve the same problem and suggest two ideas (presets and this one). In that case, it's better to understand what the best proposal is here.

I think that this proposal is probably a better way to handle your need (assuming that presets also aim to handle the same need)

@ZenRevision
Copy link
Author

ZenRevision commented Sep 13, 2024

Hmm, I guess I needed to use code tags. It seems my examples above where broken upon posting. Fixed now.

The presets concept is much more related to defaults than saves, because the idea behind presets is that they wouldn't target an app/window specifically nor be applied automatically.

However, preset functionality could, I think, easily be rolled into this save feature, by just including a way to define a hotkey within the save .json/.xml and not requiring a window target (maybe including a preset key).

For example:

Save_Name = Example_Name
Preset = True
Window_Target = Undefined
Hotkey = "0x10"+"0x12"+"0x77" ; Shift+Alt+F8

; Configuration details below...

That way I could save a window config for any window. Go into the saved configs directory and edit that saved file. Delete the window target values (or maybe change the target value to <Undefined>) & add a hotkey. Then I could toggle that config on/off for any window with a hotkey.

I do actually think that presets would be useful to less advanced users and thus benefit from a UI as described in the other issue. However, as an initial implementation it seems like including presets as as I've just described here without any UI and as part of the advanced save editing would be awesome. Then at some point in the future it may be worth thinking about adding UI elements, at which point the underlying functionality would already be in place.

@gileli121 gileli121 mentioned this issue Sep 13, 2024
@gileli121
Copy link
Member

Sorry for the confusion. I deleted my last two comments here and answered you here instead.

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

2 participants