Need a Linux impl for https://github.com/electron/electron/pull/12485
atom/browser/api/atom_api_top_level_window.cc
&TopLevelWindow::UnhookAllWindowMessages)
      .SetMethod("setThumbnailClip", &TopLevelWindow::SetThumbnailClip)
      .SetMethod("setThumbnailToolTip", &TopLevelWindow::SetThumbnailToolTip)
      .SetMethod("setAppDetails", &TopLevelWindow::SetAppDetails)
#endif
      .SetProperty("id", &TopLevelWindow::GetID);
}
}  
}  
namespace {
using atom::api::TopLevelWindow;
void Initialize(v8::Local<v8::Object> exports,
                v8::Local<v8::Value> unused,
                v8::Local<v8::Context> context,
                void* priv) {
  v8::Isolate* isolate = context->GetIsolate();
  TopLevelWindow::SetConstructor(isolate, base::Bind(&TopLevelWindow::New));
  mate::Dictionary constructor(isolate, TopLevelWindow::GetConstructor(isolate)
                                            ->GetFunction(context)
                                            .ToLocalChecked());
  constructor.SetMethod("fromId",
                        &mate::TrackableObject<TopLevelWindow>::FromWeakMapID);
  constructor.SetMethod("getAllWindows",
                        &mate::TrackableObject<TopLevelWindow>::GetAll);
  mate::Dictionary dict(isolate, exports);
  dict.Set("TopLevelWindow", constructor);
}
}  
NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_top_level_window, Initialize)