Files
solidtime-desktop/electron-builder.yml
2026-04-16 14:23:37 +02:00

133 lines
4.2 KiB
YAML

appId: io.solidtime.desktop
productName: solidtime
directories:
buildResources: build
files:
- '!**/.vscode/*'
- '!src/*'
- '!electron.vite.config.{js,ts,mjs,cjs}'
- '!{.eslintignore,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}'
- '!{.env,.env.*,.npmrc,pnpm-lock.yaml}'
- '!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}'
asarUnpack:
- resources/**
- node_modules/@miniben90/**
- node_modules/better-sqlite3/**
extraResources:
- from: drizzle
to: drizzle
- from: build/vc_redist.arm64.exe
to: vc_redist.arm64.exe
filter:
- '**/*'
protocols:
name: solidtime
schemes:
- solidtime
win:
publish:
- provider: github
channel: latest-${arch}
executableName: solidtime
target:
- nsis
nsis:
include: build/installer.nsh
artifactName: ${name}-setup-${arch}.${ext}
shortcutName: ${productName}
uninstallDisplayName: ${productName}
createDesktopShortcut: always
mac:
publish:
- provider: github
channel: latest-${arch}
entitlementsInherit: build/entitlements.mac.plist
target: default
extendInfo:
- NSCameraUsageDescription: Application requests access to the device's camera.
- NSMicrophoneUsageDescription: Application requests access to the device's microphone.
- NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder.
- NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder.
- NSScreenCaptureUsageDescription: Application requests access to screen recording to track window activity for time tracking purposes.
notarize: true
dmg:
artifactName: ${name}-${arch}.${ext}
linux:
artifactName: ${name}-${arch}.${ext}
icon: build/icon.icns
executableName: solidtime
target:
- deb
- tar.gz
- rpm
desktop:
entry:
Name: solidtime
MimeType: x-scheme-handler/solidtime
maintainer: solidtime <hello@solidtime.io>
category: Utility
mimeTypes:
- x-scheme-handler/solidtime
flatpak:
# Flatpak is not in the default linux.target list because building it
# requires `flatpak` and `flatpak-builder` on the host — trigger builds
# explicitly via `npm run build:linux:flatpak`.
runtime: org.freedesktop.Platform
runtimeVersion: '25.08'
sdk: org.freedesktop.Sdk
base: org.electronjs.Electron2.BaseApp
baseVersion: '25.08'
useWaylandFlags: true
category: Utility
finishArgs:
# --- Defaults matching electron-builder's built-in Flatpak config ---
- --socket=wayland
- --socket=x11
- --share=ipc
- --device=dri
- --socket=pulseaudio
- --filesystem=home
- --share=network
- --talk-name=org.freedesktop.Notifications
# --- solidtime-specific additions ---
# KWin activity backend (KDE Plasma Wayland): the persistent KWin script
# is loaded via org.kde.KWin.Scripting and calls back into a DBus service
# exported by this process (see src/main/activity/kwinBackend.ts).
- --talk-name=org.kde.KWin
- --own-name=io.solidtime.desktop.ActivityTracker
# System tray icon via SNI / libappindicator — KDE and GNOME
# implementations both expose these well-known names.
- --talk-name=org.kde.StatusNotifierWatcher
- --talk-name=com.canonical.AppMenu.Registrar
- --talk-name=org.freedesktop.portal.Desktop
deb:
depends:
- libgtk-3-0 | libgtk-3-0t64
- libnotify4
- libnss3
- libxss1
- libxtst6
- xdg-utils
- libatspi2.0-0 | libatspi2.0-0t64
- libuuid1
- libsecret-1-0
- libgbm1
- libasound2 | libasound2t64
- libegl1
- libdrm2
- libx11-xcb1
- libxcb-dri3-0
- libxcomposite1
- libxdamage1
- libxfixes3
- libxrandr2
rpm:
fpm:
- --rpm-rpmbuild-define
- _build_id_links none
appImage:
artifactName: ${name}.${ext}
npmRebuild: true
publish:
provider: github