Wooshy.docs icon indicating copy to clipboard operation
Wooshy.docs copied to clipboard

Feature request: Smart magnify

Open jannis-baum opened this issue 1 year ago • 19 comments

Whether or not this has a place in Wooshy is a question similar as with #50.

I usually work on a big screen and stuff tends to be a little small and far away for my eyes, which is why I am constantly zooming around on my trackpad (in particular while browsing). Nice zooming is probably even quite a bit harder to get right with only a keyboard than nice scrolling (where do we zoom?, how deep do we zoom?, etc.), but macOS might already have a solution: Smart magnify (two-finger double tap on a trackpad or magic mouse), which automatically zooms to nicely fit the element it was used on onto the screen.

Analogously to how Wooshy can send modifier clicks or only move the cursor to an element, how about we introduce some key combination to trigger a smart magnify on Wooshy's selection? Not sure how events are sent at the moment, but here is the NSEvent.EventType for smart magnify.


No worries in case you feel like this feature doesn't fit into Wooshy, I just thought it might be cool to have. If you don't add it, I'll make it work for me with Karabiner + Wooshy's move cursor to selection + Hammerspoon hehe

jannis-baum avatar Aug 24 '22 13:08 jannis-baum

i'll check first if it's easily doable here.

godbout avatar Aug 24 '22 16:08 godbout

I made it work with Hammerspoon and Karabiner:

https://user-images.githubusercontent.com/85999315/186491886-f0eb6c3a-705d-4a87-aef8-4cee14c46944.mov

I think it's really useful to have. However, to use it like this it would be best to have notifications for enter/exit Wooshy as well🙈 The way I have it set up right now, it presses command+shift+return and then does the smart magnify. The return press does things I don't want it to do (like closing issues lol) when I accidentally press my hotkey while Wooshy isn't open. If we had the notifications here as well, I could make it only press return when Wooshy is active without doing hacky things.

Edit: I'm going to disable this hotkey for now lol

jannis-baum avatar Aug 24 '22 18:08 jannis-baum

fuck this looks cool.

i'll check if i can do it easily yeah, but two questions:

  1. how do you think you'd like to activate it? a new keyboard shortcut? (similar to moving the mouse, i don't mean something in the Preferences)
  2. what about if it was an option that it always zooms after you select the Target? or would that be too much and there are cases when you don't want the zoom?

godbout avatar Aug 24 '22 18:08 godbout

2. what about if it was an option that it always zooms after you select the Target? or would that be too much and there are cases when you don't want the zoom?

could be always zoom only if the Target is a text field or text area? 🤔️

godbout avatar Aug 24 '22 18:08 godbout

how do you think you'd like to activate it? a new keyboard shortcut? (similar to moving the mouse, i don't mean something in the Preferences)

Definitely a keyboard shortcut. Would there be any other way? As to which shortcut though, I might not be the best person to ask this, because I'll remap it anyways to fit on my 34 keys. I open Wooshy by pressing u and i simultaneously haha so the natural way for me to set up my zoom was with simultaneous i and o lol.

what about if it was an option that it always zooms after you select the Target? or would that be too much and there are cases when you don't want the zoom?

What do you mean by select? While tab-bing through results I think would be annoying since the animation is slow and we wouldn't see other results anymore. When clicking on an element also doesn't really work because clicking often changes the UI and I don't want to zoom to bounds of an element that isn't even there anymore. Having it default for the move cursor might be an option, maybe we can ask the person that originally asked for this feature? Or did you mean something else entirely by select?

jannis-baum avatar Aug 24 '22 18:08 jannis-baum

However, to use it like this it would be best to have notifications for enter/exit Wooshy as well🙈

hmm even without talking about this feature, i kinda like the idea of having DNs for Wooshy too, because it seems that then it opens quite some possibilities with tools like HS, KE, etc. what do you think?

Definitely a keyboard shortcut. Would there be any other way? As to which shortcut though, I might not be the best person to ask this, because I'll remap it anyways to fit on my 34 keys. I open Wooshy by pressing u and i simultaneously haha so the natural way for me to set up my zoom was with simultaneous i and o lol.

that's another thing i'll never be able to understand 😂️

What do you mean by select? While tab-bing through results I think would be annoying since the animation is slow and we wouldn't see other results anymore. When clicking on an element also doesn't really work because clicking often changes the UI and I don't want to zoom to bounds of an element that isn't even there anymore. Having it default for the move cursor might be an option, maybe we can ask the person that originally asked for this feature? Or did you mean something else entirely by select?

sorry yeah so i meant "clicking" a Target. as mentioned a bit above:

could be always zoom only if the Target is a text field or text area? 🤔️

maybe the zoom could happen only if the UI Element is a TextField or TextArea? or also Combobox. anywhere where you type text. i mean i'm not sure. what's your use case? is it too random?

godbout avatar Aug 24 '22 18:08 godbout

hmm even without talking about this feature, i kinda like the idea of having DNs for Wooshy too, because it seems that then it opens quite some possibilities with tools like HS, KE, etc. what do you think?

I would definitely love to have those! Just didn't want to bother you too much with DNs everywhere while the issue in kV is still open hahaha

could be always zoom only if the Target is a text field or text area? 🤔️

maybe the zoom could happen only if the UI Element is a TextField or TextArea? or also Combobox. anywhere where you type text. i mean i'm not sure. what's your use case? is it too random?

This sounds really good! I think 90% of the time I use it for reading or writing. So having it happen for paragraph-like elements as well would also be great. Though I'm not sure how commonly they are distinguishable?

jannis-baum avatar Aug 24 '22 18:08 jannis-baum

Just didn't want to bother you too much with DNs everywhere while the issue in kV is still open hahaha

we're actually threading on a closed issue LOL

This sounds really good! I think 90% of the time I use it for reading or writing. So having it happen for paragraph-like elements as well would also be great. Though I'm not sure how commonly they are distinguishable?

for paragraphs it may be more tricky. i'd say they should be StaticText but ultimately that may be another rabbit hole. there's a lot of StaticText around, so there would be a need for some sort of text length to be checked.

also if it's 90%, is that good enough? i know i'd be annoyed if the zoom happens when i don't want it and doesn't happen when i want it. if it's inconsistent, i'd rather activate it manually every time. more control.

(ok. out for today. enough to digest. i'm full!)

godbout avatar Aug 24 '22 18:08 godbout

we're actually threading on a closed issue LOL

😂

for paragraphs it may be more tricky. i'd say they should be StaticText but ultimately that may be another rabbit hole. there's a lot of StaticText around, so there would be a need for some sort of text length to be checked.

Sounds like a try for n minutes and if it doesn't work let it go situation.

also if it's 90%, is that good enough?

The other 10% are random UI elements where I would use the manual zooming, like pictures for example, or stuff that is actually clickable and would trigger navigation when I don't want it to.

i know i'd be annoyed if the zoom happens when i don't want it and doesn't happen when i want it. if it's inconsistent, i'd rather activate it manually every time. more control.

I am 100% with you on that! And something else that definitely should be avoided at any cost is triggering the zoom on clicks that trigger navigation... (talking about browsing in Safari here) AFAIK sometimes it zooms back out after navigating, sometimes it doesn't, and the times it doesn't are very annoying.

jannis-baum avatar Aug 24 '22 19:08 jannis-baum

DNs coming in the next release. but that's not gonna help the Smart magnify in any way right? just to confirm.

godbout avatar Aug 26 '22 04:08 godbout

DNs coming in the next release. but that's not gonna help the Smart magnify in any way right? just to confirm.

Nice! The DNs will help me with my Smart magnify hotkey that I created with HS and KE, because with them I can have it press command+shift+return (i.e. have Wooshy move the cursor) only when The Input is active to prevent accidental dangerous return presses.

The potential future Wooshy native Smart magnify isn't affected by the DNs.

jannis-baum avatar Aug 26 '22 08:08 jannis-baum

On another note: Smart magnify-ing (zooming) back out is often independent of where the cursor is. I usually zoom back out with my hotkey without activating The Input first (which will be safer with the notifications).

I think for now it'll do if the native manual Smart magnify only happens when The Input is active, but in case you come up with some kind of native scrolling for Wooshy (#50), it will be great if you also introduce a way to trigger the Smart magnify without activating The Input first, similar to however the scrolling will work!

jannis-baum avatar Aug 26 '22 08:08 jannis-baum

ok i'm coming back quickly to this.

is there anything we can easily add to Wooshy for now that would help somehow? i'm talking about something simpler than a shortcut. like an option in the new Experimental Pane. that may does the smart magnify automatically when you press return on a Primary Target that is text field, text area, etc.? but maybe you want the zoom even when you haven't pressed return?

godbout avatar Sep 08 '22 06:09 godbout

that may does the smart magnify automatically when you press return on a Primary Target that is text field, text area, etc.?

I like this idea!

but maybe you want the zoom even when you haven't pressed return?

I wouldn't zoom without pressing return since this can hide the next targets which would make it hard to keep an overview of what will happen when we press tab.

jannis-baum avatar Sep 08 '22 08:09 jannis-baum

What about using the spacebar to activate the Smart Zoom functionality? It feels a bit like QuickLook. I would also very much like to see this feature coming to Wooshy.

roelvangils avatar Sep 08 '22 10:09 roelvangils

Oh wait, that's a stupid idea, sorry :) Space insert just a space in the search field...

roelvangils avatar Sep 08 '22 10:09 roelvangils

What about using the spacebar to activate the Smart Zoom functionality? It feels a bit like QuickLook.

This is a really good point! Keeping the similar feel of Quicklook in mind will help with getting the UX of this right. Maybe shift+space could be cool.

jannis-baum avatar Sep 08 '22 10:09 jannis-baum

space at the end of the search terms?

would depend on how you intend to use this.

godbout avatar Sep 08 '22 12:09 godbout

how to know it's the end of the search term tho LOL i'm drunk

godbout avatar Sep 08 '22 12:09 godbout