diff --git a/flake.lock b/flake.lock index 17f8c0b..65fa7f5 100644 --- a/flake.lock +++ b/flake.lock @@ -71,16 +71,17 @@ "extra-package-copilot": { "flake": false, "locked": { - "lastModified": 1704710633, - "narHash": "sha256-qUl4weCMi2TPLwVokvH/I/pvN1bnB6HzjYgTiQqUpL8=", + "lastModified": 1704184504, + "narHash": "sha256-Vt+3OZM89dyLKjFnODWNHLDwrURXAtY5MFugyfEMbho=", "owner": "zerolfx", "repo": "copilot.el", - "rev": "09c600549f8c962db4dc3ad847ed936f22132fe1", + "rev": "1542d76909636bf8804dd9c770f28818a897cfdc", "type": "github" }, "original": { "owner": "zerolfx", "repo": "copilot.el", + "rev": "1542d76909636bf8804dd9c770f28818a897cfdc", "type": "github" } }, diff --git a/flake.nix b/flake.nix index 5c84900..ae3db9c 100644 --- a/flake.nix +++ b/flake.nix @@ -27,7 +27,9 @@ flake = false; }; extra-package-copilot = { - url = "github:zerolfx/copilot.el"; + # TODO remove rev when jsonrpc 1.0.23 hits emacs 29 + # https://github.com/copilot-emacs/copilot.el/issues/232 + url = "github:zerolfx/copilot.el/1542d76909636bf8804dd9c770f28818a897cfdc"; flake = false; }; extra-package-notmuch-notify = { diff --git a/packages/eaf.nix b/packages/eaf.nix new file mode 100644 index 0000000..136b16e --- /dev/null +++ b/packages/eaf.nix @@ -0,0 +1,75 @@ +{ melpaBuild +, fetchFromGitHub +, writeText +, pkgs + +# Elisp dependencies +, ctable +, deferred +, epc +, s + +# Native dependencies +, nodejs +, python3 +, wmctrl +, xdotool +}: + +let + # TODO: Package nodejs environment + + pythonEnv = ((python3.withPackages(ps: [ + ps.pyqtwebengine + ps.pyqt5 + ps.qrcode + ps.qtconsole + ps.retry + ps.pymupdf + # Wrap native dependencies in python env $PATH + pkgs.aria2 + ])).override { ignoreCollisions = true; }); + + node = "${nodejs}/bin/node"; + + pname = "eaf"; + version = "20210309.0"; + +in melpaBuild { + + inherit pname version; + + src = fetchFromGitHub { + owner = "emacs-eaf"; + repo = "emacs-application-framework"; + rev = "d55fef029d9a8fa529d2290f2da178dc8ff3d6f7"; + sha256 = "sha256-0UGeo4I4JB95A8W870x4IS6Syh6roMomjTTNQNGbS3E"; + }; + + dontConfigure = true; + dontBuild = true; + + postPatch = '' + + ''; + + installPhase = '' + mkdir -p $out/share/emacs/site-lisp/elpa/emacs-$pname-$version + cp -rv * $out/share/emacs/site-lisp/elpa/emacs-$pname-$version/ + ''; + + recipe = writeText "recipe" '' + (eaf + :repo "manateelazycat/emacs-application-framework" + :fetcher github + :files ("*") + ''; + + packageRequires = [ + ctable + deferred + epc + s + ]; + +} diff --git a/packages/packages.nix b/packages/packages.nix index 9dcad82..c2d0a86 100644 --- a/packages/packages.nix +++ b/packages/packages.nix @@ -102,4 +102,10 @@ pkgs: epkgs: let corfu-terminal ]); in - mainPackages ++ (builtins.attrValues extraPackages) +mainPackages + ++ (builtins.attrValues extraPackages) + # Playing with EAF + ++ [(pkgs.callPackage ./eaf.nix { + inherit (epkgs) melpaBuild; + inherit (melpaPackages) ctable deferred epc s; + })]