Fixed missing Antigravity icons by extracting them from app.asar
This commit is contained in:
1 parent
c91d7cb1a2
commit
3f4c9b7be4
1 file changed
+41
-4
+41
-4
@@ -572,9 +572,28 @@ install_antigravity() {
|
|||||||
sudo ln -sfn /opt/antigravity/antigravity /usr/local/bin/antigravity
|
sudo ln -sfn /opt/antigravity/antigravity /usr/local/bin/antigravity
|
||||||
|
|
||||||
sudo mkdir -p /usr/share/applications /usr/share/icons/hicolor/512x512/apps
|
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
|
fi
|
||||||
|
|
||||||
sudo bash -c 'cat > /usr/share/applications/antigravity.desktop' <<EOF
|
sudo bash -c 'cat > /usr/share/applications/antigravity.desktop' <<EOF
|
||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Name=Antigravity
|
Name=Antigravity
|
||||||
@@ -598,9 +617,27 @@ EOF
|
|||||||
fi
|
fi
|
||||||
sudo ln -sfn /opt/antigravity-ide/antigravity-ide /usr/local/bin/antigravity-ide
|
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
|
# Extract IDE icon from app.asar
|
||||||
sudo cp "/opt/antigravity-ide/resources/app/resources/linux/code.png" /usr/share/icons/hicolor/512x512/apps/antigravity-ide.png
|
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
|
fi
|
||||||
|
|
||||||
sudo bash -c 'cat > /usr/share/applications/antigravity-ide.desktop' <<EOF
|
sudo bash -c 'cat > /usr/share/applications/antigravity-ide.desktop' <<EOF
|
||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Name=Antigravity IDE
|
Name=Antigravity IDE
|
||||||
|
|||||||
Reference in new issue
Block a user