alt-tab-macos icon indicating copy to clipboard operation
alt-tab-macos copied to clipboard

Let the app run without Screen Recording permission, in degraded mode

Open lwouis opened this issue 3 years ago • 26 comments

Originally posted by @alber70g in https://github.com/lwouis/alt-tab-macos/issues/1081#issuecomment-902592313

Showing only app names... like at this point what's the improvement over the built-in app switcher?

Multiple reasons:

  1. on a managed laptop it's not possible to use the app
  2. you can still switch windows instead of apps, what you cannot with the built-in switcher
  3. built in switcher cannot customize for switching between apps on different spaces, where AltTab can ("Show window from" option)
  4. built in switcher doesn't account for hidden tabs and making them visible (AltTab does that, e.g. Microsoft Teams doesn't activate the window with the built in switcher, so AltTab is a huge plus)

lwouis avatar Aug 20 '21 14:08 lwouis

A big concern I have with having this degraded is the impact on the onboarding/permission story. I spent a lot of time on the permissions story. I'm very happy with the current state. I think it's better than a few big name commercial mac apps.

image

This window blocks access to AltTab. You have to make both section go green. It's kind of gratifying/gamified that way. It goes green in real-time cause I'm listening to the status (no public API for this; was hard to achieve). Furthermore, if the user later remove one of the permissions while the app is running, it will detect it, and quit and come back to show this guard window.

With a possible degraded version without Screen Recording, I worry how to communicate the right way. Users have very limited attention span these days, and tend to click without reading. Today this is ok because the window is blocking them until they check the right boxes. Tomorrow with this feature, they could get in the app, and think the app is broken because "there are no thumbnails of windows like on the website's screenshots!". We also probably would want to provide a way to bring the permission window at any point so the user can find the instructions again and confirm "Ok so the permission I need to enable thumbnail is... Screen Recording ok got it". Without that, they may not know which one is required. They may even not know they are running in degraded mode after a while, or if they skimmed through the permission window the first time. We probably want to show some little orange dot next to AltTab icon in the menubar and/or some orange icon next to some text in the preferences that says "You're running in degraded mode. You can see window titles and screenshots by granting the app more permissions (italic text is a button to open the permission window)"

I keep mentioning "orange" things because I guess on the screenshot above, we would show the Screen Recording section as orange, or yellow? To signify that it's not great but possible. We would probably want to add a confirmation prompt if the user wants to pursue without it "Are you sure you don't want to grant Screen Recording permission? Without it, the app will not...".

Another way I was thinking about would be more visuals. Next to Screen Recording would be 2 screenshots of AltTab. One with titles and thumbnails, one without. That way the user quickly sees the 2 options. We could also show this for Accessibility with some visual to indicate focusing a window is possible, or it is not.

lwouis avatar Aug 20 '21 14:08 lwouis

To make the user extra aware of the features that he's missing out on when not enabling Screen Recording, a second window could open that verifies that the user really does want to not enable Screen Recording.

  1. A button can be added that says: "I do not want to enable Screen Recording"
  2. A second window opens with the text I acknowledge that disabling Screen Recording
    • [ ] disables previews in the app-switcher
    • [ ] disables window titles in the app-switcher Confirm-button and Back-button

This way you prevent accidents, and you inform the user about the consequences. Furthermore the preference window could have an yellow banner with the text: "Running with limited functionality as Screen Recording-permission is disabled"

I keep mentioning "orange" things because I guess on the screenshot above, we would show the Screen Recording section as orange, or yellow?

I would keep it red. It signals significant degraded experience when not enabled

alber70g avatar Aug 23 '21 13:08 alber70g

Agreed! I spent a lot of time trying to use this without that permission enabled. I tried disabling it after I turned off Thumbnails and Titles, but that doesn't work and it still requires that permission even if you are not using it.

I do not need Thumbnails or Titles and having this permission enabled is a HUGE security issue. If someone hacks your app they can get access to all kinds of sensitive content.

  • Not to mention this could be a violation of GDPR, HIPAA, and many others. I would strongly recommend that this gets resolved as soon as possible. I really think that security should be the default, so I would recommend that this is disabled and that Thumbnails and Titles are disabled by default, then when a user turns on one of those features, then the request for that permission is asked.

@lwouis I agree that your permission screen IS THE BEST I have ever seen and your assumptions for showing degraded mode would work fine I think. I still think having it off by default would be best for security, but I know your concern was users may think it is broken without those features, so I would recommend that you show more screenshots without thumbnails and titles and then show them with thumbnails and titles, but add a Notice next to it saying "In order to show thumbnails and titles you will need to grant permissions for Screen Recording, etc" So I think it is just how you present it and that could address your concern. In the end, do what you think is best, but I do think it is very important to allow some way to use it without that permission enabled.

Thanks.

ggedde avatar Sep 29 '21 16:09 ggedde

I would really love to see the app be able to run without the screen recording option as well.

I like some of @ggedde's suggestions above. Maybe just show the permission is suggested by default. Then, a Continue button in this loader screen. If the user still doesn't turn on the permission, show a notice (one time only), that they will lose the thumbnails and titles feature.

Perhaps at the very least, once a user goes to AltTab Preferences and disables thumbnails and titles ( I did this by setting font size to 0), then the app will run without the permission requirement.

@lwouis I'd be happy to donate $50 for this plus two other features. These 2 issues are the only things holding me back from giving up on Command Tab Plus.

• Show only 1 app in the switcher no matter how many windows are open • Place a hotkey like "A", "B", "C", etc at the bottom right of each app/window that will let me just press that key to activate that app. Command Tab Plus does this with numbers, but that doesn't work well with lots of apps in the switcher.

Screenshot of macOS app switcher using Command Tab Plus. Each app has a number selector for quick switching.

I'd be happy to open separate issues for each of these.

justinnoel avatar Oct 14 '21 15:10 justinnoel

@justinnoel there are already tickets for the 2 extra features you listed:

  • #337
  • #210

lwouis avatar Oct 14 '21 19:10 lwouis

I would as well love to be able to use AltTab without giving access to screen recording. I don't like giving permissions like this if it's not absolutely essential. I don't really need the preview of the windows, icons would be more than sufficient.

sterafix avatar Jan 10 '22 10:01 sterafix

Is there anything new about this? On some machines, the permission can't be granted and it would be cool to still use the program.

unixb0y avatar Feb 28 '22 10:02 unixb0y

@unixb0y i think @alber70g drafted a nice UX to deal with this degraded mode. Now it's about someone taking the time to implement it. This UX has a lot of new UI and ramifications in the app so it's quite a large scope.

lwouis avatar May 25 '22 16:05 lwouis

Hey, I suggest just adding a button on bottom left corner of the permissions blocker called "Run in Degraded Mode..." and this shows a dialog with a text box, with this label above: "[explanation, yada yada...] \n\n Please type in degraded to confirm.". The OK button is disabled until the correct keyword is typed.

This is a technique some apps and websites use for very serious actions. GitHub uses this for deleting a repository - you have to type in or paste the full repository name. People can still blindly click checkboxes if it gets them through, but typing is an exercise that requires some thinking.

For stronger protection, disable pasting in the text box. Typing with a keyboard input of any kind must be mandatory.

PS: I'm assuming if one of the permissions is successfully granted, it can still be used to enhance the experience.

ADTC avatar Feb 10 '23 05:02 ADTC

I'm interested in this feature too.

There is no need IMHO to show thumbnails in the app switcher.

mijorus avatar Apr 21 '23 12:04 mijorus

It depends on how you use it. I ended up disabling the thumbnails myself. I now choose between Alt-Tab, Mission Control and App Expose as I work - whichever is most convenient. Only the latter two shows thumbnails.

ADTC avatar Apr 21 '23 14:04 ADTC

Would be very happy to have this feature

The main feature I use is hiding minimised apps from the CMD-Tab menu. So any way to turn off the screen recording would be appreciated

(esp as I was recently hacked and very cautious now. Not that I think it was through this app, but any unnecessary monitoring and recording might get ruled out)

theodopolopodous avatar May 17 '23 07:05 theodopolopodous

I agree, there should be the option to run the app without screen recording permissions. I never use thumbnails either.

mestradev avatar Jun 23 '23 17:06 mestradev

Very interested in this feature too

h4x0rlol avatar Sep 18 '23 09:09 h4x0rlol

Same here, I'm about to buy a commercial alternative because this feature is missing.

raayu83 avatar Oct 09 '23 21:10 raayu83

@lwouis Do you know why "it's not possible to use the app on a managed laptop"?

I have limited permissions to what I can do in my work computer, so I need to ask for help when installing a new application, I see that some of my colleagues can use the app in their laptops where they have full access.

JuanPabloOS avatar Oct 10 '23 17:10 JuanPabloOS

Would love to see this too. I was hoping that removing permission while not showing preview would let me pass through, unfortunately it still blocks it when opening.

andreasscherman avatar Oct 11 '23 12:10 andreasscherman

Of course I don't want this app to have "screen recording" permission! I have it on another computer, and it frequently pops up in bright purple in my status bar saying it's "observing my screen". Talk about creepy! I know about the limitations and requirements of APIs, and the reasoning behind asking for that permission, but it is no less creepy and intrusive. I would gladly live without the previews/screenshots in order to just let me alt+tab (Cmd+Tab) windows instead of applications, in most-recently-used order. The window-switching mess of MacOS switching applications instead of windows has just become too much to bear - it's a daily, constant annoyance.

Very frustrated that there's no way to consciously decline this permission and still run the app without that functionality. Maybe MacOS makes users too aware of permissions that apps have, in a way that degrades the user experience by making it seem far creepier than it is, but that seems to be the Mac way of doing things. Having that purple "pill" on the status bar makes it feel strongly like someone is watching the screen like TeamViewer, and it's far more intrusive than it has a right to be.

FalconFour avatar Dec 21 '23 02:12 FalconFour

A workaround for people who are worried, until we implement this ticket: install an app like LittleSnitch, and block all networking for AltTab. That way you can rest easy about fear of the app leaking your screen. All images or video that could be recorded (nothing actually is, in reality) would remain on your device and couldn't be sent to anyone else.

lwouis avatar Dec 21 '23 07:12 lwouis

I think some users can't use AltTab at all, since they are using a locked-down device that doesn't even allow them to grant the screen recording permission.

FWIW, if the "Hide window thumbnails" checkbox is checked, it looks like the screen recording permission is never used. (Is that right? It's not really necessary for capturing titles, right? In that case, your onboarding story looks wrong.)

In this case, the onboarding story dialog can have the same checkbox (or a button with the same label) which allows bypassing the screen recording permission, and in the Settings, this checkbox should be permanently checked and disabled, with a note that screen recording permission is needed to uncheck it.

I pledge sponsorship if you do this, and the other thing I asked (multi-line titles). Who else here would like to pledge? 🙂

BTW note that once the user has decided to bypass, this choice should be remembered, until the user enables screen recording permission and then disables it again. This is to prevent the onboarding story dialog from showing every time AltTab starts.

ADTC avatar Dec 21 '23 15:12 ADTC

@ADTC please read the discussions in this thread. These topics have been addressed multiple times.

It's not really necessary for capturing titles, right?

It is. That's why we say it is in the Permissions Window. Without Screen Recording permissions, we can't grab the titles of windows.

Apple bundled a lot into that new Screen Recording permissions. It's necessary from small things like window titles up to large things like literally recording the entire screen at 60ps. So AltTab gets shown in purple like we are recording the screen, when in fact we are sending a few calls to grab a few screenshots of windows, and asking for their title.

Apple design is a bit all-or-nothing, and users get scared when the purple UI shows up. The only thing we can do is offer this Degraded Mode, which will have anonymous windows, without title nor screenshot; just the app names. To me it seems useless, but a few people have said they would use it like this.

I'm open to it, that's why this ticket is still open, however we need to work on the UX, as has been discussed many times. See my concerns and a first draft of the UX.

lwouis avatar Dec 21 '23 17:12 lwouis

With https://wiki.keyboardmaestro.com/manual/Window_Switcher (part of keyboard maestro), which does not have a screen recording permission, I checked that it captures titles and icons in the same way as alttab in "hide thumbnails" mode.

I'm sure that others find screen recording permission scary at first, especially when they start using this app (or for reasons like that thread about Sonoma purple screen sharing icon). Another alternative to using something like little snitch (pretty cool tool, thanks for mentioning it!) is to review source code and compile yourself.

Anyway thank you so much for alttab, it is a life saver.

webuniverseio avatar Dec 22 '23 04:12 webuniverseio

By the way, https://contexts.co also supports Window Titles and Icons without Screen Recording permission.

raayu83 avatar Jan 06 '24 13:01 raayu83

@raayu83 I think they may be getting the titles from another API than us. We use the accessibility APIs. It's better for us for these reasons. I think they may be using the CG APIs. These have downsides.

We may move to using CG for the specific case of this Degraded Mode. However, it would create all sorts of problem, as discussed in the links above, as well as this one. The titles from the CG and AX APIs are sometimes different, and AX is more accurate. In other words, the titles would sometimes be incorrect if we did that.

The general issue with this ticket is that there is little demand for this Degraded Mode. It's quite a niche feature. Yet it's a lot of work to draft the spec for it, and even more to implement it. As a reminder, #1179.

I'm hoping that someone will step up and share a nice spec, then share a PR 🙏

lwouis avatar Jan 08 '24 15:01 lwouis

@lwouis I didn't know how much I rely on alt-tab until I moved to a managed mac for work. Totally understandable that this would need a lot of effort. Do you have any alternatives to suggest for us that can't give extra permissions due to restrictions?

spirosag avatar Feb 01 '24 20:02 spirosag