Skip to content
Andy Stewart edited this page Aug 20, 2025 · 15 revisions

Nix Repo

EAF has support Nix repo, you need use nixpkgs-unstable or nixos-unstable channel, then install EAF by follow command:

emacs-gtk.pkgs.withPackages (epkgs: with epkgs; [ (eaf.withApplications [ eaf-browser eaf-pdf-viewer ]) ]) 

emacs

Since NixOS 22.05 emacs uses the Lucid toolkit by default instead of GTK. Users who still wish to remain using GTK can do so by using emacs-gtk.

environment.systemPackages = with pkgs; [ emacs-gtk ];

If you need a user service for the Emacs daemon, use the following code instead

services.emacs = { enable = true; package = pkgs.emacs-gtk; };

for system dependencies

Edit /etc/nixos/configuration.nix

environment.systemPackages = with pkgs; [ git nodejs wmctrl xdotool # eaf-browser aria # eaf-file-manager fd ];

You can also use nix-env to install,for example nix-env -iA nixos.fd

for python dependencies

with pkgs; let my-python-packages = python-packages: with python-packages; [ pandas requests sexpdata tld pyqt6 pyqt6-sip pyqt6-webengine epc lxml # for eaf qrcode # eaf-file-browser pysocks # eaf-browser pymupdf # eaf-pdf-viewer pypinyin # eaf-file-manager psutil # eaf-system-monitor retry # eaf-markdown-previewer markdown ]; python-with-my-packages = python3.withPackages my-python-packages;

pyqtwebengine in 20.09 channel seems broken,upgrading the system or add unstable channel can solve the problem if you use NixOS 20.09

For error: qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in "",it's not necessary to install qt6.full, just set environment variables in configuration.nix

 environment.variables = { QT_QPA_PLATFORM_PLUGIN_PATH = "${pkgs.qt6.qtbase.outPath}/lib/qt-6/plugins"; };

VDPAU driver with OpenGL/VAAPI backend [optional]

 hardware.opengl = { enable = true; driSupport = true; extraPackages = with pkgs; [ libvdpau-va-gl ]; };

Install/Update EAF applications

./install-eaf.py --ignore-core-deps
Clone this wiki locally