Fixed missing Antigravity icons by extracting them from app.asar

This commit is contained in:
jschantli committed 2026-10-07 18:12:13 -07:00
1 parent c91d7cb1a2
commit 3f4c9b7be4
1 file changed
+41 -4
+41 -4
View File
@@ -572,9 +572,28 @@ install_antigravity() {
sudo ln -sfn /opt/antigravity/antigravity /usr/local/bin/antigravity
sudo mkdir -p /usr/share/applications /usr/share/icons/hicolor/512x512/apps
if [ -f "/opt/antigravity/resources/app/resources/linux/code.png" ]; then
sudo cp "/opt/antigravity/resources/app/resources/linux/code.png" /usr/share/icons/hicolor/512x512/apps/antigravity.png
# Extract icon from app.asar
if [ -f "/opt/antigravity/resources/app.asar" ]; then
sudo python3 - /opt/antigravity/resources/app.asar /usr/share/icons/hicolor/512x512/apps/antigravity.png <<'PY'
import json, struct, sys
from pathlib import Path
asar = Path(sys.argv[1])
out = Path(sys.argv[2])
with asar.open('rb') as f:
f.read(4)
header_size = struct.unpack('<I', f.read(4))[0]
f.read(4)
json_size = struct.unpack('<I', f.read(4))[0]
header = json.loads(f.read(json_size).decode())
icon = header.get('files', {}).get('icon.png')
if icon:
with asar.open('rb') as f:
f.seek(8 + header_size + int(icon['offset']))
out.write_bytes(f.read(int(icon['size'])))
PY
fi
sudo bash -c 'cat > /usr/share/applications/antigravity.desktop' <<EOF
[Desktop Entry]
Name=Antigravity
@@ -598,9 +617,27 @@ EOF
fi
sudo ln -sfn /opt/antigravity-ide/antigravity-ide /usr/local/bin/antigravity-ide
if [ -f "/opt/antigravity-ide/resources/app/resources/linux/code.png" ]; then
sudo cp "/opt/antigravity-ide/resources/app/resources/linux/code.png" /usr/share/icons/hicolor/512x512/apps/antigravity-ide.png
# Extract IDE icon from app.asar
if [ -f "/opt/antigravity-ide/resources/app.asar" ]; then
sudo python3 - /opt/antigravity-ide/resources/app.asar /usr/share/icons/hicolor/512x512/apps/antigravity-ide.png <<'PY'
import json, struct, sys
from pathlib import Path
asar = Path(sys.argv[1])
out = Path(sys.argv[2])
with asar.open('rb') as f:
f.read(4)
header_size = struct.unpack('<I', f.read(4))[0]
f.read(4)
json_size = struct.unpack('<I', f.read(4))[0]
header = json.loads(f.read(json_size).decode())
icon = header.get('files', {}).get('icon.png')
if icon:
with asar.open('rb') as f:
f.seek(8 + header_size + int(icon['offset']))
out.write_bytes(f.read(int(icon['size'])))
PY
fi
sudo bash -c 'cat > /usr/share/applications/antigravity-ide.desktop' <<EOF
[Desktop Entry]
Name=Antigravity IDE