├── Default.bttpreset ├── External Display ├── Clamshell Mode: OFF.kmmacros ├── Display Utilities.kmmacros ├── No Clamshell Mode.kmmacros └── README.md ├── Low Power Mode ├── Low Power Mode.app │ └── Contents │ │ ├── Info.plist │ │ ├── LowPowerMode.py │ │ ├── MacOS │ │ └── Application Stub │ │ ├── Resources │ │ ├── AutomatorApplet.icns │ │ ├── ar.lproj │ │ │ └── InfoPlist.strings │ │ ├── ca.lproj │ │ │ └── InfoPlist.strings │ │ ├── cs.lproj │ │ │ └── InfoPlist.strings │ │ ├── da.lproj │ │ │ └── InfoPlist.strings │ │ ├── de.lproj │ │ │ └── InfoPlist.strings │ │ ├── el.lproj │ │ │ └── InfoPlist.strings │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ ├── en_AU.lproj │ │ │ └── InfoPlist.strings │ │ ├── en_GB.lproj │ │ │ └── InfoPlist.strings │ │ ├── es.lproj │ │ │ └── InfoPlist.strings │ │ ├── es_419.lproj │ │ │ └── InfoPlist.strings │ │ ├── fi.lproj │ │ │ └── InfoPlist.strings │ │ ├── fr.lproj │ │ │ └── InfoPlist.strings │ │ ├── fr_CA.lproj │ │ │ └── InfoPlist.strings │ │ ├── he.lproj │ │ │ └── InfoPlist.strings │ │ ├── hi.lproj │ │ │ └── InfoPlist.strings │ │ ├── hr.lproj │ │ │ └── InfoPlist.strings │ │ ├── hu.lproj │ │ │ └── InfoPlist.strings │ │ ├── id.lproj │ │ │ └── InfoPlist.strings │ │ ├── it.lproj │ │ │ └── InfoPlist.strings │ │ ├── ja.lproj │ │ │ └── InfoPlist.strings │ │ ├── ko.lproj │ │ │ └── InfoPlist.strings │ │ ├── ms.lproj │ │ │ └── InfoPlist.strings │ │ ├── nl.lproj │ │ │ └── InfoPlist.strings │ │ ├── no.lproj │ │ │ └── InfoPlist.strings │ │ ├── pl.lproj │ │ │ └── InfoPlist.strings │ │ ├── pt.lproj │ │ │ └── InfoPlist.strings │ │ ├── pt_PT.lproj │ │ │ └── InfoPlist.strings │ │ ├── ro.lproj │ │ │ └── InfoPlist.strings │ │ ├── ru.lproj │ │ │ └── InfoPlist.strings │ │ ├── sk.lproj │ │ │ └── InfoPlist.strings │ │ ├── sv.lproj │ │ │ └── InfoPlist.strings │ │ ├── th.lproj │ │ │ └── InfoPlist.strings │ │ ├── tr.lproj │ │ │ └── InfoPlist.strings │ │ ├── uk.lproj │ │ │ └── InfoPlist.strings │ │ ├── vi.lproj │ │ │ └── InfoPlist.strings │ │ ├── zh_CN.lproj │ │ │ └── InfoPlist.strings │ │ ├── zh_HK.lproj │ │ │ └── InfoPlist.strings │ │ └── zh_TW.lproj │ │ │ └── InfoPlist.strings │ │ └── document.wflow ├── LowPowerMode.bttpreset └── README.md ├── README.md ├── To Capitalized.kmmacros ├── Video Editing ├── 10gbps-External-Drive-Icons │ ├── icns │ │ ├── USB10gbpsIcon-v1.icns │ │ └── USB10gbpsIcon-v2.icns │ └── png │ │ ├── USB10gbpsIcon-v1.png │ │ └── USB10gbpsIcon-v2.png ├── Editing Drive Alert.kmmacros ├── FCPX.bttpreset ├── New-Project-Folder-FiScript.sh ├── Quit Video Editing.zip ├── README.md ├── Start-Video-Editing-FiScript.sh ├── Template.zip ├── Video Editing.zip └── folder-icons │ ├── icns │ ├── AUDIO-volume.icns │ ├── CAMERA-camera.icns │ ├── DOWNLOADS-downloads.icns │ ├── EFFECTS-headphones.icns │ ├── IMAGES-pictures.icns │ ├── MIC-mic.icns │ ├── MUSIC-note.icns │ ├── PHOTOS-camera.icns │ ├── SCREENCAP-desktop.icns │ ├── SCREENSHOT-desktop.icns │ └── VIDEO-film.icns │ └── png │ ├── AUDIO-volume.png │ ├── CAMERA-camera.png │ ├── DOWNLOADS-downloads.png │ ├── EFFECTS-headphones.png │ ├── IMAGES-pictures.png │ ├── MIC-mic.png │ ├── MUSIC-note.png │ ├── PHOTOS-camera.png │ ├── SCREENCAP-desktop.png │ ├── SCREENSHOT-desktop.png │ └── VIDEO-film.png └── Yeelight ├── README.md ├── Yeelight.bttpreset ├── run_Yeelight_bulb.scpt └── yeelight_bulb.py /Default.bttpreset: -------------------------------------------------------------------------------- 1 | { 2 | "BTTPresetName" : "Default", 3 | "BTTPresetUUID" : "717BE5D0-5B48-41A9-973E-B4BCF2151C01", 4 | "BTTPresetContent" : [ 5 | { 6 | "BTTAppBundleIdentifier" : "com.apple.FinalCut", 7 | "BTTAppName" : "Final Cut Pro", 8 | "BTTAppProcessMatchMode" : 2, 9 | "BTTAppProcessName" : "Final Cut Pro", 10 | "BTTTriggers" : [ 11 | 12 | ] 13 | }, 14 | { 15 | "BTTAppBundleIdentifier" : "BT.G", 16 | "BTTAppName" : "Global", 17 | "BTTTriggers" : [ 18 | { 19 | "BTTTriggerType" : 635, 20 | "BTTTriggerTypeDescription" : "App Switcher Widget", 21 | "BTTTriggerClass" : "BTTTriggerTypeTouchBar", 22 | "BTTPredefinedActionType" : -1, 23 | "BTTPredefinedActionName" : "No Action", 24 | "BTTEnabled2" : 1, 25 | "BTTUUID" : "D815A401-9FFF-4DF5-ACF8-1748CE273DE4", 26 | "BTTEnabled" : 1, 27 | "BTTModifierMode" : 0, 28 | "BTTOrder" : 0, 29 | "BTTDisplayOrder" : 0, 30 | "BTTMergeIntoTouchBarGroups" : 0, 31 | "BTTKeySequence" : { 32 | 33 | }, 34 | "BTTTriggerConfig" : { 35 | "BTTTBAppSwitcherHideActiveApp" : true, 36 | "BTTTouchBarAlternateBackgroundColor" : "0.000000, 0.000000, 0.000000, 0.000000", 37 | "BTTTouchBarButtonCornerRadius" : 6, 38 | "BTTTouchBarItemPlacement" : 1, 39 | "BTTTouchBarFreeSpaceAfterButton" : 5, 40 | "BTTTouchBarButtonColor" : "221.000000, 0.000000, 0.000000, 255.000000", 41 | "BTTTouchBarItemIconWidth" : 22, 42 | "BTTTBWidgetWidth" : 300, 43 | "BTTTouchBarItemPadding" : 0, 44 | "BTTTouchBarItemIconHeight" : 22 45 | } 46 | }, 47 | { 48 | "BTTTriggerType" : 113, 49 | "BTTTriggerTypeDescription" : "TipTap Left (1 Finger Fix)", 50 | "BTTTriggerClass" : "BTTTriggerTypeTouchpadAll", 51 | "BTTPredefinedActionType" : -1, 52 | "BTTPredefinedActionName" : "No Action", 53 | "BTTShortcutToSend" : "56,55,123", 54 | "BTTEnabled2" : 1, 55 | "BTTUUID" : "80C935FC-F86C-420A-B73E-A4837CC79AA8", 56 | "BTTEnabled" : 1, 57 | "BTTModifierMode" : 0, 58 | "BTTAlternateModifierKeys" : 0, 59 | "BTTOrder" : 0, 60 | "BTTDisplayOrder" : 0, 61 | "BTTMergeIntoTouchBarGroups" : 0, 62 | "BTTKeySequence" : { 63 | 64 | }, 65 | "BTTTriggerConfig" : { 66 | "BTTNoTouchTimeout" : 0 67 | } 68 | }, 69 | { 70 | "BTTTriggerType" : 114, 71 | "BTTTriggerTypeDescription" : "TipTap Right (1 Finger Fix)", 72 | "BTTTriggerClass" : "BTTTriggerTypeTouchpadAll", 73 | "BTTPredefinedActionType" : -1, 74 | "BTTPredefinedActionName" : "No Action", 75 | "BTTShortcutToSend" : "56,55,124", 76 | "BTTEnabled2" : 1, 77 | "BTTUUID" : "7182CB97-E470-40ED-B32A-7225964F127E", 78 | "BTTEnabled" : 1, 79 | "BTTModifierMode" : 0, 80 | "BTTAlternateModifierKeys" : 0, 81 | "BTTOrder" : 1, 82 | "BTTDisplayOrder" : 0, 83 | "BTTMergeIntoTouchBarGroups" : 0, 84 | "BTTKeySequence" : { 85 | 86 | }, 87 | "BTTTriggerConfig" : { 88 | "BTTNoTouchTimeout" : 0 89 | } 90 | } 91 | ] 92 | } 93 | ], 94 | "BTTPresetSnapAreas" : [ 95 | 96 | ] 97 | } -------------------------------------------------------------------------------- /External Display/Clamshell Mode: OFF.kmmacros: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Activate 7 | Normal 8 | CreationDate 9 | 597401350.00403798 10 | Macros 11 | 12 | 13 | Actions 14 | 15 | 16 | Action 17 | Toggle 18 | ActionName 19 | Toggle Macro “No Clamshell Mode” 20 | IsDisclosed 21 | 22 | MacroActionType 23 | SetMacroEnable 24 | MacroUID 25 | A708C41C-B7F1-4322-80AE-E3832649DAC4 26 | 27 | 28 | ActionName 29 | Change Macro Name 30 | Conditions 31 | 32 | ConditionList 33 | 34 | 35 | ConditionType 36 | Macro 37 | MacroConditionType 38 | IsDisabled 39 | MacroUID 40 | A708C41C-B7F1-4322-80AE-E3832649DAC4 41 | 42 | 43 | ConditionListMatch 44 | All 45 | 46 | ElseActions 47 | 48 | 49 | DisplayKind 50 | Window 51 | HonourFailureSettings 52 | 53 | IncludeStdErr 54 | 55 | MacroActionType 56 | ExecuteAppleScript 57 | Path 58 | 59 | Text 60 | tell application "Keyboard Maestro" 61 | set macroUUIDs to selectedMacros 62 | if (count of macroUUIDs) is 0 then 63 | return "" 64 | end if 65 | set macroUUID to item 1 of macroUUIDs 66 | tell macro id macroUUID 67 | set its name to "Clamshell Mode: OFF" 68 | end tell 69 | end tell 70 | TimeOutAbortsMacro 71 | 72 | TrimResults 73 | 74 | TrimResultsNew 75 | 76 | UseText 77 | 78 | 79 | 80 | MacroActionType 81 | IfThenElse 82 | ThenActions 83 | 84 | 85 | DisplayKind 86 | Window 87 | HonourFailureSettings 88 | 89 | IncludeStdErr 90 | 91 | MacroActionType 92 | ExecuteAppleScript 93 | Path 94 | 95 | Text 96 | tell application "Keyboard Maestro" 97 | set macroUUIDs to selectedMacros 98 | if (count of macroUUIDs) is 0 then 99 | return "" 100 | end if 101 | set macroUUID to item 1 of macroUUIDs 102 | tell macro id macroUUID 103 | set its name to "Clamshell Mode: ON" 104 | end tell 105 | end tell 106 | TimeOutAbortsMacro 107 | 108 | TrimResults 109 | 110 | TrimResultsNew 111 | 112 | UseText 113 | 114 | 115 | 116 | TimeOutAbortsMacro 117 | 118 | 119 | 120 | CreationDate 121 | 633866641.15587997 122 | CustomIconData 123 | KMEP-Computer 124 | ModificationDate 125 | 633888616.98913801 126 | Name 127 | Clamshell Mode: OFF 128 | Triggers 129 | 130 | 131 | MacroTriggerType 132 | StatusMenu 133 | 134 | 135 | UID 136 | 23EBBC05-FDF7-4794-9A1F-9B5394EE5E0E 137 | 138 | 139 | Name 140 | Global Macro Group 141 | ToggleMacroUID 142 | 68968D2A-94B0-41A7-8F5A-7207B833E2C0 143 | UID 144 | EA81928B-1466-4727-82D2-6AFEDC66444B 145 | 146 | 147 | 148 | -------------------------------------------------------------------------------- /External Display/Display Utilities.kmmacros: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Activate 7 | Normal 8 | CreationDate 9 | 597401350.00403798 10 | Macros 11 | 12 | 13 | Actions 14 | 15 | 16 | ActionColor 17 | Yellow 18 | MacroActionType 19 | Comment 20 | StyledText 21 | 22 | cnRmZAAAAAADAAAAAgAAAAcAAABU 23 | WFQucnRmAQAAAC4ZAgAAKwAAAAEA 24 | AAARAgAAe1xydGYxXGFuc2lcYW5z 25 | aWNwZzEyNTJcY29jb2FydGYxNjcx 26 | XGNvY29hc3VicnRmNjAwCntcZm9u 27 | dHRibFxmMFxmc3dpc3NcZmNoYXJz 28 | ZXQwIEhlbHZldGljYTtcZjFcZnN3 29 | aXNzXGZjaGFyc2V0MCBIZWx2ZXRp 30 | Y2EtQm9sZDt9CntcY29sb3J0Ymw7 31 | XHJlZDI1NVxncmVlbjI1NVxibHVl 32 | MjU1O1xyZWQwXGdyZWVuMFxibHVl 33 | MDt9CntcKlxleHBhbmRlZGNvbG9y 34 | dGJsOztcY3NzcmdiXGMwXGMwXGMw 35 | XGM4NDcwNlxjbmFtZSBjb250cm9s 36 | VGV4dENvbG9yO30KXHBhcmRcdHg1 37 | NjBcdHgxMTIwXHR4MTY4MFx0eDIy 38 | NDBcdHgyODAwXHR4MzM2MFx0eDM5 39 | MjBcdHg0NDgwXHR4NTA0MFx0eDU2 40 | MDBcdHg2MTYwXHR4NjcyMFxwYXJk 41 | aXJuYXR1cmFsXHBhcnRpZ2h0ZW5m 42 | YWN0b3IwCgpcZjBcZnMyNiBcY2Yy 43 | IFRoaXMgbWFjcm8gbmVlZHMgdG8g 44 | Y2hlY2sgaWYgeW91IGFyZSBsb2dn 45 | ZWQgaW4uIEluc2VydCB5b3VyIG1h 46 | YyB1c2VyIG5hbWUgaW4gdGhlIGFj 47 | dGlvbiBiZWxvdywgYWZ0ZXIgdGhl 48 | IApcZjFcYiBjb250YWlucwpcZjBc 49 | YjAgIGZpZWxkfQEAAAAjAAAAAQAA 50 | AAcAAABUWFQucnRmEAAAALoWGGC2 51 | AQAAAAAAAAAAAAA= 52 | 53 | Title 54 | Check if user logged in (USER ACTION REQUIRED) 55 | 56 | 57 | Conditions 58 | 59 | ConditionList 60 | 61 | 62 | ConditionType 63 | Script 64 | Path 65 | 66 | ScriptConditionSourceType 67 | ShellScriptText 68 | ScriptConditionType 69 | Contains 70 | ScriptResult 71 | INSERT_YOUR_USERNAME_HERE 72 | ScriptTerminationStatus 73 | 1 74 | ScriptText 75 | who | grep "console" 76 | 77 | 78 | ConditionListMatch 79 | All 80 | 81 | MacroActionType 82 | PauseUntil 83 | TimeOutAbortsMacro 84 | 85 | 86 | 87 | ActionName 88 | If External Display connected 89 | Conditions 90 | 91 | ConditionList 92 | 93 | 94 | ConditionType 95 | Script 96 | Path 97 | 98 | ScriptConditionSourceType 99 | ShellScriptText 100 | ScriptConditionType 101 | Contains 102 | ScriptResult 103 | AppleDisplay 3 3 USEABLE 104 | ScriptTerminationStatus 105 | 1 106 | ScriptText 107 | pmset -g powerstate | grep AppleDisplay | grep USEABLE 108 | 109 | 110 | ConditionListMatch 111 | Any 112 | 113 | ElseActions 114 | 115 | 116 | Action 117 | Quit 118 | Application 119 | 120 | BundleIdentifier 121 | com.benq.DisplayPilot 122 | Name 123 | DisplayPilot 124 | NewFile 125 | /Applications/DisplayPilot.app 126 | 127 | IsDisclosed 128 | 129 | MacroActionType 130 | QuitSpecificApp 131 | Target 132 | Specific 133 | 134 | 135 | Action 136 | Quit 137 | Application 138 | 139 | BundleIdentifier 140 | me.guillaumeb.MonitorControl 141 | Name 142 | MonitorControl 143 | NewFile 144 | /Applications/MonitorControl.app 145 | 146 | IsDisclosed 147 | 148 | MacroActionType 149 | QuitSpecificApp 150 | Target 151 | Specific 152 | 153 | 154 | MacroActionType 155 | IfThenElse 156 | ThenActions 157 | 158 | 159 | AllWindows 160 | 161 | AlreadyActivatedActionType 162 | Normal 163 | Application 164 | 165 | BundleIdentifier 166 | me.guillaumeb.MonitorControl 167 | Name 168 | MonitorControl 169 | NewFile 170 | /Applications/MonitorControl.app 171 | 172 | IsDisclosed 173 | 174 | MacroActionType 175 | ActivateApplication 176 | ReopenWindows 177 | 178 | TimeOutAbortsMacro 179 | 180 | 181 | 182 | ActionName 183 | If DisplayPilot is not running 184 | Conditions 185 | 186 | ConditionList 187 | 188 | 189 | Application 190 | 191 | BundleIdentifier 192 | com.benq.DisplayPilot 193 | Name 194 | DisplayPilot 195 | NewFile 196 | /Applications/DisplayPilot.app 197 | 198 | ApplicationConditionType 199 | NotRunning 200 | ConditionType 201 | Application 202 | 203 | 204 | ConditionListMatch 205 | All 206 | 207 | ElseActions 208 | 209 | MacroActionType 210 | IfThenElse 211 | ThenActions 212 | 213 | 214 | AllWindows 215 | 216 | AlreadyActivatedActionType 217 | Hide 218 | Application 219 | 220 | BundleIdentifier 221 | com.benq.DisplayPilot 222 | Name 223 | DisplayPilot 224 | NewFile 225 | /Applications/DisplayPilot.app 226 | 227 | IsDisclosed 228 | 229 | MacroActionType 230 | ActivateApplication 231 | ReopenWindows 232 | 233 | TimeOutAbortsMacro 234 | 235 | 236 | 237 | ActionName 238 | Execute AppleScript to close DisplayPilot window 239 | DisplayKind 240 | None 241 | HonourFailureSettings 242 | 243 | IncludeStdErr 244 | 245 | MacroActionType 246 | ExecuteAppleScript 247 | Path 248 | 249 | Text 250 | delay 0.9 set timeoutSeconds to 0.5 set uiScript to "click UI Element 1 of window 1 of application process \"DisplayPilot\"" my doWithTimeout(uiScript, timeoutSeconds) on doWithTimeout(uiScript, timeoutSeconds) set endDate to (current date) + timeoutSeconds repeat try run script "tell application \"System Events\" " & uiScript & " end tell" exit repeat on error errorMessage if ((current date) > endDate) then error "Can not " & uiScript end if end try end repeat end doWithTimeout 251 | TimeOutAbortsMacro 252 | 253 | TrimResults 254 | 255 | TrimResultsNew 256 | 257 | UseText 258 | 259 | 260 | 261 | IsActive 262 | 263 | IsDisclosed 264 | 265 | MacroActionType 266 | ExecuteWorkflow 267 | Path 268 | ~/Library/Mobile Documents/com~apple~Automator/Documents/close_DisplayPilot.workflow 269 | TimeOutAbortsMacro 270 | 271 | 272 | 273 | TimeOutAbortsMacro 274 | 275 | 276 | 277 | TimeOutAbortsMacro 278 | 279 | 280 | 281 | CreationDate 282 | 633782935.025998 283 | CustomIconData 284 | KMEP-Display 285 | ModificationDate 286 | 634643484.32087004 287 | Name 288 | Display Utilities 289 | Triggers 290 | 291 | 292 | MacroTriggerType 293 | Display 294 | 295 | 296 | UID 297 | 4367B571-0AB3-43D2-B9D2-B3A5C3A32FC6 298 | 299 | 300 | Name 301 | Global Macro Group 302 | ToggleMacroUID 303 | 68968D2A-94B0-41A7-8F5A-7207B833E2C0 304 | UID 305 | EA81928B-1466-4727-82D2-6AFEDC66444B 306 | 307 | 308 | 309 | -------------------------------------------------------------------------------- /External Display/No Clamshell Mode.kmmacros: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Activate 7 | Normal 8 | CreationDate 9 | 597401350.00403798 10 | Macros 11 | 12 | 13 | Actions 14 | 15 | 16 | DisplayKind 17 | None 18 | HonourFailureSettings 19 | 20 | IncludeStdErr 21 | 22 | MacroActionType 23 | ExecuteShellScript 24 | Path 25 | 26 | Source 27 | Nothing 28 | Text 29 | #!/usr/bin/env bash 30 | 31 | LID_CLOSED=$(ioreg -r -k AppleClamshellState | grep AppleClamshellState | grep Yes) 32 | if [ "$LID_CLOSED" ]; then 33 | EXTERNAL_DISPLAY_CONNECTED=$(pmset -g powerstate | grep AppleDisplay | grep USEABLE) 34 | if [ "$EXTERNAL_DISPLAY_CONNECTED" ]; then 35 | AWAKE=$(pmset -g powerstate | grep IODisplayWrangler | grep USEABLE) 36 | if [ "$AWAKE" ]; then 37 | pmset sleepnow 38 | fi 39 | fi 40 | fi 41 | TimeOutAbortsMacro 42 | 43 | TrimResults 44 | 45 | TrimResultsNew 46 | 47 | UseText 48 | 49 | 50 | 51 | IsDisclosed 52 | 53 | MacroActionType 54 | Comment 55 | StyledText 56 | 57 | cnRmZAAAAAADAAAAAgAAAAcAAABU 58 | WFQucnRmAQAAAC68AQAAKwAAAAEA 59 | AAC0AQAAe1xydGYxXGFuc2lcYW5z 60 | aWNwZzEyNTJcY29jb2FydGYxNjcx 61 | XGNvY29hc3VicnRmNjAwCntcZm9u 62 | dHRibFxmMFxmc3dpc3NcZmNoYXJz 63 | ZXQwIEhlbHZldGljYTt9CntcY29s 64 | b3J0Ymw7XHJlZDI1NVxncmVlbjI1 65 | NVxibHVlMjU1O1xyZWQwXGdyZWVu 66 | MFxibHVlMDt9CntcKlxleHBhbmRl 67 | ZGNvbG9ydGJsOztcY3NzcmdiXGMw 68 | XGMwXGMwXGM4NDcwNlxjbmFtZSBj 69 | b250cm9sVGV4dENvbG9yO30KXHBh 70 | cmRcdHg1NjBcdHgxMTIwXHR4MTY4 71 | MFx0eDIyNDBcdHgyODAwXHR4MzM2 72 | MFx0eDM5MjBcdHg0NDgwXHR4NTA0 73 | MFx0eDU2MDBcdHg2MTYwXHR4Njcy 74 | MFxwYXJkaXJuYXR1cmFsXHBhcnRp 75 | Z2h0ZW5mYWN0b3IwCgpcZjBcZnMy 76 | NiBcY2YyIHNoZWxsIHNjcmlwdCBm 77 | cm9tIGh0dHBzOi8vZ2l0aHViLmNv 78 | bS9waXJqL25vY2xhbXNoZWxsL2Js 79 | b2IvbWFzdGVyL25vY2xhbXNoZWxs 80 | fQEAAAAjAAAAAQAAAAcAAABUWFQu 81 | cnRmEAAAAPoVGGC2AQAAAAAAAAAA 82 | AAA= 83 | 84 | Title 85 | Credits 86 | 87 | 88 | CreationDate 89 | 633864559.11891699 90 | CustomIconData 91 | KMEP-Computer 92 | ModificationDate 93 | 633891503.75421596 94 | Name 95 | No Clamshell Mode 96 | Triggers 97 | 98 | 99 | MacroTriggerType 100 | Display 101 | 102 | 103 | UID 104 | A708C41C-B7F1-4322-80AE-E3832649DAC4 105 | 106 | 107 | Name 108 | Global Macro Group 109 | ToggleMacroUID 110 | 68968D2A-94B0-41A7-8F5A-7207B833E2C0 111 | UID 112 | EA81928B-1466-4727-82D2-6AFEDC66444B 113 | 114 | 115 | 116 | -------------------------------------------------------------------------------- /External Display/README.md: -------------------------------------------------------------------------------- 1 | ## Display Utilities 2 | ### What does it do 3 | When connecting to external display opens the following menubar apps: 4 | * [Monitor Control](https://github.com/MonitorControl/MonitorControl) to control external monitor brightness and volume from MacOS with keys or TouchBar (in Extended Control Strip) 5 | * [Display Pilot](https://www.benq.com/en-us/monitor/software/display-pilot.html) to control external monitor sources, modes, etc. from MacOS (supported BenQ monitors only) 6 | 1. Execute the app 7 | 2. Close app window that annoyingly opens by default each time Display Pilot is executed 8 | 9 | When disconnecting form external display quit the following menubar apps: 10 | * [Monitor Control](https://github.com/MonitorControl/MonitorControl) 11 | * [Display Pilot](https://www.benq.com/en-us/monitor/software/display-pilot.html) 12 | 13 | ### Requirements 14 | * [Keyboard Maestro](https://www.keyboardmaestro.com/main/) 15 | * [Monitor Control](https://github.com/MonitorControl/MonitorControl) 16 | * [Display Pilot](https://www.benq.com/en-us/monitor/software/display-pilot.html) 17 | 18 | ### Installation 19 | * Remove Monitor Control and Display Pilot from login items 20 | * Import the `Display Utilities.kmmacros` file into Keyboard Maestro 21 | * Edit the macro inserting [your mac user name](https://support.apple.com/guide/mac-help/if-you-forgot-your-user-or-account-name-mh35548/mac) in the field that requires it 22 | 23 | --- 24 | 25 | ## No Clamshell Mode 26 | ### What does it do 27 | When the lid of your MacBook is closed, external monitor goes to sleep. To control this behaviour use the Clamshell Mode toggle in the status menu of Keyboard Maestro (menubar). Default Clamshell Mode: OFF. 28 | 29 | ### Requirements 30 | * [Keyboard Maestro](https://www.keyboardmaestro.com/main/) 31 | 32 | ### Installation 33 | * Import the `No Clamshell Mode.kmmacros` and `Clamshell Mode: OFF.kmmacros` files into Keyboard Maestro 34 | 35 | -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMIsApplet 6 | 7 | AMStayOpen 8 | 9 | BuildMachineOSBuild 10 | 17A405001 11 | CFBundleAllowMixedLocalizations 12 | 13 | CFBundleDevelopmentRegion 14 | English 15 | CFBundleDocumentTypes 16 | 17 | 18 | CFBundleTypeExtensions 19 | 20 | * 21 | 22 | CFBundleTypeName 23 | Automator workflow file 24 | CFBundleTypeOSTypes 25 | 26 | **** 27 | 28 | CFBundleTypeRole 29 | Viewer 30 | 31 | 32 | CFBundleExecutable 33 | Application Stub 34 | CFBundleIconFile 35 | AutomatorApplet 36 | CFBundleIdentifier 37 | com.apple.automator.Low Power Mode 38 | CFBundleInfoDictionaryVersion 39 | 6.0 40 | CFBundleName 41 | Low Power Mode 42 | CFBundlePackageType 43 | APPL 44 | CFBundleShortVersionString 45 | 1.3 46 | CFBundleSignature 47 | ???? 48 | CFBundleSupportedPlatforms 49 | 50 | MacOSX 51 | 52 | CFBundleURLTypes 53 | 54 | CFBundleVersion 55 | 444.42 56 | DTCompiler 57 | com.apple.compilers.llvm.clang.1_0 58 | DTPlatformBuild 59 | 10P70r 60 | DTPlatformName 61 | macosx 62 | DTPlatformVersion 63 | 10.14 64 | DTSDKBuild 65 | 18F82 66 | DTSDKName 67 | macosx10.14internal 68 | DTXcode 69 | 1020 70 | DTXcodeBuild 71 | 10P70r 72 | LSMinimumSystemVersion 73 | 10.6 74 | LSUIElement 75 | 76 | NSAppleEventsUsageDescription 77 | This workflow needs to control other applications to run. 78 | NSAppleMusicUsageDescription 79 | This workflow needs access to your music to run. 80 | NSAppleScriptEnabled 81 | YES 82 | NSCalendarsUsageDescription 83 | This workflow needs access to your calendars to run. 84 | NSCameraUsageDescription 85 | This workflow needs access to your camera to run. 86 | NSContactsUsageDescription 87 | This workflow needs access to your contacts to run. 88 | NSHomeKitUsageDescription 89 | This workflow needs access to your HomeKit Home to run. 90 | NSMicrophoneUsageDescription 91 | This workflow needs access to your microphone to run. 92 | NSPhotoLibraryUsageDescription 93 | This workflow needs access to your photos to run. 94 | NSPrincipalClass 95 | NSApplication 96 | NSRemindersUsageDescription 97 | This workflow needs access to your reminders to run. 98 | NSServices 99 | 100 | NSSiriUsageDescription 101 | This workflow needs access to Siri to run. 102 | NSSystemAdministrationUsageDescription 103 | This workflow needs access to administer this system in order to run. 104 | UTExportedTypeDeclarations 105 | 106 | UTImportedTypeDeclarations 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/LowPowerMode.py: -------------------------------------------------------------------------------- 1 | import math 2 | import subprocess 3 | 4 | 5 | def main(): 6 | # TO-DO: brightness(√), KB backlight(√), dnd(√), mute(√), bt(√), wifi(x), clock(x), gpu(x) 7 | 8 | # ------CONFIGURATION---------- 9 | BuiltInScreenBrightness = True 10 | DoNotDisturb = True 11 | MuteVolume = True 12 | KeyboardBacklight = True 13 | Bluetooth = True 14 | # ----------------------------- 15 | 16 | LowPowerModeState = getLowPowerModeState() 17 | btest = getBuiltInDisplayBrightness() 18 | kbbtest = getKeyboardBacklightBrightness() 19 | bttest = getBluetoothState() 20 | if LowPowerModeState: 21 | resetLowPowerModeState() 22 | if BuiltInScreenBrightness: 23 | resetBuiltInDisplayBrightness() 24 | if DoNotDisturb: 25 | resetSystemDoNotDisturbState() 26 | if MuteVolume: 27 | resetMutedVolume() 28 | if KeyboardBacklight: 29 | resetKeyboardBacklightBrightness() 30 | if Bluetooth: 31 | resetBluetoothState() 32 | 33 | else: 34 | setLowPowerModeState() 35 | if BuiltInScreenBrightness: 36 | setBuiltInDisplayBrightness() 37 | if DoNotDisturb: 38 | setSystemDoNotDisturbState() 39 | if MuteVolume: 40 | setMutedVolume() 41 | if KeyboardBacklight: 42 | setKeyboardBacklightBrightness() 43 | if Bluetooth: 44 | setBluetoothState() 45 | 46 | 47 | # ----------------------------- 48 | 49 | def getLowPowerModeState(): 50 | process = subprocess.Popen( 51 | ['osascript', '-e', 'tell application "BetterTouchTool" to get_number_variable "LowPowerMode"'], 52 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 53 | out, err = process.communicate() 54 | stri = (out.decode('utf-8').strip()) 55 | if stri == 'missing value': 56 | LowPowerModeState = False 57 | else: 58 | LowPowerModeState = bool(float(out.decode('utf-8').strip())) 59 | print("LowPowerModeState", LowPowerModeState) 60 | return LowPowerModeState 61 | 62 | 63 | def setLowPowerModeState(): 64 | subprocess.call(['open', "btt://set_number_variable/?variableName=LowPowerMode&to=1"]) 65 | print("LPM to true") 66 | 67 | 68 | def resetLowPowerModeState(): 69 | subprocess.call(['open', "btt://set_number_variable/?variableName=LowPowerMode&to=0"]) 70 | print("LPM to false") 71 | 72 | 73 | # ----------------------------- 74 | 75 | 76 | def getBuiltInDisplayBrightness(): 77 | process = subprocess.Popen( 78 | ['osascript', '-e', 'tell application "BetterTouchTool" to get_number_variable "BuiltInDisplayBrightness"'], 79 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 80 | out, err = process.communicate() 81 | BuiltInDisplayBrightness = float(out.decode('utf-8').strip()) 82 | print("BuiltInDisplayBrightness", BuiltInDisplayBrightness) 83 | return BuiltInDisplayBrightness 84 | 85 | 86 | def getOldBuiltInDisplayBrightness(): 87 | process = subprocess.Popen( 88 | ['osascript', '-e', 'tell application "BetterTouchTool" to get_string_variable "OldBuiltInDisplayBrightness"'], 89 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 90 | out, err = process.communicate() 91 | stri = out.decode('utf-8').strip() 92 | if stri == 'missing value': 93 | print("OldBrightness missing value") 94 | OldBuiltInDisplayBrightness = getBuiltInDisplayBrightness() 95 | else: 96 | OldBuiltInDisplayBrightness = float(out.decode('utf-8').strip()) 97 | print("OldBuiltInDisplayBrightness", OldBuiltInDisplayBrightness) 98 | return OldBuiltInDisplayBrightness 99 | 100 | 101 | def setBuiltInDisplayBrightness(): 102 | brightness = getBuiltInDisplayBrightness() 103 | btt = 'tell application "BetterTouchTool" to set_string_variable "OldBuiltInDisplayBrightness" to"' + str( 104 | brightness) + '"' 105 | process = subprocess.Popen( 106 | ['osascript', '-e', btt], 107 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 108 | out, err = process.communicate() 109 | steps = 0 110 | if brightness >= 0.17: 111 | steps = math.floor(brightness / 0.0595703125) - 1 112 | print(steps) 113 | for i in range(0, steps): 114 | subprocess.call(['open', 'btt://trigger_named/?trigger_name=DISPLAY_BRIGHTNESS_DOWN']) 115 | # subprocess.call(['open', "btt://set_string_variable/?variableName=BuiltInDisplayBrightness&to=0.103515625"]) 116 | 117 | print("setBuiltInDisplayBrightness") 118 | 119 | 120 | def resetBuiltInDisplayBrightness(): 121 | brightness = getBuiltInDisplayBrightness() 122 | if brightness <= 0.18: 123 | oldBrightness = getOldBuiltInDisplayBrightness() 124 | steps = math.floor((oldBrightness) / 0.0595703125) - 1 125 | for i in range(0, steps): 126 | subprocess.call(['open', 'btt://trigger_named/?trigger_name=DISPLAY_BRIGHTNESS_UP']) 127 | print("resetBuiltInDisplayBrightness") 128 | 129 | 130 | # ----------------------------- 131 | 132 | 133 | def getMutedVolume(): 134 | process = subprocess.Popen( 135 | ['osascript', '-e', 'output muted of (get volume settings)'], 136 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 137 | out, err = process.communicate() 138 | stri = str((out.decode('utf-8').strip())) 139 | MutedVolume = False 140 | if (stri == 'true'): 141 | MutedVolume = True 142 | print("MutedVolume", MutedVolume) 143 | return MutedVolume 144 | 145 | 146 | def getOldMutedVolume(): 147 | process = subprocess.Popen( 148 | ['osascript', '-e', 'tell application "BetterTouchTool" to get_string_variable "OldMutedVolume"'], 149 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 150 | out, err = process.communicate() 151 | stri = out.decode('utf-8').strip() 152 | OldMutedVolume = False 153 | if stri == 'True': 154 | OldMutedVolume = True 155 | print("OldMutedVolume", OldMutedVolume) 156 | return OldMutedVolume 157 | 158 | 159 | def setMutedVolume(): 160 | MV = getMutedVolume() 161 | btt = 'tell application "BetterTouchTool" to set_string_variable "OldMutedVolume" to"' + str( 162 | MV) + '"' 163 | process = subprocess.Popen( 164 | ['osascript', '-e', btt], 165 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 166 | out, err = process.communicate() 167 | if not MV: 168 | process = subprocess.Popen( 169 | ['osascript', '-e', "set volume with output muted"], 170 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 171 | out, err = process.communicate() 172 | print("setting MutedVolume", out) 173 | # defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturb -boolean true 174 | 175 | 176 | def resetMutedVolume(): 177 | MV = getMutedVolume() 178 | oldMV = getOldMutedVolume() 179 | if MV: 180 | if not oldMV: 181 | process = subprocess.Popen( 182 | ['osascript', '-e', "set volume without output muted"], 183 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 184 | out, err = process.communicate() 185 | print("resetMutedVolume") 186 | 187 | # --------------------------------- 188 | 189 | 190 | def getSystemDoNotDisturbState(): 191 | process = subprocess.Popen( 192 | ['osascript', '-e', 'tell application "BetterTouchTool" to get_number_variable "SystemDoNotDisturbState"'], 193 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 194 | out, err = process.communicate() 195 | stri = out.decode('utf-8').strip() 196 | SystemDoNotDisturbState = bool(int(float(stri))) 197 | print("SystemDoNotDisturbState", SystemDoNotDisturbState) 198 | return SystemDoNotDisturbState 199 | 200 | 201 | def getOldSystemDoNotDisturbState(): 202 | process = subprocess.Popen( 203 | ['osascript', '-e', 'tell application "BetterTouchTool" to get_string_variable "OldSystemDoNotDisturbState"'], 204 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 205 | out, err = process.communicate() 206 | stri = out.decode('utf-8').strip() 207 | OldSystemDoNotDisturbState = False 208 | if stri == 'True': 209 | OldSystemDoNotDisturbState = True 210 | print("OldSystemDoNotDisturbState", OldSystemDoNotDisturbState) 211 | return OldSystemDoNotDisturbState 212 | 213 | 214 | def setSystemDoNotDisturbState(): 215 | DND = getSystemDoNotDisturbState() 216 | btt = 'tell application "BetterTouchTool" to set_string_variable "OldSystemDoNotDisturbState" to "' + str( 217 | DND) + '"' 218 | process = subprocess.Popen( 219 | ['osascript', '-e', btt], 220 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 221 | out, err = process.communicate() 222 | print("DND", out) 223 | if not DND: 224 | subprocess.call(['open', "btt://trigger_named/?trigger_name=DND"]) 225 | # defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturb -boolean true 226 | 227 | 228 | def resetSystemDoNotDisturbState(): 229 | DND = getSystemDoNotDisturbState() 230 | oldDND = getOldSystemDoNotDisturbState() 231 | #print("DND: ", DND, " oldDND: ", oldDND) 232 | if DND: 233 | if not oldDND: 234 | subprocess.call(['open', 'btt://trigger_named/?trigger_name=DND']) 235 | 236 | print("resetSystemDoNotDisturbState") 237 | 238 | 239 | # ----------------------------- 240 | 241 | 242 | def getKeyboardBacklightBrightness(): 243 | proc1 = subprocess.Popen( 244 | ['ioreg', '-c', 'AppleHIDKeyboardEventDriverV2'], stdout=subprocess.PIPE) 245 | process = subprocess.Popen(['grep', 'KeyboardBacklightBrightness'], stdin=proc1.stdout, 246 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 247 | out, err = process.communicate() 248 | stri = out.decode('utf-8').strip() 249 | KeyboardBacklightBrightness = [int(s) for s in stri.split() if s.isdigit()][0] 250 | print("KeyboardBacklightBrightness", KeyboardBacklightBrightness) 251 | return KeyboardBacklightBrightness 252 | 253 | 254 | def getOldKeyboardBacklightBrightness(): 255 | process = subprocess.Popen( 256 | ['osascript', '-e', 257 | 'tell application "BetterTouchTool" to get_number_variable "OldKeyboardBacklightBrightness"'], 258 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 259 | out, err = process.communicate() 260 | stri = out.decode('utf-8').strip() 261 | if stri == 'missing value': 262 | print("OldKbBrightness missing value") 263 | OldKeyboardBacklightBrightness = getKeyboardBacklightBrightness() 264 | else: 265 | OldKeyboardBacklightBrightness = int(float(out.decode('utf-8').strip())) 266 | print("OldKeyboardBacklightBrightness", OldKeyboardBacklightBrightness) 267 | return OldKeyboardBacklightBrightness 268 | 269 | 270 | def setKeyboardBacklightBrightness(): 271 | kbbrightness = getKeyboardBacklightBrightness() 272 | btt = 'tell application "BetterTouchTool" to set_number_variable "OldKeyboardBacklightBrightness" to ' + str( 273 | kbbrightness) 274 | process = subprocess.Popen( 275 | ['osascript', '-e', btt], 276 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 277 | out, err = process.communicate() 278 | steps = 1 279 | for x in range(1, 17): 280 | y = round( 281 | 27.50962 + 4.05198 * x + 0.35654 * math.pow(x, 2) + 0.02912 * math.pow(x, 3) - 0.00101 * math.pow(x, 282 | 4) + 0.00010 * math.pow( 283 | x, 5)) 284 | print(x, y, kbbrightness) 285 | if y >= kbbrightness: 286 | steps = x 287 | break 288 | for i in range(0, steps): 289 | subprocess.call(['open', "btt://trigger_named/?trigger_name=KEYBOARD_BACKLIGHT_DOWN"]) 290 | 291 | 292 | def resetKeyboardBacklightBrightness(): 293 | kbbrightness = getKeyboardBacklightBrightness() 294 | if kbbrightness == 0: 295 | oldkbbrightness = getOldKeyboardBacklightBrightness() 296 | steps = 1 297 | for x in range(1, 17): 298 | y = round( 299 | 27.50962 + 4.05198 * x + 0.35654 * math.pow(x, 2) + 0.02912 * math.pow(x, 3) - 0.00101 * math.pow(x, 300 | 4) + 0.00010 * math.pow( 301 | x, 5)) 302 | print(x, y, oldkbbrightness) 303 | if y >= oldkbbrightness: 304 | steps = x 305 | break 306 | for i in range(0, steps): 307 | subprocess.call(['open', "btt://trigger_named/?trigger_name=KEYBOARD_BACKLIGHT_UP"]) 308 | 309 | 310 | # ----------------------------- 311 | 312 | 313 | def getBluetoothState(): 314 | proc1 = subprocess.Popen( 315 | ['ioreg', '-c', 'IOBluetoothHostControllerUARTTransport'], stdout=subprocess.PIPE) 316 | process = subprocess.Popen(['grep', 'DevicePowerState'], stdin=proc1.stdout, 317 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 318 | out, err = process.communicate() 319 | stri = out.decode('utf-8').strip().replace("=", " = ").replace(",", " , ") 320 | print("stri: ", stri) 321 | BluetoothState = bool([int(s) for s in stri.split() if s.isdigit()][0]) 322 | 323 | print("BluetoothState", BluetoothState) 324 | return BluetoothState 325 | 326 | 327 | def getOldBluetoothState(): 328 | process = subprocess.Popen( 329 | ['osascript', '-e', 'tell application "BetterTouchTool" to get_string_variable "OldBluetoothState"'], 330 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 331 | out, err = process.communicate() 332 | stri = out.decode('utf-8').strip() 333 | OldBluetoothState = False 334 | if stri == 'True': 335 | OldBluetoothState = True 336 | print("OldBluetoothState", OldBluetoothState) 337 | return OldBluetoothState 338 | 339 | 340 | def setBluetoothState(): 341 | BT = getBluetoothState() 342 | btt = 'tell application "BetterTouchTool" to set_string_variable "OldBluetoothState" to "' + str( 343 | BT) + '"' 344 | process = subprocess.Popen( 345 | ['osascript', '-e', btt], 346 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 347 | out, err = process.communicate() 348 | if BT: 349 | subprocess.call(['open', "btt://trigger_named/?trigger_name=BLUETOOTH_OFF"]) 350 | # defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturb -boolean true 351 | print("setBluetoothState") 352 | 353 | 354 | def resetBluetoothState(): 355 | BT = getBluetoothState() 356 | oldBT = getOldBluetoothState() 357 | if not BT: 358 | if oldBT: 359 | subprocess.call(['open', 'btt://trigger_named/?trigger_name=BLUETOOTH_ON']) 360 | 361 | print("resetBluetoothState") 362 | 363 | 364 | # ----------------------------- 365 | 366 | 367 | if __name__ == '__main__': 368 | main() 369 | -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/MacOS/Application Stub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/MacOS/Application Stub -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/AutomatorApplet.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/AutomatorApplet.icns -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/ar.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/ar.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/ca.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/ca.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/cs.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/cs.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/da.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/da.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/de.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/de.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/el.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/el.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/en.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/en_AU.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/en_AU.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/en_GB.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/en_GB.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/es.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/es.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/es_419.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/es_419.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/fi.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/fi.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/fr.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/fr.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/fr_CA.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/fr_CA.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/he.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/he.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/hi.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/hi.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/hr.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/hr.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/hu.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/hu.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/id.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/id.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/it.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/it.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/ja.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/ja.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/ko.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/ko.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/ms.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/ms.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/nl.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/nl.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/no.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/no.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/pl.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/pl.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/pt.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/pt.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/pt_PT.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/pt_PT.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/ro.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/ro.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/ru.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/ru.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/sk.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/sk.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/sv.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/sv.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/th.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/th.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/tr.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/tr.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/uk.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/uk.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/vi.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/vi.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/zh_CN.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/zh_CN.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/zh_HK.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/zh_HK.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/Resources/zh_TW.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Low Power Mode/Low Power Mode.app/Contents/Resources/zh_TW.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Low Power Mode/Low Power Mode.app/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 444.42 7 | AMApplicationVersion 8 | 2.9 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.cocoa.string 25 | 26 | 27 | AMActionVersion 28 | 2.0.3 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | COMMAND_STRING 36 | 37 | CheckedForUserDefaultShell 38 | 39 | inputMethod 40 | 41 | shell 42 | 43 | source 44 | 45 | 46 | AMProvides 47 | 48 | Container 49 | List 50 | Types 51 | 52 | com.apple.cocoa.string 53 | 54 | 55 | ActionBundlePath 56 | /System/Library/Automator/Run Shell Script.action 57 | ActionName 58 | Esegui script shell 59 | ActionParameters 60 | 61 | COMMAND_STRING 62 | /usr/local/bin/python3 /Applications/Low\ Power\ Mode.app/Contents/LowPowerMode.py 63 | CheckedForUserDefaultShell 64 | 65 | inputMethod 66 | 0 67 | shell 68 | /bin/bash 69 | source 70 | 71 | 72 | BundleIdentifier 73 | com.apple.RunShellScript 74 | CFBundleVersion 75 | 2.0.3 76 | CanShowSelectedItemsWhenRun 77 | 78 | CanShowWhenRun 79 | 80 | Category 81 | 82 | AMCategoryUtilities 83 | 84 | Class Name 85 | RunShellScriptAction 86 | InputUUID 87 | 2F4465F1-7084-4A51-B22B-BA20E671A2DB 88 | Keywords 89 | 90 | Shell 91 | Script 92 | Comando 93 | Esegui 94 | Unix 95 | 96 | OutputUUID 97 | 166281B3-B6D5-4296-8DBD-FE94C4FA3B5C 98 | UUID 99 | 1222E453-7E4A-47D1-8800-D6DE9FA59E57 100 | UnlocalizedApplications 101 | 102 | Automator 103 | 104 | arguments 105 | 106 | 0 107 | 108 | default value 109 | 0 110 | name 111 | inputMethod 112 | required 113 | 0 114 | type 115 | 0 116 | uuid 117 | 0 118 | 119 | 1 120 | 121 | default value 122 | 123 | name 124 | source 125 | required 126 | 0 127 | type 128 | 0 129 | uuid 130 | 1 131 | 132 | 2 133 | 134 | default value 135 | 136 | name 137 | CheckedForUserDefaultShell 138 | required 139 | 0 140 | type 141 | 0 142 | uuid 143 | 2 144 | 145 | 3 146 | 147 | default value 148 | 149 | name 150 | COMMAND_STRING 151 | required 152 | 0 153 | type 154 | 0 155 | uuid 156 | 3 157 | 158 | 4 159 | 160 | default value 161 | /bin/sh 162 | name 163 | shell 164 | required 165 | 0 166 | type 167 | 0 168 | uuid 169 | 4 170 | 171 | 172 | isViewVisible 173 | 174 | location 175 | 392.250000:252.000000 176 | nibPath 177 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib 178 | 179 | isViewVisible 180 | 181 | 182 | 183 | connectors 184 | 185 | workflowMetaData 186 | 187 | workflowTypeIdentifier 188 | com.apple.Automator.application 189 | 190 | 191 | 192 | -------------------------------------------------------------------------------- /Low Power Mode/LowPowerMode.bttpreset: -------------------------------------------------------------------------------- 1 | { 2 | "BTTPresetName" : "LowPowerMode", 3 | "BTTPresetColor" : "255.000000, 125.784331, 120.869599, 255.000000", 4 | "BTTPresetUUID" : "95776398-C53F-4A62-A5BB-1295DE760170", 5 | "BTTPresetContent" : [ 6 | { 7 | "BTTAppBundleIdentifier" : "BT.G", 8 | "BTTAppName" : "Global", 9 | "BTTAppAutoInvertIcon" : 1, 10 | "BTTAppSpecificSettings" : { 11 | 12 | }, 13 | "BTTTriggers" : [ 14 | { 15 | "BTTTriggerType" : 643, 16 | "BTTTriggerTypeDescription" : "Named Trigger: KEYBOARD_BACKLIGHT_DOWN", 17 | "BTTTriggerClass" : "BTTTriggerTypeOtherTriggers", 18 | "BTTPredefinedActionType" : 32, 19 | "BTTPredefinedActionName" : "Keyboard Illumination Down", 20 | "BTTTriggerName" : "KEYBOARD_BACKLIGHT_DOWN", 21 | "BTTEnabled2" : 1, 22 | "BTTAlternateModifierKeys" : 0, 23 | "BTTRepeatDelay" : 0, 24 | "BTTUUID" : "DE503F22-E7ED-4071-A862-7DE7739D8515", 25 | "BTTNotesInsteadOfDescription" : 0, 26 | "BTTEnabled" : 1, 27 | "BTTModifierMode" : 0, 28 | "BTTOrder" : 3, 29 | "BTTDisplayOrder" : 0 30 | }, 31 | { 32 | "BTTTriggerType" : 643, 33 | "BTTTriggerTypeDescription" : "Named Trigger: KEYBOARD_BACKLIGHT_UP", 34 | "BTTTriggerClass" : "BTTTriggerTypeOtherTriggers", 35 | "BTTPredefinedActionType" : 31, 36 | "BTTPredefinedActionName" : "Keyboard Illumination Up", 37 | "BTTTriggerName" : "KEYBOARD_BACKLIGHT_UP", 38 | "BTTEnabled2" : 1, 39 | "BTTAlternateModifierKeys" : 0, 40 | "BTTRepeatDelay" : 0, 41 | "BTTUUID" : "F21BFB05-07F6-4439-BBE8-64A9905DC76A", 42 | "BTTNotesInsteadOfDescription" : 0, 43 | "BTTEnabled" : 1, 44 | "BTTModifierMode" : 0, 45 | "BTTOrder" : 4, 46 | "BTTDisplayOrder" : 0 47 | }, 48 | { 49 | "BTTTriggerType" : 643, 50 | "BTTTriggerTypeDescription" : "Named Trigger: DISPLAY_BRIGHTNESS_DOWN", 51 | "BTTTriggerClass" : "BTTTriggerTypeOtherTriggers", 52 | "BTTPredefinedActionType" : 29, 53 | "BTTPredefinedActionName" : "Brightness Down", 54 | "BTTTriggerName" : "DISPLAY_BRIGHTNESS_DOWN", 55 | "BTTEnabled2" : 1, 56 | "BTTAlternateModifierKeys" : 0, 57 | "BTTRepeatDelay" : 0, 58 | "BTTUUID" : "DCAC375F-2030-4D12-A72F-48E9329989A3", 59 | "BTTNotesInsteadOfDescription" : 0, 60 | "BTTEnabled" : 1, 61 | "BTTModifierMode" : 0, 62 | "BTTOrder" : 5, 63 | "BTTDisplayOrder" : 0 64 | }, 65 | { 66 | "BTTTriggerType" : 643, 67 | "BTTTriggerTypeDescription" : "Named Trigger: DISPLAY_BRIGHTNESS_UP", 68 | "BTTTriggerClass" : "BTTTriggerTypeOtherTriggers", 69 | "BTTPredefinedActionType" : 28, 70 | "BTTPredefinedActionName" : "Brightness Up", 71 | "BTTTriggerName" : "DISPLAY_BRIGHTNESS_UP", 72 | "BTTEnabled2" : 1, 73 | "BTTAlternateModifierKeys" : 0, 74 | "BTTRepeatDelay" : 0, 75 | "BTTUUID" : "A46078EB-C526-43A2-9701-802339CF5FD9", 76 | "BTTNotesInsteadOfDescription" : 0, 77 | "BTTEnabled" : 1, 78 | "BTTModifierMode" : 0, 79 | "BTTOrder" : 6, 80 | "BTTDisplayOrder" : 0 81 | }, 82 | { 83 | "BTTTriggerType" : 643, 84 | "BTTTriggerTypeDescription" : "Named Trigger: DND", 85 | "BTTTriggerClass" : "BTTTriggerTypeOtherTriggers", 86 | "BTTPredefinedActionType" : 200, 87 | "BTTPredefinedActionName" : "Toggle Do Not Disturb On\/Off", 88 | "BTTTriggerName" : "DND", 89 | "BTTEnabled2" : 1, 90 | "BTTAlternateModifierKeys" : 0, 91 | "BTTRepeatDelay" : 0, 92 | "BTTUUID" : "88BF900E-F20B-4357-8DFB-CC3B5EB4C665", 93 | "BTTNotesInsteadOfDescription" : 0, 94 | "BTTEnabled" : 1, 95 | "BTTModifierMode" : 0, 96 | "BTTOrder" : 7, 97 | "BTTDisplayOrder" : 0 98 | }, 99 | { 100 | "BTTTriggerType" : 643, 101 | "BTTTriggerTypeDescription" : "Named Trigger: BLUETOOTH_ON", 102 | "BTTTriggerClass" : "BTTTriggerTypeOtherTriggers", 103 | "BTTPredefinedActionType" : 277, 104 | "BTTPredefinedActionName" : "Enable Bluetooth", 105 | "BTTTriggerName" : "BLUETOOTH_ON", 106 | "BTTEnabled2" : 1, 107 | "BTTAlternateModifierKeys" : 0, 108 | "BTTRepeatDelay" : 0, 109 | "BTTUUID" : "354D4AFD-28FD-4589-8683-C126FB28F6E7", 110 | "BTTNotesInsteadOfDescription" : 0, 111 | "BTTEnabled" : 1, 112 | "BTTModifierMode" : 0, 113 | "BTTOrder" : 8, 114 | "BTTDisplayOrder" : 0 115 | }, 116 | { 117 | "BTTTriggerType" : 643, 118 | "BTTTriggerTypeDescription" : "Named Trigger: LOW_POWER_MODE", 119 | "BTTTriggerClass" : "BTTTriggerTypeOtherTriggers", 120 | "BTTPredefinedActionType" : -1, 121 | "BTTPredefinedActionName" : "No Action", 122 | "BTTTriggerName" : "LOW_POWER_MODE", 123 | "BTTEnabled2" : 1, 124 | "BTTAlternateModifierKeys" : 0, 125 | "BTTRepeatDelay" : 0, 126 | "BTTUUID" : "764D649C-D170-4381-A6F2-59A0576AF8EF", 127 | "BTTNotesInsteadOfDescription" : 0, 128 | "BTTEnabled" : 1, 129 | "BTTModifierMode" : 0, 130 | "BTTOrder" : 2, 131 | "BTTDisplayOrder" : 0 132 | }, 133 | { 134 | "BTTTriggerType" : 643, 135 | "BTTTriggerTypeDescription" : "Named Trigger: BLUETOOTH_OFF", 136 | "BTTTriggerClass" : "BTTTriggerTypeOtherTriggers", 137 | "BTTPredefinedActionType" : 278, 138 | "BTTPredefinedActionName" : "Disable Bluetooth", 139 | "BTTTriggerName" : "BLUETOOTH_OFF", 140 | "BTTEnabled2" : 1, 141 | "BTTAlternateModifierKeys" : 0, 142 | "BTTRepeatDelay" : 0, 143 | "BTTUUID" : "59C79D11-F27F-475B-981F-A2FA8159AE94", 144 | "BTTNotesInsteadOfDescription" : 0, 145 | "BTTEnabled" : 1, 146 | "BTTModifierMode" : 0, 147 | "BTTOrder" : 9, 148 | "BTTDisplayOrder" : 0 149 | } 150 | ] 151 | }, 152 | { 153 | "BTTAppBundleIdentifier" : "com.apple.finder", 154 | "BTTAppName" : "Finder", 155 | "BTTAppAutoInvertIcon" : 1, 156 | "BTTTriggers" : [ 157 | 158 | ] 159 | } 160 | ], 161 | "BTTPresetSnapAreas" : [ 162 | 163 | ] 164 | } -------------------------------------------------------------------------------- /Low Power Mode/README.md: -------------------------------------------------------------------------------- 1 | ## Low Power Mode for MacOS 2 | ### What does it do 3 | When launched: 4 | * Activate a macro that turns off all power consuming settings of your macbook 5 | 1. Set Integrated Display Brightness to 1 6 | 2. Turn Do Not Disturb On 7 | 3. Mute Volume 8 | 4. Set Integrated Keyboard Backlight Brightness to 0 9 | 5. Turn Bluetooth Off 10 | * If already in Low Power Mode revert back all the settings to the previous state 11 | 12 | ### Requirements 13 | * [BetterTouchTool](https://a.paddle.com/v2/click/30842/40874?link=1061) 14 | * [Python 3](https://www.python.org/downloads/) 15 | 16 | ### Installation 17 | * Move `Low Power Mode.app` into the Application folder. You can edit this app using Automator 18 | * Open BetterTouchTool 19 | * Import the `LowPowerMode.bttpreset` file into BTT 20 | 21 | You can modify the macro file located at `Low Power Mode.app/Contents/LowPowerMode.py` to change which setting it will toggle 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # mac-automation-scripts 🤖 2 | *THIS REPO IS A WIP, THE FILES IN IT WILL FREQUENTLY BE UPDATED AND/OR CHANGED* 3 | 4 | 5 | ## Video Editing 🎬 6 | [This folder](https://github.com/JFtechOfficial/mac-automation-scripts/tree/master/Video%20Editing) contains ALL the smart automation I use to streamline my work and improve my workflow when editing videos 7 | 8 | --- 9 | 10 | ## Low Power Mode 🔋 11 | [This folder](https://github.com/JFtechOfficial/mac-automation-scripts/tree/master/Low%20Power%20Mode) contains the resouces to add a new app that toggles a macro in order to save battery life on your MacBook 12 | 13 | --- 14 | 15 | ## External Display Utilities 🖥 16 | [This folder](https://github.com/JFtechOfficial/mac-automation-scripts/tree/master/External%20Display) contains ALL the smart automation I use when connecting my MacBook to the [external display of my WFH setup](https://amzn.to/3rIp5AC) 17 | 18 | --- 19 | ## Yeelight 💡 20 | [This folder](https://github.com/JFtechOfficial/mac-automation-scripts/tree/master/Yeelight) contains the scripts to add a new slider to your TouchBar to control the brightness of your Yeelight smart bulb 21 | 22 | --- 23 | 24 | ## System-wide Capitalize/lowercase/UPPERCASE Macro for MacOS 🔠 25 | ### What does it do 26 | * trigger with Shift + double tap on CAPS-LOCK (similar to Google Android keyboard and iOS keyboard) 27 | * When triggered on selected text, cycles between Capitalized/lowercase/UPPERCASE 28 | * Can be triggered everywhere! 29 | 30 | 31 | ### Requirements 32 | * [Python 3](https://www.python.org/downloads/) 33 | * [Keyboard Maestro](https://www.keyboardmaestro.com/main/) 34 | 35 | ### Installation 36 | * Import the `To Capitalized.kmmacros` file into Keyboard Maestro 37 | 38 | --- 39 | 40 | ## Other stuff 🌀 41 | * TipTap trackpad gestures added. Switch between tabs in any app 42 | * App switcher widget added to the TouchBar 43 | 44 | ### Requirements 45 | * [BetterTouchTool](https://a.paddle.com/v2/click/30842/40874?link=1061) 46 | 47 | ### Installation 48 | * Open BetterTouchTool 49 | * Import the `Default.bttpreset` file into BTT 50 | -------------------------------------------------------------------------------- /To Capitalized.kmmacros: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Activate 7 | Normal 8 | CreationDate 9 | 597401350.00403798 10 | Macros 11 | 12 | 13 | Actions 14 | 15 | 16 | MacroActionType 17 | CopyClipboard 18 | TargetNamedClipboardRedundantDisplayName 19 | Unnamed Named Clipboard 20 | TargetNamedClipboardUID 21 | 75822CAE-1E0E-4321-A3F9-6256294386E6 22 | TargetUseNamedClipboard 23 | 24 | 25 | 26 | Action 27 | Copy 28 | MacroActionType 29 | ClipboardSwitcherMacroAction 30 | Name 31 | 39B0A3A1-BB05-48D7-B8A8-A949F0C07A5A 32 | RedundandDisplayName 33 | Clipboard #2 34 | TimeOutAbortsMacro 35 | 36 | 37 | 38 | MacroActionType 39 | SetVariableToText 40 | Text 41 | %NamedClipboard%Clipboard #2% 42 | Variable 43 | Cap 44 | 45 | 46 | DisplayKind 47 | Window 48 | HonourFailureSettings 49 | 50 | IncludeStdErr 51 | 52 | MacroActionType 53 | ExecuteShellScript 54 | Path 55 | 56 | Source 57 | Variable 58 | SourceVariable 59 | Cap 60 | Text 61 | #!/usr/local/bin/python3 62 | import string 63 | import sys 64 | import os 65 | 66 | # setKMVar :: String -> String -> KM IO () 67 | 68 | def setKMVar(k, v): 69 | p1 = """osascript -e 'tell application "Keyboard Maestro Engine" """ 70 | p2 = 'to setvariable "' 71 | p3 = ' "to "' 72 | p4 = '"' 73 | p5 = "'" 74 | command = p1 + p2 + k + p3 + v + p4 + p5 75 | #print(command) 76 | os.system(command) 77 | #os.system("""osascript -e 'tell application "Keyboard Maestro Engine" to setvariable "Cap" to " """v""" "'""") 78 | 79 | def main(): 80 | inputString = os.environ['KMVAR_Cap'] 81 | if (inputString.islower()): 82 | #print(inputString.upper()) 83 | setKMVar('Cap', inputString.upper()) 84 | 85 | elif (inputString.isupper()): 86 | #print(string.capwords(inputString)) 87 | setKMVar('Cap', string.capwords(inputString)) 88 | 89 | else: 90 | #print(inputString.lower()) 91 | setKMVar('Cap', inputString.lower()) 92 | 93 | main() 94 | TimeOutAbortsMacro 95 | 96 | TrimResults 97 | 98 | TrimResultsNew 99 | 100 | UseText 101 | 102 | 103 | 104 | JustDisplay 105 | 106 | MacroActionType 107 | SetClipboardToText 108 | TargetNamedClipboardRedundantDisplayName 109 | Clipboard #2 110 | TargetNamedClipboardUID 111 | 39B0A3A1-BB05-48D7-B8A8-A949F0C07A5A 112 | TargetUseNamedClipboard 113 | 114 | Text 115 | %Variable%Cap% 116 | 117 | 118 | Action 119 | Paste 120 | MacroActionType 121 | ClipboardSwitcherMacroAction 122 | Name 123 | 39B0A3A1-BB05-48D7-B8A8-A949F0C07A5A 124 | RedundandDisplayName 125 | Clipboard #2 126 | TimeOutAbortsMacro 127 | 128 | 129 | 130 | MacroActionType 131 | CopyClipboard 132 | SourceNamedClipboardRedundantDisplayName 133 | Unnamed Named Clipboard 134 | SourceNamedClipboardUID 135 | 75822CAE-1E0E-4321-A3F9-6256294386E6 136 | SourceUseNamedClipboard 137 | 138 | 139 | 140 | CreationDate 141 | 597414831.312235 142 | ModificationDate 143 | 597432292.04107201 144 | Name 145 | To Capitalized 146 | Triggers 147 | 148 | 149 | ElementCookie 150 | 77 151 | ElementDeviceUsage 152 | 6 153 | ElementDeviceUsagePage 154 | 1 155 | ElementName 156 | Apple Internal Keyboard / Trackpad #57 157 | ElementProductID 158 | 636 159 | ElementShortName 160 | #57 161 | ElementUsage 162 | 57 163 | ElementUsagePage 164 | 7 165 | ElementValue 166 | 1 167 | ElementVendorID 168 | 1452 169 | FireType 170 | Tapped 171 | MacroTriggerType 172 | HID 173 | Modifiers 174 | 512 175 | TapCount 176 | 2 177 | UseModifiers 178 | 179 | 180 | 181 | UID 182 | 1428E313-4D71-4C5F-802D-2BDE868E160E 183 | 184 | 185 | Name 186 | Global Macro Group 187 | ToggleMacroUID 188 | 68968D2A-94B0-41A7-8F5A-7207B833E2C0 189 | UID 190 | EA81928B-1466-4727-82D2-6AFEDC66444B 191 | 192 | 193 | 194 | -------------------------------------------------------------------------------- /Video Editing/10gbps-External-Drive-Icons/icns/USB10gbpsIcon-v1.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/10gbps-External-Drive-Icons/icns/USB10gbpsIcon-v1.icns -------------------------------------------------------------------------------- /Video Editing/10gbps-External-Drive-Icons/icns/USB10gbpsIcon-v2.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/10gbps-External-Drive-Icons/icns/USB10gbpsIcon-v2.icns -------------------------------------------------------------------------------- /Video Editing/10gbps-External-Drive-Icons/png/USB10gbpsIcon-v1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/10gbps-External-Drive-Icons/png/USB10gbpsIcon-v1.png -------------------------------------------------------------------------------- /Video Editing/10gbps-External-Drive-Icons/png/USB10gbpsIcon-v2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/10gbps-External-Drive-Icons/png/USB10gbpsIcon-v2.png -------------------------------------------------------------------------------- /Video Editing/Editing Drive Alert.kmmacros: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Activate 7 | Normal 8 | CreationDate 9 | 597401350.00403798 10 | Macros 11 | 12 | 13 | Actions 14 | 15 | 16 | MacroActionType 17 | Alert 18 | SoundPath 19 | 20 | Text 21 | Would you like to start Video Editing now? 22 | TimeOutAbortsMacro 23 | 24 | Title 25 | Video Editing Drive detected 26 | 27 | 28 | AllWindows 29 | 30 | AlreadyActivatedActionType 31 | Normal 32 | Application 33 | 34 | BundleIdentifier 35 | com.apple.automator.Video Editing 36 | Name 37 | Video Editing 38 | NewFile 39 | /Applications/Video Editing.app 40 | 41 | MacroActionType 42 | ActivateApplication 43 | ReopenWindows 44 | 45 | TimeOutAbortsMacro 46 | 47 | 48 | 49 | CreationDate 50 | 597438076.782287 51 | CustomIconData 52 | KMEP-GenericApplication-/Applications/Final Cut Pro.app 53 | ModificationDate 54 | 604065676.76972401 55 | Name 56 | Editing Drive Alert 57 | Triggers 58 | 59 | 60 | Attach 61 | 62 | MacroTriggerType 63 | USBDevice 64 | Name 65 | USB to PCIE Bridge 66 | TargetType 67 | Named 68 | 69 | 70 | UID 71 | 71527DAB-2183-4576-83FD-A60E2C9F6357 72 | 73 | 74 | Name 75 | Global Macro Group 76 | ToggleMacroUID 77 | 68968D2A-94B0-41A7-8F5A-7207B833E2C0 78 | UID 79 | EA81928B-1466-4727-82D2-6AFEDC66444B 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /Video Editing/FCPX.bttpreset: -------------------------------------------------------------------------------- 1 | { 2 | "BTTPresetName" : "FCPX", 3 | "BTTPresetUUID" : "695D8E8E-6782-4F1E-AC63-36348D78B31D", 4 | "BTTPresetContent" : [ 5 | { 6 | "BTTAppBundleIdentifier" : "com.apple.FinalCut", 7 | "BTTAppName" : "Final Cut Pro", 8 | "BTTAppProcessMatchMode" : 2, 9 | "BTTAppProcessName" : "Final Cut Pro", 10 | "BTTTriggers" : [ 11 | { 12 | "BTTTouchBarButtonName" : "Quit Video Editing", 13 | "BTTTriggerType" : 629, 14 | "BTTTriggerTypeDescription" : "Touch Bar button", 15 | "BTTTriggerClass" : "BTTTriggerTypeTouchBar", 16 | "BTTPredefinedActionType" : 138, 17 | "BTTPredefinedActionName" : "Start Automator Workflow", 18 | "BTTLaunchPath" : "file:\/\/\/YOUR_PATH\/Quit%20Video%20Editing.workflow", 19 | "BTTEnabled2" : 1, 20 | "BTTUUID" : "18381E5E-040C-4568-A669-A3338B5EF89D", 21 | "BTTEnabled" : 1, 22 | "BTTModifierMode" : 0, 23 | "BTTAlternateModifierKeys" : 0, 24 | "BTTOrder" : 0, 25 | "BTTDisplayOrder" : 0, 26 | "BTTMergeIntoTouchBarGroups" : 0, 27 | "BTTIconData" : "TU0AKgAAGQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFAAAACAAAAAgAAAAIAAAACAAAAAUAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAGAAAACvAAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAL8AAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAnwAAAO8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAACfAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAA7wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAO8AAAC_AAAAvwAAAL8AAAC_AAAA3wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAO8AAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAC_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAACvAAAAYAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAYAAAAK8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAM8AAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAADvAAAA_wAAAP8AAAD_AAAA_wAAAJ8AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJ8AAAD_AAAA_wAAAP8AAAD_AAAA7wAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAADvAAAA_wAAAP8AAAD_AAAAzwAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAM8AAAD_AAAA_wAAAP8AAADvAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAADfAAAA_wAAAP8AAAD_AAAAnwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnwAAAP8AAAD_AAAA_wAAAO8AAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC_AAAA_wAAAP8AAAD_AAAAnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACfAAAA_wAAAP8AAAD_AAAAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAA_wAAAP8AAAD_AAAAnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ8AAAD_AAAA_wAAAP8AAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA7wAAAP8AAAD_AAAAzwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzwAAAP8AAAD_AAAA7wAAABAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAP8AAAD_AAAA_wAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACfAAAA_wAAAO8AAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAM8AAAD_AAAAnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAD_AAAA_wAAAP8AAACPAAAAAAAAAAAAAAAAAAAAAAAAAO8AAAD_AAAA_wAAAJ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACfAAAA_wAAAP8AAAD_AAAA7wAAADAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAM8AAAD_AAAA_wAAAP8AAACfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnwAAAP8AAAD_AAAA7wAAABAAAAAAAAAAAAAAAGAAAAD_AAAA_wAAAP8AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACfAAAA_wAAAP8AAAD_AAAA_wAAAP8AAADvAAAAMAAAAAAAAAAAAAAAEAAAAM8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAJ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAD_AAAA_wAAAP8AAABgAAAAAAAAAAAAAACfAAAA_wAAAP8AAADPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAO8AAAAwAAAAEAAAAM8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArwAAAP8AAAD_AAAArwAAAAAAAAAAAAAA7wAAAP8AAAD_AAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAM8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA7wAAAM8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAAzwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAD_AAAA_wAAAO8AAAAAAAAAIAAAAP8AAAD_AAAA_wAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAzwAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAAzwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAA_wAAAP8AAAD_AAAAIAAAAEAAAAD_AAAA_wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAADPAAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAAzwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD_AAAA_wAAAEAAAABAAAAA_wAAAP8AAADfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAM8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAAzwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC_AAAA_wAAAP8AAABgAAAAcAAAAP8AAAD_AAAAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAzwAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAAzwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvwAAAP8AAAD_AAAAgAAAAGAAAAD_AAAA_wAAAL8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAM8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAO8AAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8AAAD_AAAA_wAAAIAAAABAAAAA_wAAAP8AAADvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAM8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA7wAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPAAAA_wAAAP8AAABgAAAAQAAAAP8AAAD_AAAA_wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAM8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAADvAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA_wAAAP8AAAD_AAAAQAAAABAAAAD_AAAA_wAAAP8AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAM8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAO8AAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAP8AAAD_AAAA_wAAACAAAAAAAAAA3wAAAP8AAAD_AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAM8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAAzwAAAM8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA7wAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAD_AAAA_wAAAN8AAAAAAAAAAAAAAJ8AAAD_AAAA_wAAAN8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAAzwAAABAAAAAQAAAAzwAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPAAAA_wAAAP8AAACfAAAAAAAAAAAAAABQAAAA_wAAAP8AAAD_AAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAP8AAAD_AAAA_wAAAP8AAAD_AAAAzwAAABAAAAAAAAAAAAAAABAAAADPAAAA_wAAAP8AAAD_AAAA_wAAAP8AAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAA_wAAAP8AAAD_AAAAUAAAAAAAAAAAAAAAAAAAAN8AAAD_AAAA_wAAAL8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAA_wAAAP8AAAD_AAAAzwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAM8AAAD_AAAA_wAAAP8AAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvwAAAP8AAAD_AAAA3wAAAAAAAAAAAAAAAAAAAAAAAABgAAAA_wAAAP8AAAD_AAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAD_AAAAzwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAzwAAAP8AAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAP8AAAD_AAAA_wAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD_AAAA_wAAAO8AAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAO8AAAD_AAAA_wAAAN8AAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAA_wAAAP8AAAD_AAAAzwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM8AAAD_AAAA_wAAAP8AAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI8AAAD_AAAA_wAAAP8AAADPAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAJ8AAAD_AAAA_wAAAP8AAACfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzwAAAP8AAAD_AAAA_wAAAM8AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAM8AAAD_AAAA_wAAAP8AAADPAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAADPAAAA_wAAAP8AAAD_AAAA7wAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAO8AAAD_AAAA_wAAAP8AAADPAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAM8AAAD_AAAA_wAAAP8AAAD_AAAAvwAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAvwAAAP8AAAD_AAAA_wAAAP8AAADPAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjwAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA3wAAAI8AAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAI8AAADfAAAA_wAAAP8AAAD_AAAA_wAAAP8AAACPAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAA3wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAN8AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAA3wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA3wAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAjwAAAM8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAP8AAAD_AAAA_wAAAM8AAACPAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABAAAAAQAAAAEAAAABAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABAAADAAAAAQAoAAABAQADAAAAAQAoAAABAgADAAAABAAAGc4BAwADAAAAAQABAAABBgADAAAAAQACAAABCgADAAAAAQABAAABEQAEAAAAAQAAAAgBEgADAAAAAQABAAABFQADAAAAAQAEAAABFgADAAAAAQAoAAABFwAEAAAAAQAAGQABHAADAAAAAQABAAABKAADAAAAAQACAAABUgADAAAAAQACAAABUwADAAAABAAAGdaHcwAHAAAMSAAAGd4AAAAAAAgACAAIAAgAAQABAAEAAQAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rlc2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoAAAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA_kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE_gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvhC_kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw_sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx_qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy_+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl_Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA_IT9hP6I_4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v_bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ_I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL_IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE_kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+_er_1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7_IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j_SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO_M8Fjw5fFy8f_yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65_t3_Af8mP0p_br+S_7c_23__w==", 28 | "BTTTriggerConfig" : { 29 | "BTTTouchBarFreeSpaceAfterButton" : 5, 30 | "BTTTouchBarItemPadding" : 0, 31 | "BTTTouchBarButtonCornerRadius" : 6, 32 | "BTTTouchBarItemPlacement" : 2, 33 | "BTTTouchBarButtonColor" : "75.323769, 75.323769, 75.323769, 255.000000", 34 | "BTTTouchBarItemIconWidth" : 22, 35 | "BTTTouchBarAlternateBackgroundColor" : "0.000000, 0.000000, 0.000000, 0.000000", 36 | "BTTTouchBarItemIconHeight" : 22 37 | } 38 | } 39 | ] 40 | }, 41 | { 42 | "BTTAppBundleIdentifier" : "BT.G", 43 | "BTTAppName" : "Global", 44 | "BTTTriggers" : [ 45 | { 46 | "BTTTriggerType" : 643, 47 | "BTTTriggerTypeDescription" : "Named Trigger: VIDEO_EDITING", 48 | "BTTTriggerClass" : "BTTTriggerTypeOtherTriggers", 49 | "BTTPredefinedActionType" : 128, 50 | "BTTPredefinedActionName" : "Send Shortcut to Specific App", 51 | "BTTShortcutApp" : "\/Applications\/Final Cut Pro.app", 52 | "BTTShortcutSwitchToAppFirst" : "1", 53 | "BTTShortcutAppUnderCursor" : "com.apple.FinalCut", 54 | "BTTShortcutToSend" : "59,55,3", 55 | "BTTTriggerName" : "VIDEO_EDITING", 56 | "BTTEnabled2" : 1, 57 | "BTTUUID" : "34633E5E-D0F1-45C9-AE82-439935856AA4", 58 | "BTTEnabled" : 1, 59 | "BTTModifierMode" : 0, 60 | "BTTAlternateModifierKeys" : 0, 61 | "BTTOrder" : 0, 62 | "BTTDisplayOrder" : 0, 63 | "BTTMergeIntoTouchBarGroups" : 0 64 | } 65 | ] 66 | } 67 | ], 68 | "BTTPresetSnapAreas" : [ 69 | 70 | ] 71 | } -------------------------------------------------------------------------------- /Video Editing/New-Project-Folder-FiScript.sh: -------------------------------------------------------------------------------- 1 | 2 | set -euf -o pipefail 3 | #----- INSERT YOUR PATHS HERE ----- 4 | LOCAL_MOUNT_POINT="/Volumes/SSD nvme USB-C" 5 | TEMPLATE_PATH="/Users/JFtech/Desktop/YouTube/Template" 6 | #---------------------------------- 7 | PROJECT_PATH=$PATH 8 | name="$(basename -- "$PROJECT_PATH")" 9 | if [ -e "$PROJECT_PATH"/"$name".fcpbundle ]; then 10 | echo "exist" 11 | else 12 | echo "NOT exist" 13 | TEMPLATEPATH="$(printf '%q\n' "$TEMPLATE_PATH")" 14 | LOCALMOUNTPOINT="$(printf '%q\n' "$LOCAL_MOUNT_POINT")" 15 | #FOLDERPATH="$(printf '%q\n' "$PROJECT_PATH")" 16 | cp -a "$TEMPLATEPATH"/. "$PROJECT_PATH" 17 | mv "$PROJECT_PATH"/Template.fcpbundle "$PROJECT_PATH"/"$name".fcpbundle 18 | mv "$PROJECT_PATH"/Template.pages "$PROJECT_PATH"/"$name".pages 19 | if mount | grep "on $LOCALMOUNTPOINT" > /dev/null; then 20 | mv "$PROJECT_PATH" "$LOCAL_MOUNT_POINT" 21 | open "$LOCAL_MOUNT_POINT" 22 | fi 23 | fi 24 | -------------------------------------------------------------------------------- /Video Editing/Quit Video Editing.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/Quit Video Editing.zip -------------------------------------------------------------------------------- /Video Editing/README.md: -------------------------------------------------------------------------------- 1 | ## 'Set as Project Folder' in contextual menu 2 | ### What does it do 3 | When launched: 4 | * Copy the content of a template folder into a selected folder 5 | * Rename some of the content to the name of the selected folder 6 | * Move the folder to external volume if mounted 7 | 8 | ### Requirements 9 | * [FiScript](https://github.com/Mortennn/FiScript) 10 | 11 | ### Installation 12 | * Unzip the `Template.zip` file 13 | * Move the `Template` folder somewhere "safe" 14 | * You may need to substitute the `Template` Final Cut Pro X library file with one generated from your copy of FCPX to match the version (if this is the case, rename it to `Template`) 15 | * Create a new Action in FiScript 16 | * Open the `New-Project-Folder-FiScript.sh` file with TextEdit 17 | * Insert the template folder path and your external storage path 18 | * Select all, copy, & paste into the `Script` textbox 19 | * Enable only the `Use on directories` and `Get notification when execution has finished` toggle 20 | * Add icon, name and description if you want 21 | 22 | You can modify the script to do whatever you want pretty much. Do NOT modify the script using FiScript, please use any other text editor and then copy/paste ([here is why](https://github.com/Mortennn/FiScript/issues/15)). The script was tested in **bash**. Note that it would not run outside FiScirpt, since it uses the `$PATH` variable provided by FiScript (change that to allow terminal execution). If you modify the template, you may also need to modify the script. 23 | 24 | 25 | If you want, you can customise the default icons of the folders found in the `Resources` directory of the `Template` with the [Folder Icons](https://github.com/JFtechOfficial/mac-automation-scripts/tree/master/Video%20Editing/folder-icons) provided (*at a glance recognition*) 26 | 27 | --- 28 | 29 | ## FCPX Video Editing mode 30 | ### What does it do 31 | When launched: 32 | * Activate [Final Cut Pro macro support for external keyboard](https://github.com/JFtechOfficial/FCPX-macro-keyboard) 33 | * Launch Final Cut Pro and set it to fullscreen 34 | 35 | When FCPX is in use: 36 | * ~~Disable TrueTone and Night Shift~~ now using [Shifty](https://shifty.natethompson.io/en/) 37 | * Adds a button to the TouchBar. If pressed it quits Final Cut Pro and the macro support 38 | 39 | ### Requirements 40 | * [BetterTouchTool](https://a.paddle.com/v2/click/30842/40874?link=1061) 41 | * [USB Overdrive](http://www.usboverdrive.com/USBOverdrive/News.html) 42 | * [CommandPost](http://commandpost.io) 43 | 44 | ### Installation 45 | * Remove USB Overdrive and CommandPost from login items 46 | * Unzip the `Video Editing.zip` file and move its content to the Application folder. You can edit this app using Automator 47 | * Unzip the `Quit Video Editing.zip` file and move its content to any folder of your choice. You can edit this workflow using Automator 48 | * Open BetterTouchTool 49 | * Import the `FCPX.bttpreset` file into BTT 50 | * Select Final Cut Pro in the Select Application sidebar 51 | * Select Quit Video Editing in the Touchbar section 52 | * Open its Predefined Action 53 | * Select the `Quit Video Editing` file 54 | 55 | --- 56 | 57 | ## Launch FCPX Video Editing mode when drive is connected 58 | 59 | ### What does it do 60 | * Open a dialog box when your editing drive is connected. Clicking on `Continue` will launch FCPX Video Editing mode 61 | 62 | ### Requirements 63 | * [FCPX Video Editing mode](#FCPX-Video-Editing-mode) 64 | * [Keyboard Maestro](https://www.keyboardmaestro.com/main/) 65 | 66 | ### Installation 67 | * Import the `Editing Drive Alert.kmmacros` file into Keyboard Maestro 68 | * Modify the macro to match your external dirve exact name 69 | 70 | --- 71 | 72 | ## 'Start FCPX Video Editing mode' in contextual menu 73 | 74 | ### What does it do 75 | * launch FCPX Video Editing mode from any Final Cut Pro X library file 76 | 77 | ### Requirements 78 | * [FCPX Video Editing mode](#FCPX-Video-Editing-mode) 79 | * [FiScript](https://github.com/Mortennn/FiScript) 80 | 81 | ### Installation 82 | * Create a new Action in FiScript 83 | * Open the `Start-Video-Editing-FiScript.sh` file with TextEdit 84 | * Copy/Paste its content into the `Script` textbox 85 | * Set `Accepted file types` to `.fcpbundle` 86 | * Enable only the `Use on files` and `Use on directories` toggle 87 | * Add icon, name and description if you want 88 | 89 | You can modify the script to do whatever you want pretty much. Do NOT modify the script using FiScript, please use any other text editor and then copy/paste ([here is why](https://github.com/Mortennn/FiScript/issues/15)). The script was tested in **bash**. Note that [FiScript doesn't work in external drives](https://github.com/Mortennn/FiScript/issues/18), so this functionality is not 100% compatible with [Start FCPX Video Editing mode when editing drive is connected](#start-fcpx-video-editing-mode-when-drive-is-connected) 90 | -------------------------------------------------------------------------------- /Video Editing/Start-Video-Editing-FiScript.sh: -------------------------------------------------------------------------------- 1 | open /Library/PreferencePanes/USB\ Overdrive.prefPane/Contents/Resources/USBOverdriveHelper.app 2 | open /Applications/TouchOSC\ Bridge.app 3 | open /Applications/CommandPost.app 4 | open $PATH 5 | delay 2 6 | open "btt://trigger_named/?trigger_name=VIDEO_EDITING" 7 | -------------------------------------------------------------------------------- /Video Editing/Template.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/Template.zip -------------------------------------------------------------------------------- /Video Editing/Video Editing.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/Video Editing.zip -------------------------------------------------------------------------------- /Video Editing/folder-icons/icns/AUDIO-volume.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/icns/AUDIO-volume.icns -------------------------------------------------------------------------------- /Video Editing/folder-icons/icns/CAMERA-camera.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/icns/CAMERA-camera.icns -------------------------------------------------------------------------------- /Video Editing/folder-icons/icns/DOWNLOADS-downloads.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/icns/DOWNLOADS-downloads.icns -------------------------------------------------------------------------------- /Video Editing/folder-icons/icns/EFFECTS-headphones.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/icns/EFFECTS-headphones.icns -------------------------------------------------------------------------------- /Video Editing/folder-icons/icns/IMAGES-pictures.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/icns/IMAGES-pictures.icns -------------------------------------------------------------------------------- /Video Editing/folder-icons/icns/MIC-mic.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/icns/MIC-mic.icns -------------------------------------------------------------------------------- /Video Editing/folder-icons/icns/MUSIC-note.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/icns/MUSIC-note.icns -------------------------------------------------------------------------------- /Video Editing/folder-icons/icns/PHOTOS-camera.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/icns/PHOTOS-camera.icns -------------------------------------------------------------------------------- /Video Editing/folder-icons/icns/SCREENCAP-desktop.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/icns/SCREENCAP-desktop.icns -------------------------------------------------------------------------------- /Video Editing/folder-icons/icns/SCREENSHOT-desktop.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/icns/SCREENSHOT-desktop.icns -------------------------------------------------------------------------------- /Video Editing/folder-icons/icns/VIDEO-film.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/icns/VIDEO-film.icns -------------------------------------------------------------------------------- /Video Editing/folder-icons/png/AUDIO-volume.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/png/AUDIO-volume.png -------------------------------------------------------------------------------- /Video Editing/folder-icons/png/CAMERA-camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/png/CAMERA-camera.png -------------------------------------------------------------------------------- /Video Editing/folder-icons/png/DOWNLOADS-downloads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/png/DOWNLOADS-downloads.png -------------------------------------------------------------------------------- /Video Editing/folder-icons/png/EFFECTS-headphones.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/png/EFFECTS-headphones.png -------------------------------------------------------------------------------- /Video Editing/folder-icons/png/IMAGES-pictures.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/png/IMAGES-pictures.png -------------------------------------------------------------------------------- /Video Editing/folder-icons/png/MIC-mic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/png/MIC-mic.png -------------------------------------------------------------------------------- /Video Editing/folder-icons/png/MUSIC-note.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/png/MUSIC-note.png -------------------------------------------------------------------------------- /Video Editing/folder-icons/png/PHOTOS-camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/png/PHOTOS-camera.png -------------------------------------------------------------------------------- /Video Editing/folder-icons/png/SCREENCAP-desktop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/png/SCREENCAP-desktop.png -------------------------------------------------------------------------------- /Video Editing/folder-icons/png/SCREENSHOT-desktop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/png/SCREENSHOT-desktop.png -------------------------------------------------------------------------------- /Video Editing/folder-icons/png/VIDEO-film.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Video Editing/folder-icons/png/VIDEO-film.png -------------------------------------------------------------------------------- /Yeelight/README.md: -------------------------------------------------------------------------------- 1 | ## Yeelight brightness TouchBar slider 2 | ### What does it do 3 | Add a slider to the TouchBar. It controls the brightness of your Yeelight bulb 4 | 5 | ### Requirements 6 | * [BetterTouchTool](https://a.paddle.com/v2/click/30842/40874?link=1061) 7 | * [Python & pip](https://www.python.org/downloads/) 8 | 9 | ### Installation 10 | * Activate the LAN control for the lightbulb in the Yeelight app 11 | * Open the Terminal app and install the yeelight module 12 | ```shell 13 | pip install yeelight 14 | ``` 15 | * Insert the lightbulb IP address in the `yeelight_bulb.py` file 16 | * Open BetterTouchTool 17 | * Import the `Yeelight.bttpreset` file into BTT 18 | * Select Custom Applescript Slider Widget in the Touchbar section 19 | * Open its Predefined Action 20 | * Insert the path of the `yeelight_bulb.py` file into the Applescript 21 | -------------------------------------------------------------------------------- /Yeelight/Yeelight.bttpreset: -------------------------------------------------------------------------------- 1 | { 2 | "BTTPresetName" : "Yeelight", 3 | "BTTPresetUUID" : "D668ED1C-AB9A-426A-98AB-A77E5F13C6E1", 4 | "BTTPresetContent" : [ 5 | { 6 | "BTTAppBundleIdentifier" : "com.apple.FinalCut", 7 | "BTTAppName" : "Final Cut Pro", 8 | "BTTAppProcessMatchMode" : 2, 9 | "BTTAppProcessName" : "Final Cut Pro", 10 | "BTTTriggers" : [ 11 | 12 | ] 13 | }, 14 | { 15 | "BTTAppBundleIdentifier" : "BT.G", 16 | "BTTAppName" : "Global", 17 | "BTTTriggers" : [ 18 | { 19 | "BTTTriggerType" : 638, 20 | "BTTTriggerTypeDescription" : "Custom Apple Script Slider Widget", 21 | "BTTTriggerClass" : "BTTTriggerTypeTouchBar", 22 | "BTTPredefinedActionType" : 195, 23 | "BTTPredefinedActionName" : "Run Apple Script (async in background)", 24 | "BTTInlineAppleScript" : "on bttWidgetSliderMoved(sliderValue)\r\t\r\tdo shell script \"\/usr\/local\/bin\/python3 \/Users\/YOUR_PATH\/yeelight_bulb.py \" & sliderValue\r\t\rend bttWidgetSliderMoved", 25 | "BTTEnabled2" : 1, 26 | "BTTUUID" : "482AD5C1-5BFD-4784-AA8B-18FE5B891C41", 27 | "BTTEnabled" : 1, 28 | "BTTModifierMode" : 0, 29 | "BTTAlternateModifierKeys" : 0, 30 | "BTTOrder" : 1, 31 | "BTTDisplayOrder" : 0, 32 | "BTTMergeIntoTouchBarGroups" : 0, 33 | "BTTTriggerConfig" : { 34 | "BTTTouchBarItemIconWidth" : 22, 35 | "BTTTouchBarButtonColor" : "0.000000, 150.399228, 255.000000, 255.000000", 36 | "BTTTouchBarItemPlacement" : 2, 37 | "BTTTouchBarAlternateBackgroundColor" : "0.000000, 0.000000, 0.000000, 0.000000", 38 | "BTTTouchBarButtonCornerRadius" : 6, 39 | "BTTTouchBarScriptUpdateInterval" : 0, 40 | "BTTTBWidgetWidth" : 200, 41 | "BTTTouchBarAppleScriptString" : "return \"0.5\"", 42 | "BTTTBDrawKnobWithoutPadding" : false, 43 | "BTTTouchBarSliderDrawKnobIconWhite" : false, 44 | "BTTTouchBarSliderTriggerPercentage" : 0.050000000000000003, 45 | "BTTTouchBarFreeSpaceAfterButton" : 5, 46 | "BTTTouchBarSliderDrawKnobBackground" : true, 47 | "BTTTouchBarShowRightIconForSlider" : true, 48 | "BTTTouchBarAppleScriptUsePath" : 0, 49 | "BTTTouchBarShowLeftIconForSlider" : true, 50 | "BTTTouchBarItemPadding" : 0, 51 | "BTTTouchBarItemIconHeight" : 22 52 | } 53 | } 54 | ] 55 | } 56 | ], 57 | "BTTPresetSnapAreas" : [ 58 | 59 | ] 60 | } -------------------------------------------------------------------------------- /Yeelight/run_Yeelight_bulb.scpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFtechOfficial/mac-automation-scripts/5cda3d15889a8a27259dbbdb9b3a7b55c6116818/Yeelight/run_Yeelight_bulb.scpt -------------------------------------------------------------------------------- /Yeelight/yeelight_bulb.py: -------------------------------------------------------------------------------- 1 | from yeelight import Bulb 2 | import sys 3 | 4 | bulb = Bulb("192.168.1.???", auto_on=True) 5 | brightness = int(float(sys.argv[1].replace(',', '.')) * 100) 6 | if brightness < 1: 7 | bulb.turn_off() 8 | else: 9 | bulb.set_brightness(brightness) 10 | --------------------------------------------------------------------------------