SurfSense/surfsense_desktop/electron-builder.yml
CREDO23 fa75d7c54c fix(desktop): ship multi-size icons so linux launchers can find them
electron-builder was given a single 2048x2048 icon.png and dumped it into
hicolor/2048x2048/apps/, a bucket no Linux desktop environment indexes —
launchers and taskbar fell back to a generic placeholder. Pre-render the
standard sizes (16, 32, 48, 64, 128, 256, 512, 1024) and point linux.icon
at the directory so each PNG lands in the matching hicolor/NxN/apps/ slot.

Tray icon was unaffected (loaded at runtime via Electron's Tray API from
bundled resources, no theme lookup).
2026-05-22 20:04:21 +02:00

93 lines
2.7 KiB
YAML

appId: com.surfsense.desktop
productName: SurfSense
publish:
provider: github
owner: MODSetter
repo: SurfSense
directories:
output: release
files:
- dist/**/*
- "!node_modules"
- node_modules/node-gyp-build/**/*
- node_modules/bindings/**/*
- node_modules/file-uri-to-path/**/*
- node_modules/node-mac-permissions/**/*
- "!node_modules/node-mac-permissions/src"
- "!node_modules/node-mac-permissions/binding.gyp"
- "!src"
- "!scripts"
- "!release"
extraResources:
- from: assets/
to: assets/
filter: ["*.ico", "*.png", "*.icns"]
- from: ../surfsense_web/.next/standalone/surfsense_web/
to: standalone/
filter:
- "**/*"
- "!**/node_modules"
- from: ../surfsense_web/.next/standalone/surfsense_web/node_modules/
to: standalone/node_modules/
filter: ["**/*"]
- from: ../surfsense_web/.next/static/
to: standalone/.next/static/
filter: ["**/*"]
- from: ../surfsense_web/public/
to: standalone/public/
filter: ["**/*"]
asarUnpack:
- "**/*.node"
- "node_modules/node-gyp-build/**/*"
- "node_modules/bindings/**/*"
- "node_modules/file-uri-to-path/**/*"
- "node_modules/node-mac-permissions/**/*"
mac:
icon: assets/icon.icns
category: public.app-category.productivity
artifactName: "${productName}-${version}-${arch}.${ext}"
hardenedRuntime: true
gatekeeperAssess: false
entitlements: build/entitlements.mac.plist
entitlementsInherit: build/entitlements.mac.plist
notarize: true
extendInfo:
NSAccessibilityUsageDescription: "SurfSense uses accessibility features to bring the app to the foreground and interact with the active application when you use desktop assists."
NSScreenCaptureUsageDescription: "SurfSense uses screen capture so you can attach a selected region to chat (Screenshot Assist) or capture the full screen from the composer."
NSAppleEventsUsageDescription: "SurfSense uses Apple Events to interact with the active application."
# `surfsense://` scheme — install-time registration for LaunchServices.
CFBundleURLTypes:
- CFBundleURLName: com.surfsense.desktop
CFBundleURLSchemes:
- surfsense
target:
- target: dmg
arch: [x64, arm64]
- target: zip
arch: [x64, arm64]
win:
icon: assets/icon.ico
target:
- target: nsis
arch: [x64]
nsis:
oneClick: false
perMachine: false
allowToChangeInstallationDirectory: true
createDesktopShortcut: true
createStartMenuShortcut: true
linux:
icon: assets/icons/
category: Utility
artifactName: "${productName}-${version}-${arch}.${ext}"
mimeTypes:
- x-scheme-handler/surfsense
desktop:
entry:
Name: SurfSense
Comment: AI-powered research assistant
Categories: Utility;Office;
target:
- deb
- rpm
- AppImage