How to change app icon in electron

Issue #66

Generate icns

  • Generate .iconset
  • Run iconutil -c icns "Icon.iconset". Note that icon names must be first letter lowsercased, and use _ instead of -

icns

Use icns

  • In main.js, specify icon
1
2
3
4
5
win = new BrowserWindow({
width: 800,
height: 600,
icon: __dirname + '/Icon/Icon.icns'
})

You can also use helper url methods

1
2
3
4
5
6
7
8
const path = require('path')
const url = require('url')

const iconUrl = url.format({
pathname: path.join(__dirname, 'Icon/Icon.icns'),
protocol: 'file:',
slashes: true
})

If app icon is not updated

  • I get a problem that electron always shows default app icon. I tried using png, NativeImage, different icon sizes but still the problem. When I use electron-packager to make release build, the icon shows correctly, so it must be because of Electron caching or somehow 😠
  • Go to node_modules -> electron -> dist, right click on Electron, choose View Info
  • Drag another icns into the icon on the top left

info

Release with electron-packager

  • icon must be specified with __dirname (we already did) for electron-packager to pick up correct icons

Updated at 2020-09-26 18:02:30

Comments