diff --git a/.github/workflows/oneclient_nightly.yml b/.github/workflows/oneclient_nightly.yml index e7249aff..de4dc2ec 100644 --- a/.github/workflows/oneclient_nightly.yml +++ b/.github/workflows/oneclient_nightly.yml @@ -115,6 +115,23 @@ jobs: exit 1 fi + - name: (macOS) Compile app icon catalog + if: startsWith(matrix.platform, 'macos') + shell: bash + run: | + set -euo pipefail + out="packages/oneclient_app/icons/generated" + mkdir -p "$out" + xcrun actool packages/oneclient_app/icons/OneClient.icon \ + --compile "$out" \ + --app-icon OneClient \ + --output-partial-info-plist "$out/partial.plist" \ + --platform macosx \ + --minimum-deployment-target 26.0 \ + --errors --warnings --notices + rm -f "$out/OneClient.icns" + test -f "$out/Assets.car" || { echo "::error::actool produced no Assets.car"; exit 1; } + - name: Package (unsigned) shell: bash env: diff --git a/.github/workflows/oneclient_release.yml b/.github/workflows/oneclient_release.yml index 9cc21dc3..f6775d7e 100644 --- a/.github/workflows/oneclient_release.yml +++ b/.github/workflows/oneclient_release.yml @@ -328,6 +328,23 @@ jobs: exit 1 } + - name: (macOS) Compile app icon catalog + if: startsWith(matrix.platform, 'macos') + shell: bash + run: | + set -euo pipefail + out="packages/oneclient_app/icons/generated" + mkdir -p "$out" + xcrun actool packages/oneclient_app/icons/OneClient.icon \ + --compile "$out" \ + --app-icon OneClient \ + --output-partial-info-plist "$out/partial.plist" \ + --platform macosx \ + --minimum-deployment-target 26.0 \ + --errors --warnings --notices + rm -f "$out/OneClient.icns" + test -f "$out/Assets.car" || { echo "::error::actool produced no Assets.car"; exit 1; } + - name: Package shell: bash env: diff --git a/.gitignore b/.gitignore index 3c2fd1d4..a3d27549 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ .DS_Store /.idea OneLauncher.iml + +/packages/oneclient_app/icons/generated/ diff --git a/packages/oneclient_app/Cargo.toml b/packages/oneclient_app/Cargo.toml index ef0ddefc..c0ee6795 100644 --- a/packages/oneclient_app/Cargo.toml +++ b/packages/oneclient_app/Cargo.toml @@ -77,6 +77,7 @@ icons = [ "icons/icon.icns", "icons/icon.ico", ] +resources = [{ src = "icons/generated/Assets.car", target = "Assets.car" }] [package.metadata.packager.macos] minimum-system-version = "10.14" diff --git a/packages/oneclient_app/distribution/Info.plist b/packages/oneclient_app/distribution/Info.plist index 35472329..52b863f3 100644 --- a/packages/oneclient_app/distribution/Info.plist +++ b/packages/oneclient_app/distribution/Info.plist @@ -2,6 +2,8 @@ + CFBundleIconName + OneClient CFBundleURLTypes diff --git a/packages/oneclient_app/icons/OneClient.icon/Assets/oneclient-mark.svg b/packages/oneclient_app/icons/OneClient.icon/Assets/oneclient-mark.svg new file mode 100644 index 00000000..2f96ddac --- /dev/null +++ b/packages/oneclient_app/icons/OneClient.icon/Assets/oneclient-mark.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/packages/oneclient_app/icons/OneClient.icon/icon.json b/packages/oneclient_app/icons/OneClient.icon/icon.json new file mode 100644 index 00000000..b3ad6298 --- /dev/null +++ b/packages/oneclient_app/icons/OneClient.icon/icon.json @@ -0,0 +1,38 @@ +{ + "fill": "automatic", + "groups": [ + { + "layers": [ + { + "blend-mode": "normal", + "fill": "automatic", + "glass": true, + "hidden": false, + "image-name": "oneclient-mark.svg", + "name": "oneclient-mark", + "position": { + "scale": 3.6, + "translation-in-points": [ + 0, + 0 + ] + } + } + ], + "shadow": { + "kind": "neutral", + "opacity": 0.5 + }, + "translucency": { + "enabled": true, + "value": 0.5 + } + } + ], + "supported-platforms": { + "circles": [ + "watchOS" + ], + "squares": "shared" + } +}