Skip to content

Commit

Permalink
feat: better system permissions onboarding (closes #127)
Browse files Browse the repository at this point in the history
  • Loading branch information
lwouis committed Jul 14, 2020
1 parent 6d16b57 commit 6ef0a6f
Show file tree
Hide file tree
Showing 28 changed files with 747 additions and 65 deletions.
29 changes: 28 additions & 1 deletion alt-tab-macos.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
D04BA004884A273D4D2D3EF1 /* HelperExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BAD91161791D42FEC4A60 /* HelperExtensions.swift */; };
D04BA0182F4734A5C8BB63DC /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04BA5461DAEE9B5350C3020 /* Localizable.strings */; };
D04BA03B560B681AF96E4610 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04BA88ED495C54CFE0B7B87 /* InfoPlist.strings */; };
D04BA079F61177D470F3E6C1 /* accessibility@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D04BA303761CFDD9BE8B6ECB /* accessibility@2x.png */; };
D04BA084CD1236EC78D90A01 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04BACCBE5F97BE9B6CA645B /* Localizable.strings */; };
D04BA0AE9865276FF8EF5DEB /* UserDefaultsEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BA5D9B4EBEB9E4333AE39 /* UserDefaultsEvents.swift */; };
D04BA0DD6819010987B578D1 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04BA07BBF2237CC6C72D264 /* Localizable.strings */; };
Expand All @@ -29,13 +30,15 @@
D04BA26A691D56031FCCF00C /* Sysctl.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BA8DB8AA7E5570DAC568A /* Sysctl.swift */; };
D04BA276B3241D440F65B149 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04BA5C2BB394F1624DD5B45 /* InfoPlist.strings */; };
D04BA2A6FF9DDDC5A1A68E36 /* Applications.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BA282BB16C1554595A968 /* Applications.swift */; };
D04BA2B4364250FA07EE5793 /* screen-recording@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D04BA98B2A0815540E319908 /* screen-recording@2x.png */; };
D04BA2D8099594E1593EC8EF /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04BA88EDDDD6CB3FBE71FC5 /* InfoPlist.strings */; };
D04BA2E64C59D96F6EB27D9D /* FeedbackWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BA26C75F76C277653C932 /* FeedbackWindow.swift */; };
D04BA34AC850A273AB288B1E /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04BA3B51D05213404938366 /* Localizable.strings */; };
D04BA3744F48116DF4252B19 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04BA02355EB28D639F854DF /* Localizable.strings */; };
D04BA3C24F4F644EA91DE38C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04BA717693DA18CB74BAED1 /* Localizable.strings */; };
D04BA3CF766857381519B892 /* BackgroundWork.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BAB74451B79FE18B8BEDF /* BackgroundWork.swift */; };
D04BA40CC1415DA69CCE5D89 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04BA17FC84640580894400E /* InfoPlist.strings */; };
D04BA446D702C5E252AF2319 /* TitleLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BAED1C4D6BB8E24847E79 /* TitleLabel.swift */; };
D04BA4575B13F1A148C108E2 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04BA459B8804ABFBDA50663 /* InfoPlist.strings */; };
D04BA48B00B4211A465C7337 /* DebugProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BACABD048E62EBE4576CC /* DebugProfile.swift */; };
D04BA4A11F821548EE3C5E95 /* Bash.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BA514F1C4B475B3CA6EB6 /* Bash.swift */; };
Expand All @@ -52,6 +55,7 @@
D04BA7B8D599E1A7A27FF5AE /* AcknowledgmentsTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BA788228BA86D9EFBD1ED /* AcknowledgmentsTab.swift */; };
D04BA7B9421871EDBD58F4E3 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04BABA255CD25D8724A06CD /* Localizable.strings */; };
D04BA7BE7F3DD24D58ACE942 /* AppearanceTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BA64F1F344007EA13BA05 /* AppearanceTab.swift */; };
D04BA7E39FA539DD8316447A /* PermissionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BA0726EABD146753B9EF8 /* PermissionView.swift */; };
D04BA7F86F1926FBE31F44BF /* BaseLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BA53992F116E5E704CAB3 /* BaseLabel.swift */; };
D04BA8092885B40CE3527370 /* UpdatesTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BAD60C97E609A759E721E /* UpdatesTab.swift */; };
D04BA83AF2B1C3C5166C119F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04BAD58DF3FA085A45BEB50 /* InfoPlist.strings */; };
Expand Down Expand Up @@ -88,6 +92,7 @@
D04BAE8B16A06A10E2FA94DE /* AccessibilityEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BA8FDCF137D892114F5F3 /* AccessibilityEvents.swift */; };
D04BAEE31B6FFCDC779E6C17 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = D04BAC2FF99F629CD4ED20FC /* MainMenu.xib */; };
D04BAF12DF5D15B9D7D316A4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04BA61693F710CD7BD054D7 /* InfoPlist.strings */; };
D04BAFB90E00AA5D662EAF24 /* PermissionsWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BA9DF10D0CC4CA0C8F814 /* PermissionsWindow.swift */; };
D04BAFB973C3D28718FAEB87 /* Windows.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BACD976030676FD0761D5 /* Windows.swift */; };
D04BAFBC862BA5FE0294EA7A /* AXUIElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BA6F823BC0EDA9AA4B80A /* AXUIElement.swift */; };
/* End PBXBuildFile section */
Expand All @@ -99,6 +104,7 @@
C0712B3BEA2B3780398C0999 /* Pods_alt_tab_macos.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_alt_tab_macos.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D04BA015A45DE7AFDC9794FE /* Window.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Window.swift; sourceTree = "<group>"; };
D04BA03200F5A8FC0CD03607 /* CGWindowID.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CGWindowID.swift; sourceTree = "<group>"; };
D04BA0726EABD146753B9EF8 /* PermissionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PermissionView.swift; sourceTree = "<group>"; };
D04BA075E359F36C27CD5BAE /* package-lock.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "package-lock.json"; sourceTree = "<group>"; };
D04BA084F638725465234830 /* favicon-16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "favicon-16x16.png"; sourceTree = "<group>"; };
D04BA088B8A550D9367A4AAB /* it */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = it; path = InfoPlist.strings; sourceTree = "<group>"; };
Expand Down Expand Up @@ -130,6 +136,7 @@
D04BA2D022B64A876CCA6BB7 /* apple-touch-icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "apple-touch-icon.png"; sourceTree = "<group>"; };
D04BA2E723062A1DAC58618F /* setup_ci_pr.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = setup_ci_pr.sh; sourceTree = "<group>"; };
D04BA2E8D5D5CC23456BC8F7 /* tr */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = tr; path = Localizable.strings; sourceTree = "<group>"; };
D04BA303761CFDD9BE8B6ECB /* accessibility@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "accessibility@2x.png"; sourceTree = "<group>"; };
D04BA32F25860B686DFE818A /* 3 windows - 1 line.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "3 windows - 1 line.jpg"; sourceTree = "<group>"; };
D04BA3632A2EB5C64A3FEE59 /* hu */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = hu; path = InfoPlist.strings; sourceTree = "<group>"; };
D04BA369B4D9FD6A13936F53 /* bare.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = bare.html; sourceTree = "<group>"; };
Expand Down Expand Up @@ -201,7 +208,9 @@
D04BA93F02C9B26B05032B7A /* ja */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = ja; path = Localizable.strings; sourceTree = "<group>"; };
D04BA94A1695D4FF5337C84B /* import_certificate_into_main_keychain.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = import_certificate_into_main_keychain.sh; sourceTree = "<group>"; };
D04BA954319227829B646315 /* android-chrome-192x192.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "android-chrome-192x192.png"; sourceTree = "<group>"; };
D04BA98B2A0815540E319908 /* screen-recording@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "screen-recording@2x.png"; sourceTree = "<group>"; };
D04BA9B93823398A542FF7A0 /* Preferences.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Preferences.swift; sourceTree = "<group>"; };
D04BA9DF10D0CC4CA0C8F814 /* PermissionsWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PermissionsWindow.swift; sourceTree = "<group>"; };
D04BA9EF65B2E7AF9E3ADCA3 /* 2 windows - 1 line.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "2 windows - 1 line.jpg"; sourceTree = "<group>"; };
D04BAA127E73B3114B75098A /* Gemfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Gemfile; sourceTree = "<group>"; };
D04BAA4442D0CE3A4972937F /* nl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = nl; path = InfoPlist.strings; sourceTree = "<group>"; };
Expand Down Expand Up @@ -258,6 +267,7 @@
D04BAE5D665680CB4B13CA26 /* app-icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "app-icon.icns"; sourceTree = "<group>"; };
D04BAE93A5854C501639C640 /* update_homebrew_cask.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = update_homebrew_cask.sh; sourceTree = "<group>"; };
D04BAE94A2FD4D9B72830B43 /* favicon-32x32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "favicon-32x32.png"; sourceTree = "<group>"; };
D04BAED1C4D6BB8E24847E79 /* TitleLabel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TitleLabel.swift; sourceTree = "<group>"; };
D04BAED450528DC3C28FABDE /* Changelog.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = Changelog.md; sourceTree = "<group>"; };
D04BAEF1D194C2379C9970F1 /* setup_ci_master.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = setup_ci_master.sh; sourceTree = "<group>"; };
D04BAF076A30A1BAFEDBEA66 /* 5 windows - 2 lines.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "5 windows - 2 lines.jpg"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -297,7 +307,6 @@
672F94799CC7C90282AEB3EA /* Pods-alt-tab-macos.debug.xcconfig */,
59DD4BE63D42EEFF1182BA7F /* Pods-alt-tab-macos.release.xcconfig */,
);
name = Pods;
path = Pods;
sourceTree = "<group>";
};
Expand Down Expand Up @@ -392,6 +401,15 @@
name = Products;
sourceTree = "<group>";
};
D04BA1C271F0DA573345B860 /* permission-window */ = {
isa = PBXGroup;
children = (
D04BA9DF10D0CC4CA0C8F814 /* PermissionsWindow.swift */,
D04BA0726EABD146753B9EF8 /* PermissionView.swift */,
);
path = "permission-window";
sourceTree = "<group>";
};
D04BA229883E5D540D00232D /* ui */ = {
isa = PBXGroup;
children = (
Expand All @@ -401,6 +419,7 @@
D04BAD905546AA93E5117B0A /* Menubar.swift */,
D04BA26C75F76C277653C932 /* FeedbackWindow.swift */,
D04BA2CBF267F267225CA671 /* generic-components */,
D04BA1C271F0DA573345B860 /* permission-window */,
);
path = ui;
sourceTree = "<group>";
Expand Down Expand Up @@ -604,6 +623,8 @@
D04BA1C3E42AC44CA2C5D3D8 /* app-icon.svg */,
D04BAE5D665680CB4B13CA26 /* app-icon.icns */,
D04BA4356B4F575E66B32298 /* app-icon.iconset */,
D04BA303761CFDD9BE8B6ECB /* accessibility@2x.png */,
D04BA98B2A0815540E319908 /* screen-recording@2x.png */,
);
path = icons;
sourceTree = "<group>";
Expand Down Expand Up @@ -702,6 +723,7 @@
D04BA7C836A8CE8C0B8D128B /* TextArea.swift */,
D04BA53992F116E5E704CAB3 /* BaseLabel.swift */,
D04BA5BD11C365C19461458C /* TextField.swift */,
D04BAED1C4D6BB8E24847E79 /* TitleLabel.swift */,
);
path = text;
sourceTree = "<group>";
Expand Down Expand Up @@ -929,6 +951,8 @@
D04BAC463D66BB8E19CF8E2E /* InfoPlist.strings in Resources */,
D04BA7B9421871EDBD58F4E3 /* Localizable.strings in Resources */,
D04BA530F00E5989D66C6A1F /* Contributors.md in Resources */,
D04BA079F61177D470F3E6C1 /* accessibility@2x.png in Resources */,
D04BA2B4364250FA07EE5793 /* screen-recording@2x.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -1054,6 +1078,9 @@
D04BA1766FBCB2E941D081A5 /* WorkspaceEvents.swift in Sources */,
D04BA0AE9865276FF8EF5DEB /* UserDefaultsEvents.swift in Sources */,
D04BA4A11F821548EE3C5E95 /* Bash.swift in Sources */,
D04BAFB90E00AA5D662EAF24 /* PermissionsWindow.swift in Sources */,
D04BA7E39FA539DD8316447A /* PermissionView.swift in Sources */,
D04BA446D702C5E252AF2319 /* TitleLabel.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
Binary file added resources/icons/accessibility@2x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added resources/icons/screen-recording@2x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 27 additions & 0 deletions resources/l10n/Localizable.strings
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
/* No comment provided by engineer. */
"About" = "About";

/* No comment provided by engineer. */
"Accessibility" = "Accessibility";

/* No comment provided by engineer. */
"Acknowledgments" = "Acknowledgments";

Expand Down Expand Up @@ -28,6 +31,12 @@
/* No comment provided by engineer. */
"All spaces" = "All spaces";

/* No comment provided by engineer. */
"Allowed" = "Allowed";

/* No comment provided by engineer. */
"AltTab needs some permissions" = "AltTab needs some permissions";

/* No comment provided by engineer. */
"Apparition delay:" = "Apparition delay:";

Expand Down Expand Up @@ -118,6 +127,15 @@
/* No comment provided by engineer. */
"Mouse hover" = "Mouse hover";

/* No comment provided by engineer. */
"Not allowed" = "Not allowed";

/* No comment provided by engineer. */
"Open Accessibility Preferences…" = "Open Accessibility Preferences…";

/* No comment provided by engineer. */
"Open Screen Recording Preferences…" = "Open Screen Recording Preferences…";

/* No comment provided by engineer. */
"Optional: email (if you want a reply)" = "Optional: email (if you want a reply)";

Expand All @@ -142,6 +160,9 @@
/* No comment provided by engineer. */
"Screen including mouse" = "Screen including mouse";

/* No comment provided by engineer. */
"Screen Recording" = "Screen Recording";

/* No comment provided by engineer. */
"Screen showing AltTab" = "Screen showing AltTab";

Expand Down Expand Up @@ -196,6 +217,12 @@
/* No comment provided by engineer. */
"then press:" = "then press:";

/* No comment provided by engineer. */
"This permission is needed to focus windows after you release the shortcut" = "This permission is needed to focus windows after you release the shortcut";

/* No comment provided by engineer. */
"This permission is needed to show screenshots and titles of open windows" = "This permission is needed to show screenshots and titles of open windows";

/* No comment provided by engineer. */
"Updates" = "Updates";

Expand Down
27 changes: 27 additions & 0 deletions resources/l10n/ar.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
/*No comment provided by engineer.*/
"About" = "حول";

/*No comment provided by engineer.*/
"Accessibility" = "Accessibility";

/*No comment provided by engineer.*/
"Acknowledgments" = "شكر وتقدير";

Expand Down Expand Up @@ -32,6 +35,12 @@
/*No comment provided by engineer.*/
"All spaces" = "كل المساحات";

/*No comment provided by engineer.*/
"Allowed" = "Allowed";

/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab needs some permissions";

/*No comment provided by engineer.*/
"Apparition delay:" = "تأخر الوموض:";

Expand Down Expand Up @@ -122,9 +131,18 @@
/*No comment provided by engineer.*/
"Mouse hover" = "تمرير المؤشر";

/*No comment provided by engineer.*/
"Not allowed" = "Not allowed";

/*Copyright (human-readable)*/
"NSHumanReadableCopyright" = "رخصة GPL-3.0";

/*No comment provided by engineer.*/
"Open Accessibility Preferences…" = "Open Accessibility Preferences…";

/*No comment provided by engineer.*/
"Open Screen Recording Preferences…" = "Open Screen Recording Preferences…";

/*No comment provided by engineer.*/
"Optional: email (if you want a reply)" = "اختياري: بريد (إذا كنت تريد رد)";

Expand All @@ -149,6 +167,9 @@
/*No comment provided by engineer.*/
"Screen including mouse" = "شاشة المؤشر";

/*No comment provided by engineer.*/
"Screen Recording" = "Screen Recording";

/*No comment provided by engineer.*/
"Screen showing AltTab" = "شاشة الـAltTab";

Expand Down Expand Up @@ -203,6 +224,12 @@
/*No comment provided by engineer.*/
"then press:" = "واضغط:";

/*No comment provided by engineer.*/
"This permission is needed to focus windows after you release the shortcut" = "This permission is needed to focus windows after you release the shortcut";

/*No comment provided by engineer.*/
"This permission is needed to show screenshots and titles of open windows" = "This permission is needed to show screenshots and titles of open windows";

/*No comment provided by engineer.*/
"Updates" = "تحديثات";

Expand Down
Loading

0 comments on commit 6ef0a6f

Please sign in to comment.