Skip to content
lhpfvs edited this page Apr 14, 2021 · 11 revisions

Current status

Because QWindow Reparent technology doesn’t work on macOS as the same way on Linux or Windows, we currently use the StayOnTop QWindow to replace it. Every EAF window is placed at the right position above the Emacs window when displayed. A big limitation is that when switching to another application, a StayOnTop window will cover the application window. So we just create a temporary buffer to replace the EAF buffer when Emacs loses focus, and switch back to the previous window configuration when Emacs gets the focus again. Also using multiple Emacs frames is currently not supported.

Install

Please manually install dependencies from Homebrew and pip3. We will add an install-script soon.

Known issues

  • When Emacs is out of focus, EAF buffers can’t be displayed.
  • Opening only one Emacs frame works well. Multiple frames support has been added, but changing focus is related to Emacs version and personal config, so use this feature carefully and report bugs.
  • When dragging and resizing Emacs frame with mouse, EAF window won’t change simultaneously.
  • PyQtWebEngine installed by pip isn’t compiled with private codec support, so some video on the website can’t be played.
  • There may be problem using macOS native fullscreen.
  • Mac with ARM chip has not been tested.
  • Showing Emacs Mac Port’s Tab-bar(not Tab bar inside Emacs’s frame) results in wrong window position. Showing tool bar and tab-bar together or just closing tab-bar would fix the problem.
  • Child-frame might be covered by EAF window.

Fix the Privacy

EAF requires the accessibility to Camera and Bluetooth in some scenes, otherwise it will crash. Open the System Preferences application in macOS, in Security & Privacy panel, allow Emacs.app to use bluetooth. If you want to use the camera, open the Emacs.app package, and then add “Privacy - Camera Usage Description” key to Info.plist file. Google requires bluetooth access when logging, so make sure your Emacs have access to the bluetooth before logging into Google Account.

Todo

  • Better handling of multiple Emacs frames.
  • Let EAF buffer display when Emacs window is not covered by other application’s window.

If you find out the api to reparent EAF window to Emacs, please let us know.

Clone this wiki locally