Simple Electron wrapper for https://teamwork.gtomato.com/.
Also bring in some interesting UI enhancements.
- Dark Mode
- Native Badges
- Emoji Keyboard
- Border-less Setting
- Bold Username Setting
- Bubble Display Date Setting
- Ping Fang HK Font Setting
- Noto Sans HK Font Setting
- JF Open Huninn Font setting
- Subpixel Antialiased Font Rendering Setting
- [] Secure Local Lock
- Draft Note Handling
- Add useful shortcuts
- Open Link to external URL
- Native Chrome Spell Check
- Simulate Chrome Right click handling
- Auto save downloaded file to ~/Download folder without prompting dialog
This project has spent extra efforts on achieving with the following electron settings that
mitigated the risk of malicious code injection when teamwork.gtomato.com
is compromised
new BrowserWindow({
width: 1024,
height: 1024,
webPreferences: {
// security reason on running remote website
nodeIntegration: false,
// security reason on running remote website
allowRunningInsecureContent: false,
// security reason on running remote website
enableRemoteModule: false,
// Create a browser window with a sandboxed renderer.
// With this option enabled, the renderer must communicate via IPC to the main process in order to access node APIs.
// https://www.electronjs.org/docs/api/sandbox-option
sandbox: true,
contextIsolation: true,
preload: path.join(app.getAppPath(), '../main/preload.js'),
},
})
A bare minimum project structure to get started developing with
electron-webpack
.
# Install
yarn install
# run application in development mode
yarn dev
# create production build.
# You need a developer certificate and apple id account(check sample.env)
yarn dist:dir
Code signing is hard.
To build a smooth experience of a electron app to the end-user, developers need to do Notarize in order to pass through the Mac GateKeeper.
This project use electron-notarize
. Details tutorial: https://kilianvalkhof.com/2019/electron/notarizing-your-electron-application/