blob: a9780ed47e6d3d10fdcdeefa5fbd5c11068dd5e6 (
plain)
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
|
#!/bin/sh
# Copyright (c) 2020 Teddy Wing
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
DOCK=/System/Library/CoreServices/Dock.app
CORE_TYPES=/System/Library/CoreServices/CoreTypes.bundle
IO_STORAGE_FAMILY=/System/Library/Extensions/IOStorageFamily.kext
IO_SCSI_ARCHITECTURE_MODEL_FAMILY=/System/Library/Extensions/IOSCSIArchitectureModelFamily.kext
IO_CD_STORAGE_FAMILY=/System/Library/Extensions/IOCDStorageFamily.kext
IO_DVD_STORAGE_FAMILY=/System/Library/Extensions/IODVDStorageFamily.kext
IO_BD_STORAGE_FAMILY=/System/Library/Extensions/IOBDStorageFamily.kext
REPLACEMENT="$(cd "$(dirname "$0")" && pwd)/Icons"
# Authenticate
sudo -v
# Backup system files
NOW=$(date +%Y-%m-%dT%H:%M:%S%z)
sudo tar czf "${DOCK}.backup-${NOW}.tar.gz" "$DOCK"
sudo tar czf "${CORE_TYPES}.backup-${NOW}.tar.gz" "$CORE_TYPES"
sudo tar czf "${IO_STORAGE_FAMILY}.backup-${NOW}.tar.gz" "$IO_STORAGE_FAMILY"
sudo tar czf "${IO_SCSI_ARCHITECTURE_MODEL_FAMILY}.backup-${NOW}.tar.gz" "$IO_SCSI_ARCHITECTURE_MODEL_FAMILY"
sudo tar czf "${IO_CD_STORAGE_FAMILY}.backup-${NOW}.tar.gz" "$IO_CD_STORAGE_FAMILY"
sudo tar czf "${IO_DVD_STORAGE_FAMILY}.backup-${NOW}.tar.gz" "$IO_DVD_STORAGE_FAMILY"
sudo tar czf "${IO_BD_STORAGE_FAMILY}.backup-${NOW}.tar.gz" "$IO_BD_STORAGE_FAMILY"
# Dock icons
sips -s format png --resampleHeightWidthMax 128 "${REPLACEMENT}/TrashIcon.icns" --out /tmp/trashempty.png
sips -s format png --resampleHeightWidthMax 256 "${REPLACEMENT}/TrashIcon.icns" --out '/tmp/trashempty@2x.png'
sips -s format png --resampleHeightWidthMax 128 "${REPLACEMENT}/FullTrashIcon.icns" --out /tmp/trashfull.png
sips -s format png --resampleHeightWidthMax 256 "${REPLACEMENT}/FullTrashIcon.icns" --out '/tmp/trashfull@2x.png'
sips -s format png --resampleHeightWidthMax 128 "${REPLACEMENT}/FinderIcon.icns" --out /tmp/finder.png
sips -s format png --resampleHeightWidthMax 256 "${REPLACEMENT}/FinderIcon.icns" --out '/tmp/finder@2x.png'
sudo cp -f /tmp/trashempty.png "${DOCK}/Contents/Resources/"
sudo cp -f '/tmp/trashempty@2x.png' "${DOCK}/Contents/Resources/"
sudo cp -f /tmp/trashfull.png "${DOCK}/Contents/Resources/"
sudo cp -f '/tmp/trashfull@2x.png' "${DOCK}/Contents/Resources/"
sudo cp -f /tmp/finder.png "${DOCK}/Contents/Resources/"
sudo cp -f '/tmp/finder@2x.png' "${DOCK}/Contents/Resources/"
# Set icons
read -r -d '' icons <<'EOF'
ApplicationsFolderIcon.icns
BD-R.icns
BD-RE.icns
BD.icns
BurnableFolderIcon.icns
BurningIcon.icns
CD-R.icns
CD-RW.icns
CD.icns
ConnectToIcon.icns
DVD+R.icns
DVD+RW.icns
DVD-R.icns
DVD-RAM.icns
DVD-RW.icns
DVD.icns
DesktopFolderIcon.icns
DeveloperFolderIcon.icns
DocumentsFolderIcon.icns
DownloadsFolder.icns
DropFolderBadgeIcon.icns
EjectMediaIcon.icns
External.icns
FinderIcon.icns
FireWireHD.icns
FullTrashIcon.icns
GenericAirDiskIcon.icns
GenericApplicationIcon.icns
GenericFileServerIcon.icns
GenericFolderIcon.icns
GenericNetworkIcon.icns
GroupFolder.icns
HomeFolderIcon.icns
Internal.icns
LibraryFolderIcon.icns
MovieFolderIcon.icns
MusicFolderIcon.icns
OpenFolderIcon.icns
PicturesFolderIcon.icns
PrivateFolderBadgeIcon.icns
PublicFolderIcon.icns
Removable.icns
SitesFolderIcon.icns
SmartFolderIcon.icns
SystemFolderIcon.icns
TimeMachine.icns
ToolbarDeleteIcon.icns
ToolbarInfo.icns
TrashIcon.icns
USBHD.icns
UsersFolderIcon.icns
UtilitiesFolder.icns
iDiskGenericIcon.icns
EOF
for icon in $icons; do
for location in "${CORE_TYPES}/Contents/Resources" \
"${IO_STORAGE_FAMILY}/Contents/Resources" \
"${IO_SCSI_ARCHITECTURE_MODEL_FAMILY}/Contents/Resources" \
"${IO_CD_STORAGE_FAMILY}/Contents/Resources" \
"${IO_DVD_STORAGE_FAMILY}/Contents/Resources" \
"${IO_BD_STORAGE_FAMILY}/Contents/Resources"; do
if [ -f "${location}/${icon}" ]; then
sudo cp -f "${REPLACEMENT}/${icon}" "${location}/${icon}"
fi
done
done
# Clear icon cache
sudo find /private/var/folders/ -name 'com.apple.dock.iconcache' -delete
sudo find /private/var/folders/ -name 'com.apple.iconservices' -delete
sudo mv /Library/Caches/com.apple.iconservices.store $HOME/.Trash/
echo 'Please restart this machine for icon changes to take effect'
|