There are 2 main parts of the app:
- renderer: this is the HTML/Javascript-based UI rendered within the Electron container. This runs Vue.js, a React-like Javascript framework for rendering front-end.
- main: includes the main app (written in Electron). Handles keyboard shortcuts, brings up the UI and overlays.
Note that these 2 both depend on each other, and one cannot run without the other.
The most up-to-date instructions can always be derived from CI:
Here's what that looks like as of 2023-12-03.
cd renderer
npm install
npm run make-index-files
npm run dev
# In a second shell
cd main
npm install
npm run dev
cd renderer
npm install
npm run make-index-files
npm run build
cd ../main
npm run build
# We want to sign with a distribution certificate to ensure other users can
# install without errors
CSC_NAME="Certificate name in Keychain" yarn package
- Commit all changes
- Bump version in
main/package.json
npm i
in renderer & main (updatepackage-lock.json
with new version)npm run build
in renderer & main- Stage & commit bumped version
git push
git tag vX.X.X
git push origin vX.X.X
- Open release page, create release with tag & title as text of tag & save as draft
sh testUpdate.sh
Read the contents of testUpdate.sh
to understand what it does. Running random scripts from the internet is not recommended so you really should read the code before running it.