Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 3 additions & 33 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ jobs:
- name: Install XcodeGen
run: brew install xcodegen

- name: Generate App Icons
run: swift Scripts/generate-icon.swift

- name: Generate Xcode Project
run: xcodegen generate

Expand Down Expand Up @@ -152,39 +155,6 @@ jobs:
if: github.event_name == 'pull_request'
run: swift Scripts/generate-assets.swift .build/assets

- name: Inject App Icons
if: github.event_name == 'pull_request'
run: |
APP=".build/ReleaseDerivedData/Build/Products/Release/Blip.app"
HELPER_APP=".build/ReleaseDerivedData/Build/Products/Release/Blip Helper.app"

# Blip icon
if [[ -f ".build/assets/Blip.icns" ]]; then
mkdir -p "$APP/Contents/Resources"
cp ".build/assets/Blip.icns" "$APP/Contents/Resources/AppIcon.icns"
/usr/libexec/PlistBuddy -c "Set :CFBundleIconFile AppIcon" "$APP/Contents/Info.plist" 2>/dev/null || \
/usr/libexec/PlistBuddy -c "Add :CFBundleIconFile string AppIcon" "$APP/Contents/Info.plist"
fi

# Helper icon
if [[ -d "$HELPER_APP" && -f ".build/assets/BlipHelper.icns" ]]; then
mkdir -p "$HELPER_APP/Contents/Resources"
cp ".build/assets/BlipHelper.icns" "$HELPER_APP/Contents/Resources/AppIcon.icns"
/usr/libexec/PlistBuddy -c "Set :CFBundleIconFile AppIcon" "$HELPER_APP/Contents/Info.plist" 2>/dev/null || \
/usr/libexec/PlistBuddy -c "Add :CFBundleIconFile string AppIcon" "$HELPER_APP/Contents/Info.plist"
fi

- name: Re-sign After Icon Injection
if: github.event_name == 'pull_request'
run: |
codesign --force --deep --sign "$IDENTITY" --timestamp --options runtime \
".build/ReleaseDerivedData/Build/Products/Release/Blip.app"

HELPER_APP=".build/ReleaseDerivedData/Build/Products/Release/Blip Helper.app"
if [ -d "$HELPER_APP" ]; then
codesign --force --deep --sign "$IDENTITY" --timestamp --options runtime "$HELPER_APP"
fi

- name: Package Pre-release DMGs
if: github.event_name == 'pull_request'
run: |
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ jobs:
- name: Install XcodeGen
run: brew install xcodegen

- name: Generate App Icons
run: swift Scripts/generate-icon.swift

- name: Generate Xcode Project
run: xcodegen generate

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
62 changes: 4 additions & 58 deletions Blip/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json
Original file line number Diff line number Diff line change
@@ -1,64 +1,10 @@
{
"images" : [
{
"filename" : "icon_16x16_1x.png",
"idiom" : "mac",
"scale" : "1x",
"size" : "16x16"
},
{
"filename" : "icon_16x16_2x.png",
"idiom" : "mac",
"scale" : "2x",
"size" : "16x16"
},
{
"filename" : "icon_32x32_1x.png",
"idiom" : "mac",
"scale" : "1x",
"size" : "32x32"
},
{
"filename" : "icon_32x32_2x.png",
"idiom" : "mac",
"scale" : "2x",
"size" : "32x32"
},
{
"filename" : "icon_128x128_1x.png",
"idiom" : "mac",
"scale" : "1x",
"size" : "128x128"
},
{
"filename" : "icon_128x128_2x.png",
"idiom" : "mac",
"scale" : "2x",
"size" : "128x128"
},
{
"filename" : "icon_256x256_1x.png",
"idiom" : "mac",
"scale" : "1x",
"size" : "256x256"
},
{
"filename" : "icon_256x256_2x.png",
"idiom" : "mac",
"scale" : "2x",
"size" : "256x256"
},
{
"filename" : "icon_512x512_1x.png",
"idiom" : "mac",
"scale" : "1x",
"size" : "512x512"
},
{
"filename" : "icon_512x512_2x.png",
"idiom" : "mac",
"scale" : "2x",
"size" : "512x512"
"filename" : "AppIcon.png",
"idiom" : "universal",
"platform" : "mac",
"size" : "1024x1024"
}
],
"info" : {
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,64 +1,10 @@
{
"images" : [
{
"filename" : "icon_16x16_1x.png",
"idiom" : "mac",
"scale" : "1x",
"size" : "16x16"
},
{
"filename" : "icon_16x16_2x.png",
"idiom" : "mac",
"scale" : "2x",
"size" : "16x16"
},
{
"filename" : "icon_32x32_1x.png",
"idiom" : "mac",
"scale" : "1x",
"size" : "32x32"
},
{
"filename" : "icon_32x32_2x.png",
"idiom" : "mac",
"scale" : "2x",
"size" : "32x32"
},
{
"filename" : "icon_128x128_1x.png",
"idiom" : "mac",
"scale" : "1x",
"size" : "128x128"
},
{
"filename" : "icon_128x128_2x.png",
"idiom" : "mac",
"scale" : "2x",
"size" : "128x128"
},
{
"filename" : "icon_256x256_1x.png",
"idiom" : "mac",
"scale" : "1x",
"size" : "256x256"
},
{
"filename" : "icon_256x256_2x.png",
"idiom" : "mac",
"scale" : "2x",
"size" : "256x256"
},
{
"filename" : "icon_512x512_1x.png",
"idiom" : "mac",
"scale" : "1x",
"size" : "512x512"
},
{
"filename" : "icon_512x512_2x.png",
"idiom" : "mac",
"scale" : "2x",
"size" : "512x512"
"filename" : "AppIcon.png",
"idiom" : "universal",
"platform" : "mac",
"size" : "1024x1024"
}
],
"info" : {
Expand Down
10 changes: 4 additions & 6 deletions Scripts/generate-assets.swift
Original file line number Diff line number Diff line change
Expand Up @@ -83,10 +83,9 @@ func drawIcon(size: CGFloat) -> NSImage {
image.lockFocus()

let rect = NSRect(x: 0, y: 0, width: size, height: size)
let cornerRadius = size * 0.22

// Background gradient: deep navy to dark blue
let path = NSBezierPath(roundedRect: rect, xRadius: cornerRadius, yRadius: cornerRadius)
// Full-bleed square background — macOS 26 clips the icon shape itself
let path = NSBezierPath(rect: rect)
let gradient = NSGradient(
colors: [brandDarkNavy, brandDeepBlue],
atLocations: [0.0, 1.0],
Expand Down Expand Up @@ -224,10 +223,9 @@ func drawHelperIcon(size: CGFloat) -> NSImage {
image.lockFocus()

let rect = NSRect(x: 0, y: 0, width: size, height: size)
let cornerRadius = size * 0.22

// Background gradient: slightly warmer deep navy
let path = NSBezierPath(roundedRect: rect, xRadius: cornerRadius, yRadius: cornerRadius)
// Full-bleed square background — macOS 26 clips the icon shape itself
let path = NSBezierPath(rect: rect)
let gradient = NSGradient(
colors: [
NSColor(red: 0.06, green: 0.06, blue: 0.16, alpha: 1.0),
Expand Down
Loading