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

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

Closed
lwouis opened this issue Aug 20, 2021 · 52 comments
Closed

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

lwouis opened this issue Aug 20, 2021 · 52 comments
Labels
enhancement New feature or request niche Nice idea, but not enough demand for it rude A user has shown a lack of politeness or social skills

Comments

@lwouis
Copy link
Owner

lwouis commented Aug 20, 2021

Originally posted by @alber70g in #1081 (comment)

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
Copy link
Owner Author

lwouis commented Aug 20, 2021

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 lwouis added the enhancement New feature or request label Aug 20, 2021
@alber70g
Copy link

alber70g commented Aug 23, 2021

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

@ggedde
Copy link

ggedde commented Sep 29, 2021

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.

@justinnoel
Copy link

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.

@lwouis
Copy link
Owner Author

lwouis commented Oct 14, 2021

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

@sterafix
Copy link

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.

@unixb0y
Copy link

unixb0y commented Feb 28, 2022

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.

@lwouis
Copy link
Owner Author

lwouis commented May 25, 2022

@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.

@ADTC
Copy link

ADTC commented Feb 10, 2023

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.

@mijorus
Copy link

mijorus commented Apr 21, 2023

I'm interested in this feature too.

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

@ADTC
Copy link

ADTC commented Apr 21, 2023

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.

@theodopolopodous
Copy link

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)

@mestradev
Copy link

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

@h4x0rlol
Copy link

Very interested in this feature too

@lwouis
Copy link
Owner Author

lwouis commented Jul 4, 2024

@FalconFour

maybe something will knock some sense into the developer

the dev denies it's a problem.

This is wrong. I'm in support of adding this feature.

I scrolled up to see my previous messages to try and understand how you got the wrong idea. After reading, I don't understand how you read it and thought that i'm opposing it.

The only reason this ticket is still not implemented already is that there is a lot of work to spec and implement it. Please see the pinned ticket #1179 to understand why tickets are not being implemented quickly these days.

@webuniverseio
Copy link

This conversation has led me to donate as well. Alt-tab is definitely essential for me.
I reviewed the code since it is open source and compiled a local version for privacy reasons, and as it was suggested earlier, for those extra paranoid (count me in), there is Little Snitch, which is amazing at blocking and monitoring all unwanted traffic from any program.

@ADTC
Copy link

ADTC commented Jul 5, 2024

@lwouis just lock this unproductive thread. For what it's worth, when I have thumbnails turned off and I only have icons and titles, I don't see any purple icon indicating that screen recording is happening. That's good enough for me, given the difficulty of implementing this.

I'm not sure how it grabs titles without triggering the purple icon though since you said that grabbing titles needs screen recording permission. Based on your previous comments, I believe it uses an API that's only exposed via screen recording permission but doesn't actually require you to record the screen.

This was referenced Aug 7, 2024
@lwouis lwouis added the rude A user has shown a lack of politeness or social skills label Aug 29, 2024
@jayr434
Copy link

jayr434 commented Oct 16, 2024

I'd like to throw in my support for the Degraded Mode feature. Sucks that people can be a bit rude about requests on here, but I'm sure people like me (who have to follow compliance rules related to screen recording on company machines) are looking forward to any update.
Cheers btw, apps with this minimal of overhead aren't easy to find.

@lwouis
Copy link
Owner Author

lwouis commented Oct 16, 2024

Hi,

I played around with a PoC today, to see how much work would be required. Here are some observations:

  • I just removed all Permission Code to test what would happen. It was very easy. The app worked right away
  • Accessibility Permission is necessary, otherwise keyboards shortcuts don't work which would make the app unusable. Degraded Mode should only be about not granting Screen Recording permission.
  • The new Appearances from v7.0.0 work really well out-of-the-box with this degraded mode. All 3 styles can be used. AppIcons and Titles are particularly nice, since thumbnails are gone.
  • Titles of windows were showing. I specifically remember that without the Screen Recording permission, titles were not showing previously. I think macOS may have changed this between Catalina where they introduced this new permission I think, and Sequoia where I'm testing today. In any case, we could release as-is, and see feedback of users on previous macOS versions, and fix things then if we need.
  • We would need to condition the screenshot() call by checking the new preference, to avoid wasting time with the call, in case we are in Degraded Mode.

In terms of UX, I think we need 2 things:

  • A way to opt into the Degraded Mode. It should be a bit hidden like those "text with no background and outline" buttons where you don't even notice the option is there at first (e.g. on a website, to unsubscribe). Once it's chosen, it's a preference, so it remains chosen on further launches. Some sketch of how the UI could be:
    image

  • A way to opt out. It should be easy to find. There should also be a permanent reminder that the app is running in degraded mode, so a user who opted in by mistake/impatience is not stuck there. I think some banner in the menubar menu would be nice:
    image

@Allsochen there are 60 upvotes on the OP. Maybe this feature could be a win. It doesn't seem like lots of work, and would be useful to many people who can't use AltTab at work because of strict company policies.

Thank you 🙇

@ADTC
Copy link

ADTC commented Oct 16, 2024

Nice work! Make that 61 🙂

PS: It's Grant permission btw.

@lwouis
Copy link
Owner Author

lwouis commented Oct 17, 2024

Hi everyone,

Here's a local build with this feature implemented.

Could you please try it out and share your feedback here? If there are no bugs, it will be in the next release.

Thank you 🙇

@FalconFour
Copy link

Thanks for working on this! As a small makeup for being a snarky jerk, I'm also throwing in my support on Patreon (and with the rest of my ever-growing Patreon subs, that means it's for the long term, ha). ❤️

I gave that build a try (M1 MacBook Pro running Sonoma 14.6.1), and unfortunately I don't have good results. I use Cmd+Tab habitually, and when I configure that shortcut, it merely disables the OS switcher - giving nothing of its own to take its place. I also tried "reset preferences and restart", and then tried the default Option+Tab - still nothing, no switcher, and no action. I quit AltTab and the system switcher returns under Cmd+Tab.

Really appreciate the effort, and I hope it's a quick fix! If there's any place I can grab logs to post, let me know.

@lwouis
Copy link
Owner Author

lwouis commented Oct 17, 2024

Thank you @FalconFour. A video of the issue, showing the menubar at the top, would help to understand what's happening 👍

@FalconFour
Copy link

You got it: https://youtu.be/jzn8rS5ORlg
It's hard to demonstrate "not doing anything at all" though 😅 so I explain in text doc.

@lwouis
Copy link
Owner Author

lwouis commented Oct 23, 2024

Hi everyone,

Here's a local build with this feature implemented.

Could you please try it out and share your feedback here? If there are no bugs, it will be in the next release.

Thank you 🙇

Could more people from this thread please help testing this? Without your help, the release will continue to be delayed.

Thank you

@justinnoel
Copy link

Downloaded and testing now.

@spirosag
Copy link

Hi everyone,
Here's a local build with this feature implemented.
Could you please try it out and share your feedback here? If there are no bugs, it will be in the next release.
Thank you 🙇

Could more people from this thread please help testing this? Without your help, the release will continue to be delayed.

Thank you

I’m getting the “can’t be opened because Apple can’t check it for malicious software” error pop up when I try to run it.

@ADTC
Copy link

ADTC commented Oct 24, 2024

I’m getting the “can’t be opened because Apple can’t check it for malicious software” error pop up when I try to run it.

It's probably a dev build that's not recognized by Apple. To bypass the protection, you have to right-click the file (or Control-click for the purists) to get the context menu, then choose Open. (Or you can try File > Open in the menu bar.)

You will get a different version of the error with a button to run the app anyway.

@maxchang3
Copy link

Hi everyone,

Here's a local build with this feature implemented.

Could you please try it out and share your feedback here? If there are no bugs, it will be in the next release.

Thank you 🙇

It works perfectly for me on macOS version 15.0.1.

@mracos
Copy link

mracos commented Oct 28, 2024

Been using the past couple days and working perfectly for me 💙

version alt tab version mac example deny message
Screenshot 2024-10-28 at 14 52 55 Screenshot 2024-10-28 at 14 15 08 Screenshot 2024-10-28 at 14 54 58 Screenshot 2024-10-28 at 14 54 16 Screenshot 2024-10-28 at 14 53 57

@justinnoel
Copy link

Working fine for me too. Maybe add an option to hide the menu item banner about running without screenrecording?

@lwouis lwouis closed this as completed in 129d061 Nov 2, 2024
github-actions bot pushed a commit that referenced this issue Nov 2, 2024
# [7.1.0](v7.0.2...v7.1.0) (2024-11-02)

### Bug Fixes

* fixed the rounded corners when the mouse moves over the table ([dd379c4](dd379c4))

### Features

* add irish localization ([19f59b2](19f59b2))
* add language preference ([f33418e](f33418e))
* allow to run the app without screen-recording permissions ([129d061](129d061)), closes [#1082](#1082)
* hide space labels when showing same-space windows (closes [#3766](#3766)) ([ad64ced](ad64ced))
* i18n ([d77fa67](d77fa67))
* improve appearance at the different sizes ([2c857a6](2c857a6))
* improve display of wide/tall thumbnails (closes [#3791](#3791)) ([45bbc93](45bbc93))
* improve localizations ([9d1349b](9d1349b))
github-actions bot pushed a commit that referenced this issue Nov 2, 2024
# [7.1.0](v7.0.2...v7.1.0) (2024-11-02)

### Bug Fixes

* fixed the rounded corners when the mouse moves over the table ([dd379c4](dd379c4))

### Features

* add irish localization ([19f59b2](19f59b2))
* add language preference ([f33418e](f33418e))
* allow to run the app without screen-recording permissions ([129d061](129d061)), closes [#1082](#1082)
* hide space labels when showing same-space windows (closes [#3766](#3766)) ([ad64ced](ad64ced))
* i18n ([d77fa67](d77fa67))
* improve appearance at the different sizes ([2c857a6](2c857a6))
* improve display of wide/tall thumbnails (closes [#3791](#3791)) ([45bbc93](45bbc93))
* improve localizations ([9d1349b](9d1349b))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request niche Nice idea, but not enough demand for it rude A user has shown a lack of politeness or social skills
Projects
None yet
Development

No branches or pull requests