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

Support 3-finger swipe to invoke AltTab #756

Closed
klarasch opened this issue Dec 31, 2020 · 17 comments
Closed

Support 3-finger swipe to invoke AltTab #756

klarasch opened this issue Dec 31, 2020 · 17 comments
Labels
enhancement New feature or request

Comments

@klarasch
Copy link

klarasch commented Dec 31, 2020

First of all, thank you so much for developing this tool, just switched from Windows and couldn't understand how folks on MacOS can live without switching windows, not apps and how Mission Control doesn't have window selection through keyboard and ability to close windows from there. So frustrating to go to each windows individually to close it – and so painfully slow. Your tool takes it even further (closing apps by shortcut, I'm in love!) I might've switched back, hadn't found this. Thank. You. ❤️

One thing that keeps it from complete perfection (and not sure it's possible, but hopefully given BetterTouchTool is tiny close to this) is Windows' ability to trigger the alt-tab menu by swiping with three fingers left or right. I would like to have default MacOS four-finger swipe to switch desktops, but three-finger (horizontal, would like to keep Mission Control and Exposé on vertical) swipe to trigger alt-tab menu and then select the window by hovering over it with the three fingers, i.e. the same logic Windows use. Currently by default, both three- and four-finger swipe does the same on MacOS – switches desktops; such a wasted gesture distinction.

Thank you for considering this suggestion!

(sorry if this was already suggested, checked the other issues though!)

PS: if this makes AppStore, I'd pay and I don't like paying for apps; this is far more life-improving than most of paid stuff there

@klarasch klarasch added the enhancement New feature or request label Dec 31, 2020
@lwouis
Copy link
Owner

lwouis commented Jan 2, 2021

Hey @klarasch! Glad you enjoy the app!

Your feature request reminds me of the discussion in #730. I think I would probably want to implement those together. I need to get my hands on a Windows laptop to experience that gesture UX though. For now I've no idea about its details, and god knows details matter with these kinds of interactions.

if this makes AppStore

It will never, unfortunately. The app uses a number of private APIs to achieve its functionality. There are no public APIs to manipulate Spaces, and that made my work very hard at the beginning. Now I've found enough private APIs, and they seem stable over macOS releases, so the app works. But because of that it can never be distributed on the MAS.

Thanks for the feature request. I think it's a great proposal. I need to check out how Windows 10 does it, then see what it would mean for AltTab in terms of maybe new preferences, and implementation details that make sense on the mac platform.

@klarasch
Copy link
Author

klarasch commented Jan 2, 2021

Hey, thanks for the response and yeah, apologies! I overlooked that issue. Yes, it's described well there. I understand it may be pretty complicated to implement, though, and it's just a suggestion, the app takes the great experience further than Windows in many aspects already. :)

Fingers crossed you're able to get your hands on it (just given what a variable quality touchpads on Windows have, sometimes it's very nice to use it – such as on my private laptop, Mac is my work laptop – and sometimes it's better to avoid it :D) and that it turns out not so complicated to make (though that's not a big hope:D). Meanwhile, this guy on YouTube https://youtu.be/U2CQ9CWP5mE?t=155 shows it quite well.

I understand with the App Store :) for me it's easier to brew it anyway!

@lwouis
Copy link
Owner

lwouis commented Jan 5, 2021

I got my hands on a Windows 10 laptop, and looked deeper at the gesture UX. Here is how is works:

  • Initiate the UI with left or right 3-fingers swipe (up and down don't work; 2 or 4-fingers swipe doesn't work)
  • You can move between 3 and 2-fingers swiping at this point. 1 or 4 fingers focuses the window
  • Swiping left and right selects the thumbnails on the left and right, but stops at the end of each row. To reach other rows, you need to swipe up and down
  • If there are too many windows to fit the screen, you need to swipe up and down to "scroll" the thumbnails "pages"
  • You can swipe 360 fluidly, not just on one axis at a time

Here are some adaptations I think I would do, or things to keep in mind:

  • Add a preference to let the user decide what kind of swiping is used (i.e. 2, 3, or 4 fingers). We would probably have to add Gesture 1 and Gesture 2 tabs here:
    image
    It would read Swipe [dropdown menu to select finger count] and be followed with the same Then release...
  • 360 degrees scrolling is supported by some mouses/trackball. We probably want these to act exactly the same way as the trackpad swipes
  • Make sure the experience plays well with the existing preference:
    image

@klarasch
Copy link
Author

klarasch commented Jan 5, 2021

I think you described it pretty well! Indeed, you trigger it with 3 fingers left/right and then have the freedom to choose window to focus 360.

What you're proposing sounds great! Only IMO most users wouldn't use the 2 fingers option as that would interfere with basic scrolling, history navigation etc. which I think everyone uses and wouldn't like to override. I personally also would keep one of three or four-finger swipe handled by system to be able to switch spaces, so I personally would set only the 3 finger swipe as Gesture 1 and would like to not use the Gesture 2. I would ideally like to have other settings same as the Shortcut 1.

Thank you so much for investigating the options! ❤️

@lwouis
Copy link
Owner

lwouis commented Jan 5, 2021

It costs nothing to add the flexibility I think, since we need a UI anyway to share which gesture is used. that being said, I think you're right that 1 or 2 fingers is pushing it, as these are really basic.

Imagine someone not using Spaces. They could use Gesture 1 with 3-fingers to display all windows like Shortcut 1 does, and Gesture 2 with 4-fingers to display windows of the active app like Shortcut 2.

The idea is that, for the same reason people may want 2 shortcuts that show different types of windows, users may want 2 swipe shortcuts that show different types of windows.

Actually writing this made me realize we could let the user even chose the direction on top of the finger count. Like 2 dropdowns in a row:

  • 3-fingers
  • 4 fingers

Followed by

  • Swipe left or right
  • Swipe up or down
  • Swipe left
  • Swipe right
  • Swipe up
  • Swipe down

This way a user could have 1 type of shortcut for left, and another for right, or any other combination that makes sense in their mind

@MaskyS
Copy link

MaskyS commented May 8, 2021

@lwouis Love your creation, can you enable sponsors for this repo or share other ways to help you add three-finger swipes?

Looking forward to an even more seamless app switching experience, thanks again! 😄

@lwouis
Copy link
Owner

lwouis commented May 8, 2021

@MaskyS thank you for your kindness. I don't take donations at the moment.

The best way to get tickets flowing faster would be other people than me contributing code. Not many people do, and i become the bottleneck. This project is my weekends and nights, which i can't always devote to it. Money wouldn't accelerate things as i don't need money. More collaborators would be helpful as well as delightful

@juarezr
Copy link

juarezr commented May 25, 2021

It costs nothing to add the flexibility I think, since we need a UI anyway to share which gesture is used. that being said, I think you're right that 1 or 2 fingers is pushing it, as these are really basic.

Imagine someone not using Spaces. They could use Gesture 1 with 3-fingers to display all windows like Shortcut 1 does, and Gesture 2 with 4-fingers to display windows of the active app like Shortcut 2.
...
This way a user could have 1 type of shortcut for left, and another for right, or any other combination that makes sense in their mind

Just a small $0.02 contribution:

  • Add flexibility to UI by replacing fixed Shortcu1..N or Gesture1..N options with in two dynamic lists of:
    • Triggers and Filters
    • Command and Actions.
  • Triggers would open the popup with:
    • Shortcut like Option +TAB. Option+', ...
    • Gesture like describe above
  • Filters would restrict which window will be shown in the popup by:
    • Apps / Tabs / Spaces / Screens
    • All / Active / Current / Visible
    • Minimized / Hidden / Fullscreen
  • Commands would close the popup and execute a action:
    • Release / Key Up to <action X>
    • Press <key> while open to <action Y>
  • Actions could be:
    • Focus selected window
    • Minimize / Hide / Close / Quit
    • Move to Screen / Space X
    • Exchange current and selected window between Screen / Space
    • Exchange current and selected window positions / sizes
  • User could add new Triggers / Filters independently of Command / Actions
  • On setup, current rules would start as predefined

Example of Triggers tab in Preferences:

  • Hold Option and press Tab than show windows from:
    • All apps
    • All Spaces
    • All Screns
    • Minimized / Hidden / Fullscreen
  • Hold Option and press ' than show windows from:
    • Active app
    • All Spaces
    • All Screns
    • Minimized / Hidden / Fullscreen
  • Hold Option and press 1 than show windows from:
    • All apps
    • All Spaces
    • Active Scren
    • Minimized / Hidden / Fullscreen

Example of Actions tab in Preferences:

  • While open press:
    • Space to: Focus selected window
    • W to: Close selected window
    • Esc to: Cancel and hide this popup
    • ...
    • 1 to: Move to screen 1
  • then hide this popup.

@lwouis
Copy link
Owner

lwouis commented May 26, 2021

@juarezr this sounds interesting. I'm having trouble picturing the UI of this new approach though. Could you maybe share a mockup of what that would look like?

@juarezr
Copy link

juarezr commented May 27, 2021

A crude mockup:

alt-tab-macos-pref-triggers-actions

I have removed some options related to arrows and click because they could be implicit or unnecessary. Of course, I don't know their use case.

@juarezr
Copy link

juarezr commented May 27, 2021

An evolution from the previous mockup considering gesture?

alt-tab-macos-pref-with-gestures

@lwouis
Copy link
Owner

lwouis commented May 31, 2021

Hey @juarezr! Thanks for sharing these cool mockups!

I recorded a video response.

Addendum to the video: I think your proposed UI changes would benefit more from being in the context of #351

@juarezr
Copy link

juarezr commented May 31, 2021

Hi @lwouis ,

The mockup did had two main points:

  1. Multiple ways of opening the popup: with shortcuts and gestures
  2. Separated in two stages: Window is not centered on first summon #1 before and Shift cycles back #2 while the window is open.

This will explains the Trigger/Action metaphor used.
But thIs is not written in stone...
Maybe they fit better all on the same page.

Also one could use additional gestures for navigation / selection.

The secret will be we exploring alternatives. 😉

@lwouis lwouis changed the title Support three-finger swipe Support three-finger swipe to invoke AltTab Aug 19, 2021
@lwouis lwouis changed the title Support three-finger swipe to invoke AltTab Support 3-finger swipe to invoke AltTab Aug 19, 2021
@trevorbenyack
Copy link

Wonderful app as it is, but this would be a great addition... My work laptop is Windows so I find myself constantly using three fingers to swipe between windows on my personal Mac. Thanks for all your hard work!

@ifsd
Copy link

ifsd commented Feb 20, 2022

Thanks for all the work creating this app, it's truly amazing! I've been using windows my whole life and this app made switching to mac so much easier. I really, really hope this functionality gets added sometime soon :)

@aphexetwine
Copy link

Any updates on this? Hope it's added soon!

@lwouis
Copy link
Owner

lwouis commented Aug 6, 2022

@aphexetwine please see #1179

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

7 participants