Need a Linux impl for https://github.com/electron/electron/pull/12485
atom/browser/native_window.h
void NotifyWindowLeaveFullScreen();
  void NotifyWindowEnterHtmlFullScreen();
  void NotifyWindowLeaveHtmlFullScreen();
  void NotifyWindowAlwaysOnTopChanged();
  void NotifyWindowExecuteAppCommand(const std::string& command);
  void NotifyTouchBarItemInteraction(const std::string& item_id,
                                     const base::DictionaryValue& details);
  void NotifyNewWindowForTab();
#if defined(OS_WIN)
  void NotifyWindowMessage(UINT message, WPARAM w_param, LPARAM l_param);
#endif
  void AddObserver(NativeWindowObserver* obs) { observers_.AddObserver(obs); }
  void RemoveObserver(NativeWindowObserver* obs) {
    observers_.RemoveObserver(obs);
  }
  views::Widget* widget() const { return widget_.get(); }
  views::View* content_view() const { return content_view_; }
  bool has_frame() const { return has_frame_; }
  void set_has_frame(bool has_frame) { has_frame_ = has_frame; }
  bool transparent() const { return transparent_; }
  bool enable_larger_than_screen() const { return enable_larger_than_screen_; }
  NativeWindow* parent() const { return parent_; }
  bool is_modal() const { return is_modal_; }
  std::list<NativeBrowserView*> browser_views() const { return browser_views_; }
 protected:
  NativeWindow(const mate::Dictionary& options, NativeWindow* parent);
  
  views::Widget* GetWidget() override;
  const views::Widget* GetWidget() const override;
  void set_content_view(views::View* view) { content_view_ = view; }