- Electron version: 1.1.2+
- Operating system: ubuntu 16.04

I've seen a lot of closed issues about icons not properly working in ubuntu and I've spent a great deal of time trying to figure out exactly what's going on. This is the fruit of that effort, which should hopefully disprove the requirement for a .desktop file to make icons work in ubuntu:

I've packaged apps in each version of Electron past 1.0 and discovered the icon issue appears in 1.1.2 and onward.

In any version of Electron prior to 1.1.2 it's possible to set any png as your icon and have it display in the Unity dock using this method:

```
let win = new BrowserWindow ({ icon: __dirname + '/path/to/icon.png' });
```

But once you move into 1.1.2+ territory the icon will not display. There have been a few past issues opened on this and they were closed when it was mentioned a .desktop file is required, but I've discovered that it is possible to still display an icon under specific conditions. (This is where things get quirky)

I tested a few different icons, with different file names, file sizes and resolutions and discovered that the icon will display in ubuntu if:
1. The filename is icon.png (I've tried other file names and it would break, but perhaps others work)
2. The image is 128x128 or less (Sometimes 256x256 works, but in most cases it doesn't)

I can't really explain how or why this is the case but it's definitely quirky.

Looking at the changelog for 1.1.2 I noticed there are some tweaks to icons, so I can imagine it was something there.

Also of note, this was without using nativeImage. I wasn't able to get icons working as native images in 1.1.2+ either.

Hopefully this information will be helpful in resolving the issue, and for now at least 128x128 icons will work in ubuntu without any substantial tweaks to the development or build process.

atom/browser/api/atom_api_window.cc
window_->SetSkipTaskbar(skip);
}
void Window::SetKiosk(bool kiosk) {
  window_->SetKiosk(kiosk);
}
bool Window::IsKiosk() {
  return window_->IsKiosk();
}
void Window::SetBackgroundColor(const std::string& color_name) {
  window_->SetBackgroundColor(color_name);
}
void Window::SetHasShadow(bool has_shadow) {
  window_->SetHasShadow(has_shadow);
}
bool Window::HasShadow() {
  return window_->HasShadow();
}
void Window::FocusOnWebView() {
  window_->FocusOnWebView();
}
void Window::BlurWebView() {
  window_->BlurWebView();
}
bool Window::IsWebViewFocused() {
  return window_->IsWebViewFocused();
}
void Window::SetRepresentedFilename(const std::string& filename) {
  window_->SetRepresentedFilename(filename);
}
std::string Window::GetRepresentedFilename() {