-
Notifications
You must be signed in to change notification settings - Fork 6
/
run.sh
877 lines (813 loc) · 26.2 KB
/
run.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
#!/usr/bin/env zsh
# ------------------------------
# INITIALIZE
# ------------------------------
# Load Helper functions persistently
source helpers.sh > /dev/null
# Load the right configuration file
showinfo "Loading setup configuration" "shout"
if checkIfFileExists "config.sh"; then
# Load CUSTOM configs
source config.sh > /dev/null
showinfo "custom configs (config.sh)" "confirm"
else
# Fallback: Load DEFAULT configs
source config.default.sh > /dev/null
showinfo "default configs (config.default.sh)" "confirm"
fi
# ------------------------------
# SETUP MACOS SYSTEM SERVICES
# ------------------------------
showinfo "SETUP MACOS SYSTEM SERVICES" "shout"
for service in ./Systemservices/*.sh; do
[ -r "$service" ] && source $service > /dev/null
done
unset service
# -- FileVault2 --
if [ "$useFileVault" = true ]; then
showinfo "Enabling FileVault:" "note"
enableFileVault
showinfo "" "confirm"
fi
# -- Built-in Firewall --
if [ "$enableFirewall" = true ]; then
showinfo "Enabling Firewall Stealthmode:" "note"
activateFirewallStealthmode
showinfo "" "confirm"
showinfo "Enabling Firewall:" "note"
enableFirewall
showinfo "" "confirm"
fi
# -- Time Machine --
if [ "$speedupTimemachine" = true ]; then
showinfo "Disabling Time Machine prompts for new connected drives:" "note"
muteTimeMachine
showinfo "" "confirm"
showinfo "Throttling Time Machine process priority:" "note"
speedupTimeMachine
showinfo "" "confirm"
fi
# -- AirDrop --
if [ "$enableWiredAirDrop" = true ]; then
showinfo "Enabling AirDrop through Ethernet:" "note"
enableAirDropOnEthernet
showinfo "" "confirm"
fi
# -- Login and Password --
if [ "$disableShutdownRestartInLogin" = true ]; then
showinfo "Disabling 'Shutdown' button on Login window:" "note"
disableShutdownOnLogin
showinfo "" "confirm"
showinfo "Disabling 'Restart' button on Login window:" "note"
disableRestartOnLogin
showinfo "" "confirm"
fi
if [ "$enableScreensaverPassword" = true ]; then
showinfo "Enabling password prompt when interrupting Screensaver:" "note"
enableUserpasswordOnScreensaver
showinfo "" "confirm"
fi
if [ "$playMacStartupSound" = true ]; then
showinfo "Enabling the iconic Startup Chime on your Mac:" "note"
enableStartupChime
showinfo "" "confirm"
fi
# ------------------------------
# APPLY USER SETTINGS
# ------------------------------
showinfo "APPLY USER SETTINGS" "shout"
for setting in ./Usersettings/*.sh; do
[ -r "$setting" ] && source $setting > /dev/null
done
unset setting
# -- Application Performance --
if [ "$betterApplicationPerformance" = true ]; then
showinfo "Disabling App Nap (application power saving):" "note"
disableAppNap
setActivityMonitorProcesslist
showinfo "" "confirm"
fi
# -- macOS Layout --
if [ "$dateTimeInMenubar" = true ]; then
showinfo "Setting analog Menu Clock:" "note"
setReadableMenuclock
showinfo "" "confirm"
fi
if [ "$showScrollbars" = true ]; then
showinfo "Setting always visible Scrollbars:" "note"
alwaysShowScrollbars
showinfo "" "confirm"
fi
if [ "$disableNaturalScrolling" = true ]; then
showinfo "Disabling Natural Scrolling:" "note"
disableNaturalScrolling
showinfo "" "confirm"
fi
if [ "$disableTransparency" = true ]; then
showinfo "Disabling transparencies and tinting (windows, menubar):" "note"
disableTransparencyAndTinting
showinfo "" "confirm"
fi
if [ "$useRealNamesForContacts" = true ]; then
showinfo "Enable using real names for Contacts (instead of Nicknames):" "note"
disableContactstNicknames
showinfo "" "confirm"
fi
# -- Mission Control --
if [ "$useMissionControl" = true ]; then
showinfo "Configuring Mission Control:" "note"
setMissionControlHotCorners
groupMissionControlByApplication
switchMissionControlSpacesByApplication
useMissionControlSpacePerDisplay
showinfo "" "confirm"
fi
# -- Control Centre --
if [ "$enableFastUserswitching" = true ]; then
showinfo "Enabling Fast User Switching:" "note"
enableFastUserSwitching
showFastUserSwitching
showinfo "" "confirm"
fi
if [ "$showBatteryPercentage" = true ] && checkIfMacIsPortable; then
showinfo "Show Battery %-Percentage:" "note"
showBatteryPercentage
showinfo "" "confirm"
fi
# -- macOS Text / Keyboard Input --
if [ "$disableAnnoyingTextcorrections" = true ]; then
showinfo "Disabling annoying automatic Text corrections:" "note"
disableTextAutocorrect
disableTextCapitalisation
disableTextPeriodSubstitution
showinfo "" "confirm"
fi
if [ "$enableTrackpadClicks" = true ] && checkIfMacIsPortable; then
showinfo "Enable Tap to Click on the Trackpad:" "note"
enableTrackpadClicking
showinfo "" "confirm"
fi
if [ "$fasterMouseCursor" = true ]; then
showinfo "Speedup Cursor on Trackpads and Mouses:" "note"
increaseMouseSpeed
showinfo "" "confirm"
fi
if [ "$fnKeyFunction" != 'off' ] || [ "$fnKeyFunction" != false ]; then
showinfo "Changing fn 🌐 key functionality:" "note"
useFnKeyFor "$fnKeyFunction"
showinfo "" "confirm"
fi
# -- Dock --
if [ "$speedupDock" = true ]; then
showinfo "Enabling auto-hiding the Dock:" "note"
autohideDock
showinfo "" "confirm"
showinfo "Making the Dock hide/show much snappier:" "note"
speedupDock
showinfo "" "confirm"
fi
if [ "$beautifyDock" = true ]; then
showinfo "Remove all default App Icons from the Dock:" "note"
clearDock
showinfo "" "confirm"
showinfo "Disabling recent Apps from the Dock:" "note"
noRecentAppsInDock
showinfo "" "confirm"
showinfo "Enabling dimming hidden Apps in the Dock:" "note"
dimHiddenAppsInDock
indicateRunningAppsInDock
showinfo "" "confirm"
fi
if [ "$minimalDock" = true ]; then
showinfo "Showing only active Apps in the Dock:" "note"
showOnlyRunningAppsInDock
showinfo "" "confirm"
fi
restartDock
# -- Finder --
if [ "$customizeFinder" = true ]; then
showinfo "Customizing the macOS Finder:" "notice"
# --> Photos handling when Apple Devices connected
showinfo "Disabling auto-import of Photos (from connected Apple Devices):" "note"
preventAutoImportPhotos
showinfo "" "confirm"
# -- Finder windows & folders --
showinfo "Improving Finder windows and dialogues:" "note"
disableMetadataFilesOnNetworkshares
disableMetadataFilesOnExternalDrives
saveToDiskInsteadOfiCloud
showAllFileExtensions
expandAllSavePanels
expandAllPrintPanels
minimizeWindowsOnDoubleclick
alwaysConfirmClose
disableEmptyTrashWarning
alwaysSaveWindowstateOnQuit
useSmallIconsInSidebar
showStatusAndPathBars
defaultSearchCurrentFolder
defaultNewWindowLocation
showVolumeIconsOnDesktop
enableSnapToGrid
updateApplicationsFolderListColumns
if [ "$enableFullDraggableWindows" = true ]; then
showinfo "Making all windows fully draggable using ⌘Command+^Control+Click:" "note"
enableFullWindowDragzone
fi
if [ "$removeTrashbinItemsPeriodically" = true ]; then
showinfo "Trash bin: automatically remove items after 30 days:" "note"
enableTrashAutoremove30days
fi
showinfo "" "confirm"
# --> Screenshots
showinfo "Improving Screenshots:" "note"
saveScreenshotsAs "$useScreenshotsFormat"
if [ "$useScreenshotsNumericFilename" = true ]; then
useNumericScreenshots
fi
showinfo "" "confirm"
# --> Text Edit
showinfo "Setting Text Edit default document format to Plain-Text:" "note"
enableTextEditPlaintext
showinfo "" "confirm"
# --> Spotlight
showinfo "Improving Spotlight:" "note"
hideSpotlightFromMenubar
disableSpotlightIndexingExternalDrives
disableSpotlightSearchItems
showinfo "" "confirm"
showinfo "Restarting Finder and SystemUIServer service:" "note"
restartSystemUIServer
restartFinder
showinfo "" "confirm"
fi
# -- Apple Apps --
if [ "$showMusicNextSongPlaying" = true ]; then
showinfo "Show «Playing next» notification from Music App:" "note"
showNextSongNotification
showinfo "" "confirm"
fi
if [ "$showSubjectInMessagesApp" = true ]; then
showinfo "Show the Subject field in Messages App:" "note"
enableMessagesSubjectField
showinfo "" "confirm"
fi
# -- Safari --
if [ "$secureSafariBrowser" = true ]; then
showinfo "More Privacy and Security for Safari:" "notice"
# --> Private
showinfo "Enabling Private Search and No Tracking:" "note"
privateSearchQueriesInSafari
noContentTrackingInSafari
showinfo "" "confirm"
# --> Security
showinfo "Enabling all Security features in Safari:" "note"
showFullUrlInSafari
preventUnpackingDownloadedFilesInSafari
preventVisitingBadWebsitesInSafari
preventOutdatedExtensionsInSafari
preventAutofillingYourDataInSafari
enableDeveloperToolsInSafari
showinfo "" "confirm"
fi
# -- Userhome Files + Folders --
for filesetting in ./FilesFolders/*.sh; do
[ -r "$filesetting" ] && source $filesetting > /dev/null
done
unset filesetting
showinfo "CREATING ADDITIONAL FOLDERS AND FILES" "shout"
# --> ZSH profile configuration file
showinfo "Adding a ~/.zprofile ZSH Shell config file to userhome:" "note"
createUserFileZprofile
showinfo "" "confirm"
# --> Library folder
if [ "$showLibraryFolder" = true ]; then
showinfo "Making the ~/Library folder in userhome visible:" "note"
showUserhomeLibraryFolder
showinfo "" "confirm"
fi
# --> Applications
if [ "$addUserApplicationsFolder" = true ]; then
showinfo "Adding a ~/Applications folder to userhome:" "note"
createUserFolderApplications
showinfo "" "confirm"
fi
# --> Sites
if [ "$addUserWebsitesFolder" = true ]; then
showinfo "Adding a ~/Sites folder to userhome:" "note"
createUserFolderSites
showinfo "" "confirm"
fi
# --> Games
if [ "$addUserGamesFolder" = true ]; then
showinfo "Adding a ~/Games folder to userhome:" "note"
createUserFolderGames
showinfo "" "confirm"
fi
# --> Desktop Pictures
if [ "$downloadWallpapers" = true ]; then
showinfo "Adding Desktop Pictures folder to userhome ~/Pictures/:" "note"
createUserFolderDesktopPictures
showinfo "" "confirm"
if [ "$dynamicWallpaperExodus" = true ]; then
showinfo "...downloading «Exodus» wallpaper to ~/Pictures/Desktop Pictures/" "note"
downloadWallpaperExodus
fi
if [ "$dynamicWallpaperFuji" = true ]; then
showinfo "...downloading «Fuji» wallpaper to ~/Pictures/Desktop Pictures/" "note"
downloadWallpaperFuji
fi
if [ "$dynamicWallpaperISS" = true ]; then
showinfo "...downloading «ISS» wallpaper to ~/Pictures/Desktop Pictures/" "note"
downloadWallpaperISS
fi
showinfo "" "confirm"
fi
# ------------------------------
# APPLICATION INSTALLATIONS
#
# Note:
# open -g Do not bring the application to the foreground.
# -j Launches the app hidden.
# ------------------------------
showinfo "APPLICATION INSTALLATIONS" "shout"
for app in ./Applications/*.sh; do
[ -r "$app" ] && source $app > /dev/null
done
unset app
# -- DISABLE macOS Gatekeepr (if enabled) --
if macosGatekeeper; then
showinfo "DISABLING Gatekeeper to allow unsiged Applications:" "note"
macosGatekeeper "off"
showinfo "" "confirm"
fi
# -- REMOVE pre-installed large Apps --
if [ "$removeGarageband" = true ]; then
showinfo "Removing Garageband App:" "note"
removeAppGarageband
showinfo "(removed if present)" "confirm"
fi
if [ "$removeiMovie" = true ]; then
showinfo "Removing iMovie App:" "note"
removeAppiMovie
showinfo "(removed if present)" "confirm"
fi
# -- Rosetta for macOS --
if [ "$installRosetta" = true ]; then
showinfo "Installing Rosetta:" "note"
installAppRosetta
showinfo "" "confirm"
fi
# -- Keka.app --
if [ "$installKeka" = true ]; then
showinfo "Installing Keka:" "note"
installAppKeka
showinfo "" "confirm"
fi
# -- 1Password.app --
if [ "$install1Password" = true ]; then
showinfo "Installing 1Password:" "note"
installApp1Password
showinfo "" "confirm"
fi
# -- AlDente.app (only on portable Macs) --
if [ "$installAlDente" = true ] && checkIfMacIsPortable; then
showinfo "Installing AlDente:" "note"
installAppAlDente
showinfo "" "confirm"
fi
# -- Beyond Compare --
if [ "$installBeyondCompare" = true ]; then
showinfo "Installing Beyond Compare:" "note"
installAppBeyondCompare
showinfo "" "confirm"
fi
# -- Brave Browser --
if [ "$installBraveBrowser" = true ]; then
showinfo "Installing Brave Browser:" "note"
installAppBraveBrowser
showinfo "" "confirm"
fi
# -- Discord.app --
if [ "$installDiscord" = true ]; then
showinfo "Installing Discord:" "note"
installAppDiscord
showinfo "" "confirm"
fi
# -- eqMac.app --
if [ "$installEqMac" = true ]; then
showinfo "Installing eqMac:" "note"
installAppEqMac
showinfo "" "confirm"
fi
# -- Figma.app --
if [ "$installFigma" = true ]; then
showinfo "Installing Figma Desktop:" "note"
installAppFigma
showinfo "" "confirm"
fi
# -- Google Chrome.app --
if [ "$installGoogleChrome" = true ]; then
showinfo "Installing Google Chrome Browser:" "note"
installAppGoogleChrome
showinfo "" "confirm"
fi
# -- GrandPerspective.app --
if [ "$installGrandPerspective" = true ]; then
showinfo "Installing GrandPerspective:" "note"
installAppGrandPerspective
showinfo "" "confirm"
fi
# -- Heroic Games Launcher --
if [ "$installHeroicGamesLauncher" = true ]; then
showinfo "Installing Heroic Games Launcher:" "note"
installAppHeroicGamesLauncher
showinfo "" "confirm"
fi
# -- LinearMouse.app --
if [ "$installLinearMouse" = true ]; then
showinfo "Installing LinearMouse:" "note"
installAppLinearMouse
showinfo "Disabling Mouse cursor acceleration of macOS:" "note"
disableMouseAcceleration
showinfo "" "confirm"
fi
# -- Macs Fan Control.app --
if [ "$installMacsFanControl" = true ]; then
showinfo "Installing Macs Fan Control:" "note"
installAppMacsFanControl
showinfo "" "confirm"
fi
# -- Microsoft Office / Office 365 for Mac --
if [ "$installMicrosoftOffice" = true ]; then
showinfo "Installing Microsoft Office for Mac:" "note"
installAppMicrosoftOffice
showinfo "" "confirm"
fi
# -- Mozilla Firefox.app --
if [ "$installFirefox" = true ]; then
showinfo "Installing Firefox Browser:" "note"
installAppFirefox
showinfo "" "confirm"
fi
# -- Nova.app --
if [ "$installNova" = true ]; then
showinfo "Installing Nova App:" "note"
installAppNova
showinfo "" "confirm"
fi
# -- OverSight.app --
if [ "$installOverSight" = true ]; then
showinfo "Installing OverSight:" "note"
installAppOverSight
showinfo "" "confirm"
fi
# -- Spotify.app --
if [ "$installSpotify" = true ]; then
showinfo "Installing Spotify:" "note"
installAppSpotify
showinfo "" "confirm"
fi
# -- Steam --
if [ "$installSteam" = true ]; then
showinfo "Installing Steam:" "note"
installAppSteam
showinfo "" "confirm"
fi
# -- Telegram.app --
if [ "$installTelegram" = true ]; then
showinfo "Installing Telegram:" "note"
installAppTelegram
showinfo "" "confirm"
fi
# -- Transmission.app --
if [ "$installTransmission" = true ]; then
showinfo "Installing Transmission:" "note"
installAppTransmission
showinfo "" "confirm"
fi
# -- Tresorit.app --
if [ "$installTresorit" = true ]; then
showinfo "Installing Tresorit:" "note"
installAppTresorit
showinfo "" "confirm"
fi
# -- Visual Studio Code --
if [ "$installVisualStudioCode" = true ]; then
showinfo "Installing Visual Studio Code:" "note"
installAppVSCode
showinfo "" "confirm"
fi
# -- VLC Media Player --
if [ "$installVLC" = true ]; then
showinfo "Installing VLC Media Player:" "note"
installAppVLC
showinfo "" "confirm"
fi
# -- Warp --
if [ "$installWarp" = true ]; then
showinfo "Installing Warp Terminal:" "note"
installAppWarp
showinfo "" "confirm"
fi
# -- Whisky --
if [ "$installWhisky" = true ]; then
showinfo "Installing Whisky:" "note"
installAppWhisky
showinfo "" "confirm"
fi
# -- Xnapper.app --
if [ "$installXnapper" = true ]; then
showinfo "Installing Xnapper:" "note"
installAppXnapper
showinfo "" "confirm"
fi
# -- Xcode Command Line Tools --
if [ "$installXcodeTools" = true ] || [ "$installHomebrew" = true ]; then
# !! NOTE: Pre-requisite for Homebrew !!
showinfo "Installing Xcode Command Line Tools (xcode):" "note"
installAppXcodeCLT
if checkIfXcodeInstalled; then
showinfo "" "confirm"
else
showinfo "Xcode Command Line Tools were not installed" "error"
fi
fi
# -- Homebrew --
if [ "$installHomebrew" = true ]; then
showinfo "Installing Homebrew (brew):" "note"
installAppHomebrew
# Extend macOS Functionality with helpful Tools
if checkIfHomebrewInstalled; then
showinfo "" "confirm"
# -- Install Apps via Homebrew --
showinfo "Installing GnuPG, OpenSSH, and wget:" "note"
brewinstallAppGnuPG
brewinstallAppOpenSSH
brewinstallAppWget
showinfo "" "confirm"
# --> Syntax Highlight (Quick Look Extension)
if [ "$installSyntaxHighlightQuickLook" = true ]; then
showinfo "Installing Syntax Highlight Quick-Look plugin:" "note"
brewinstallAppSyntaxHighlight
showinfo "" "confirm"
fi
# -- Install Apps from App Store --
if [ "$installAppStoreApps" = true ]; then
# --> Mac App Store CLI
showinfo "Installing Mac App Store CLI (mas):" "note"
brewinstallAppMacAppStoreCLI
# Continue only when successfully authenticated in App Store
if checkIfAppStoreAuthenticated; then
showinfo "" "confirm"
# --> App updates from App Store
showinfo "Activating Auto-Updating Apps:" "note"
masinstallAppUpdates
showinfo "" "confirm"
# --> AdGuard for Safari
if [ "$installAdGuardSafari" = true ]; then
masinstallAppAdGuardSafariExtension
fi
# --> 1Password for Safari
if [ "$install1Password" = true ]; then
masinstallApp1PasswordSafariExtension
fi
# --> Strongbox
if [ "$installStrongbox" = true ]; then
masinstallAppStrongbox
fi
# --> Pixelmator Pro
if [ "$installPixelmator" = true ]; then
masinstallAppPixelmator
fi
# Mac App Store CLI was NOT installed
else
showinfo "Not authenticated in Mac App Store!\n--> Mac App Store CLI (mas) not installed" "error"
# --> AdGuard for Safari
if [ "$installAdGuardSafari" = true ]; then
showinfo "Install App manually from App Store: 'AdGuard for Safari'" "notice"
fi
# --> 1Password for Safari
if [ "$install1Password" = true ]; then
showinfo "Install App manually from App Store: '1Password for Safari'" "notice"
fi
# --> Strongbox
if [ "$installStrongbox" = true ]; then
showinfo "Install App manually from App Store: 'Strongbox Password Manager'" "notice"
fi
# --> Pixelmator Pro
if [ "$installPixelmator" = true ]; then
showinfo "Install App manually from App Store: 'Pixelmator Pro'" "notice"
fi
fi
fi
# END -- Mac App Store CLI --
else
# Homebrew was NOT installed
showinfo "Homebrew could not be installed" "error"
fi
fi
# END -- Homebrew --
# -- Web Dev (install) --
if [ "$installWebdevTools" = true ]; then
showinfo "Installing Web Development Tools:" "notice"
# -- Git Command Line Tools --
# (Skipped if already installed through Xcode Command Line Tools)
if [ "$installGit" = true ] && ! checkIfXcodeInstalled; then
showinfo "Installing Git:" "note"
brewinstallAppGit
showinfo "" "confirm"
else
showinfo "Git is already installed" "confirm"
fi
# -- Composer --
if [ "$installComposer" = true ] && checkIfHomebrewInstalled; then
# -- PHP --
# (pre-requisite for Composer)
showinfo "Installing PHP:" "note"
brewinstallAppPHP
showinfo "" "confirm"
showinfo "Installing Composer:" "note"
brewinstallAppComposer
showinfo "" "confirm"
fi
# -- Fork.app --
if [ "$installFork" = true ]; then
showinfo "Installing Fork App:" "note"
installAppFork
showinfo "" "confirm"
fi
# -- Gas Mask.app --
if [ "$installGasMask" = true ]; then
showinfo "Installing Gas Mask Hostfiles-Manager:" "note"
installAppGasMask
showinfo "" "confirm"
fi
# -- Sequel Ace.app --
if [ "$installSequelAce" = true ] && checkIfHomebrewInstalled; then
showinfo "Installing Sequel Ace Database-Manager:" "note"
brewinstallAppSequelAce
showinfo "" "confirm"
fi
# -- Boop.app --
if [ "$installBoop" = true ] && checkIfHomebrewInstalled &&
checkIfAppStoreAuthenticated; then
showinfo "Installing Boop App:" "note"
masinstallAppBoop
showinfo "" "confirm"
fi
if [ "$installMAMP" = false ] || [ ! "$installMAMP" ]; then
# -- OrbStack (preferred over Docker) --
if [ "$useOrbStackOverDocker" = true ]; then
showinfo "Installing OrbStack (Docker alternative):" "note"
if [ checkIfHomebrewInstalled ]; then
brewinstallAppOrbStack
else
installAppOrbStack
fi
showinfo "" "confirm"
# -- SonarQube (for Docker) --
if [ "$installSonarQube" = true ] && [ checkIfHomebrewInstalled ]; then
showinfo "Installing SonarQube for Docker:" "note"
brewinstallAppSonarQube
showinfo "" "confirm"
fi
# -- Docker for Mac --
elif [ "$installDocker" = true ] && checkIfHomebrewInstalled; then
showinfo "Installing Docker for Mac:" "note"
brewinstallAppDocker
showinfo "" "confirm"
# -- SonarQube (for Docker) --
if [ "$installSonarQube" = true ]; then
showinfo "Installing SonarQube for Docker:" "note"
brewinstallAppSonarQube
showinfo "" "confirm"
fi
fi
elif [ "$installMAMP" = true ]; then
# -- MAMP Suite --
installAppMAMP
fi
fi
# END -- Web Dev --
# -- Disabling Quarantine flags for new Applications --
if checkIfFileExists "$HOME/Applications"; then
showinfo "Trying to clear new Apps from macOS Quarantine:" "note"
disableAppQuarantine "$HOME/Applications"
showinfo "" "confirm"
fi
# -- ENABLE macOS Gatekeepr (if disabled) --
if ! macosGatekeeper; then
showinfo "ENABLING Gatekeeper to disallow unsiged Applications:" "note"
macosGatekeeper "on"
showinfo "" "confirm"
fi
# ------------------------------
# APP CONFIGURATIONS
# ------------------------------
showinfo "APPLY APP CONFIGURATIONS" "shout"
# -- Dock customizations --
if [ "$beautifyDock" = true ] && [ ! "$minimalDock" ]; then
showinfo "Beautifying the Dock:" "note"
source ./Usersettings/Dock.sh > /dev/null
# --> Add divider to Dock
addSpacerToDock
# --> Add installed App Icons to Dock
if [ "$installDiscord" = true ]; then
addAppToDock "Discord"
fi
if [ "$installGoogleChrome" = true ]; then
addAppToDock "Google Chrome"
fi
if [ "$installFirefox" = true ]; then
addAppToDock "Firefox"
fi
if [ "$installGrandPerspective" = true ]; then
addAppToDock "GrandPerspective"
fi
if [ "$installNova" = true ]; then
addAppToDock "Nova"
fi
if [ "$installPixelmator" = true ]; then
addAppToDock "Pixelmator Pro"
fi
if [ "$installSpotify" = true ]; then
addAppToDock "Spotify"
fi
if [ "$installStrongbox" = true ]; then
addAppToDock "Strongbox"
fi
if [ "$installTransmission" = true ]; then
addAppToDock "Transmission"
fi
if [ "$installTelegram" = true ]; then
addAppToDock "Telegram"
fi
if [ "$installTresorit" = true ]; then
addAppToDock "Tresorit"
fi
if [ "$installVisualStudioCode" = true ]; then
addAppToDock "Visual Studio Code"
fi
if [ "$installXnapper" = true ]; then
addAppToDock "Xnapper"
fi
if [ "$installWebdevTools" = true ]; then
addSpacerToDock
if [ "$installBoop" = true ]; then
addAppToDock "Boop"
fi
if [ "$installFork" = true ]; then
addAppToDock "Fork"
fi
if [ "$installGasMask" = true ]; then
addAppToDock "Gas Mask"
fi
if [ "$installSequelAce" = true ]; then
addAppToDock "Sequel Ace"
fi
fi
showinfo "" "confirm"
fi
# -- Set-up Git and SSH --
if [[ "$installWebdevTools" = true && "$installGit" = true ]] ||
checkIfXcodeInstalled; then
# --> Git configs
showinfo "Configuring Git:" "note"
setGitconfigs
showinfo "" "confirm"
# --> SSH
showinfo "Configuring an SSH Key to use with Git:" "note"
generateSSHKey
showinfo "" "confirm"
fi
# -- Terminal Configs --
if [ "$enableTerminalUtf8" = true ]; then
showinfo "Enabling UTF-8 as default for the Terminal:" "note"
enableTerminalUtf8
showinfo "" "confirm"
fi
if [ "$useCustomTerminalTheme" = true ]; then
showinfo "Installing custom Terminal Theme file:" "note"
downloadTerminalCustomTheme
showinfo "" "confirm"
fi
if [ "$useCustomTerminalConfigurations" = true ]; then
showinfo "Adding custom Terminal commands to ~/.zshrc:" "note"
downloadTerminalzshrcContents
showinfo "" "confirm"
fi
# ------------------------------
# CUSTOM COMMANDS
#
# Executes custom commands from
# mycommands.sh
# ------------------------------
showinfo "APPLY CUSTOM COMMANDS" "shout"
if checkIfFileExists "mycommands.sh" && [ -s mycommands.sh ]; then
showinfo "Executing custom commands:" "note"
bash mycommands.sh
showinfo "(mycommands.sh)" "confirm"
else
showinfo "(not required)" "note"
fi