-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathinit-sys-preference.sh
77 lines (63 loc) · 2.88 KB
/
init-sys-preference.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
#!/usr/bin/env zsh
set -ex
. ./template-render.sh
# disable `Last login` message from iTerm
# https://ashokgelal.com/2017/01/04/til-iterm-hush-last-login/
touch ~/.hushlogin
sudo scutil --set HostName MacbookM2X
# sync docs with iCloud
sudo rm -rf ~/Documents
ln -f -s ~/Library/Mobile\ Documents/com~apple~CloudDocs/Documents ~/Documents
# ssh config
mkdir -p ~/.ssh/sockets/
## manully copy .ssh/ from iCloud at first, include config file
# cp ./app-preferences/ssh.conf.template ~/.ssh/config
cp -f ~/Documents/Preferences/ssh-config/* ~/.ssh/
chmod 400 ~/.ssh/*_rsa
chmod 400 ~/.ssh/*.pub
# link airport
# http://osxdaily.com/2007/01/18/airport-the-little-known-command-line-wireless-utility/
sudo mkdir -p /usr/local/bin
sudo ln -f -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport
@preference.dock() {
# ref: https://sspai.com/post/33493
defaults write com.apple.dock showhidden -bool true
defaults write com.apple.dock mineffect suck
defaults write com.apple.dock mouse-over-hilite-stack -bool true
defaults write com.apple.dock autohide -bool true
defaults write com.apple.dock autohide-delay -int 0
# https://www.defaults-write.com/disable-dashboard-in-mac-os-x
defaults write com.apple.dashboard mcx-disabled -bool true
# System Settings > Desktop & Dock > Scroll down to Mission Control section > Uncheck Automatically rearrange Spaces based on most recent use
# https://apple.stackexchange.com/questions/214348/how-to-prevent-mac-from-changing-the-order-of-desktops-spaces
defaults write com.apple.dock mru-spaces -bool false
# Command + Control + LeftMouseBtn to drag window
defaults write -g NSWindowShouldDragOnGesture -bool true
killall Dock
}
@preference.finder() {
defaults write com.apple.finder AppleShowAllFiles -bool true
# ref: https://support.apple.com/en-us/HT1629
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
killall Finder
}
@specific_UTIs_for_app() {
# ref: https://developer.apple.com/library/content/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html
local UTIs_setting_file="specific-UTIs-for-app"
local UTI_VSCode=`osascript -e 'id of app "Visual Studio Code"'`
local UTI_Typora=`osascript -e 'id of app "Typora"'`
local UTI_NeteaseMusic=`osascript -e 'id of app "NeteaseMusic"'`
local UTI_IINA=`osascript -e 'id of app "IINA"'`
local UTI_Chrome=`osascript -e 'id of app "Google Chrome"'`
local UTI_Iterm2=`osascript -e 'id of app "Iterm2"'`
tmplt.render "$UTIs_setting_file"
duti "$UTIs_setting_file"
}
@enable_TouchID_for_sudo() {
sudo cp -f /etc/pam.d/sudo_local.template /etc/pam.d/sudo_local
sudo sed -i -e 's/^# *auth/auth/' /etc/pam.d/sudo_local
}
@preference.dock
@preference.finder
@specific_UTIs_for_app
@enable_TouchID_for_sudo