NixOS - emacs-eaf/emacs-application-framework GitHub Wiki

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