Skip to content
lhpfvs edited this page Mar 12, 2021 · 11 revisions

Current status of eaf-mac-port

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.
  • The usage of multiple frames has not been considered, so only opening one Emacs frame works well.
  • When dragging and resizing Emacs frame with mouse, EAF window won’t change simultaneously.
  • Fullscreen display in website may cause the mouse moving to the corner.
  • 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.

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