aboutsummaryrefslogtreecommitdiff
path: root/README
blob: ec0800a661181ae4a40f54d7c90598d0b68adad1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# -*- mode: org; org-html-head-include-default-style: nil; org-html-postamble: nil; after-save-hook: org-md-export-to-markdown; -*-
#+OPTIONS: toc:nil num:nil
* nyxt.el
=nyxt.el= consists of custom logic to interact with [[https://nyxt.atlas.engineer/][Nyxt]] from Emacs. In contrast to other similar packages, it doesn't bundle any Nyxt configuration for you by default. Instead, it aims at providing a rich feature set of custom interactive functions via the =nyxt-run= entry function. This package requires the [[https://github.com/joaotavora/sly][SLY]] Emacs package to interact with the underlying Nyxt Lisp image.

To install the package, simply point to the package in your =load-path=.

#+begin_src elisp
(add-to-list 'load-path "/path/to/nyxt.el")
#+end_src

If you'd like to contribute to the package and get the project set up quickly, it's highly encouraged you install the [[https://guix.gnu.org/][GNU Guix]] package manager and start developing on the local checkout by invoking the following commands:

#+begin_src sh
cd /path/to/nyxt.el
guix shell --pure
#+end_src

An example configuration might look like this:

#+begin_src elisp
(define-key global-map (kbd "C-c y") 'nyxt-map)
(with-eval-after-load 'nyxt
  (setq nyxt-path (executable-find "guix"))
  (setq nyxt-startup-flags '("shell" "-D" "-f" "path/to/nyxt/build-scripts/nyxt.scm" "--" "path/to/nyxt/nyxt" "-e" "(start-slynk)")))
#+end_src

Above, we set the default bindings included in the =nyxt-map= to the ~C-c y~ global binding and we modify the executable path and the flags supplied to it. By default, this package will spawn a Nyxt process with the =-e (start-slynk)= flag so it can launch and connect to a Slynk process, but you're free to change these flags, such as if you're developing on Nyxt using [[https://guix.gnu.org/manual/en/html_node/Invoking-guix-shell.html][guix shell]].