diff --git a/.github/workflows/package.yaml b/.github/workflows/package.yaml index f7d3499..7572621 100644 --- a/.github/workflows/package.yaml +++ b/.github/workflows/package.yaml @@ -15,7 +15,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 - name: Install Linux deps if: ${{ runner.os == 'Linux' }} run: | diff --git a/.npmrc b/.npmrc deleted file mode 100644 index 7c7dfd7..0000000 --- a/.npmrc +++ /dev/null @@ -1,6 +0,0 @@ -runtime = electron -target = 38.2.0 -target_arch = x64,arm64 -disturl = https://electronjs.org/headers -export npm_config_runtime=electron -export npm_config_build_from_source=true diff --git a/build/colorpicker-build.json b/build/colorpicker-build.json index 70a08a6..91a96fa 100644 --- a/build/colorpicker-build.json +++ b/build/colorpicker-build.json @@ -8,11 +8,12 @@ }, "files": ["src/**"], "mac": { - "target": [{ "target": "dmg", "arch": ["arm64", "x64"] }], + "target": [{ "target": "default", "arch": ["x64", "arm64"] }], "category": "public.app-category.graphics-design", "icon": "build/icon.icns", "type": "distribution", "darkModeSupport": true, + "entitlements": "build/entitlements.mac.plist", "extendInfo": { "NSUserNotificationAlertStyle": "alert", "LSHasLocalizedDisplayName": true diff --git a/build/entitlements.mac.plist b/build/entitlements.mac.plist index e69de29..047d949 100644 --- a/build/entitlements.mac.plist +++ b/build/entitlements.mac.plist @@ -0,0 +1,16 @@ + + + + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.allow-jit + + com.apple.security.device.camera + + com.apple.security.device.audio-input + + com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/package.json b/package.json index d958f98..9a9ee0b 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,12 @@ "shading", "picker" ], + "config": { + "target": "38.2.0", + "disturl": "https://electronjs.org/headers", + "runtime": "electron", + "build_from_source": true + }, "dependencies": { "electron-json-storage": "^4.6.0", "robotjs": "github:Toinane/robotjs", diff --git a/src/browsers/picker.js b/src/browsers/picker.js index 22d9a79..fc0995d 100644 --- a/src/browsers/picker.js +++ b/src/browsers/picker.js @@ -1,11 +1,19 @@ "use strict"; -const { BrowserWindow, nativeImage } = require("electron"); +const { BrowserWindow, nativeImage, systemPreferences } = require("electron"); module.exports = (dirname, storage) => { let win; let init = () => { + if (process.platform === "darwin") { + const hasPermission = systemPreferences.getMediaAccessStatus("screen"); + if (hasPermission !== "granted") { + systemPreferences.askForMediaAccess("screen"); + return; + } + } + if (win === null || win === undefined) { createWindow(); }