docs: add installation and usage instructions for elpaca, straight.el, and other managers

This commit is contained in:
2026-06-10 04:16:59 -04:00
parent 44409a4793
commit 6d8727ea05
+130 -2
View File
@@ -2,7 +2,7 @@
Noise is a Signal Messenger client in Elisp for Emacs powered by https://github.com/AsamK/signal-cli
Its ultimate goal is to provide a fast and efficient user interfae for Signal chats.
Its ultimate goal is to provide a fast and efficient user interface for Signal chats.
** Tech stack
The tech stack is Elisp and SQLite (for storing conversations)
@@ -22,6 +22,134 @@ We follow Emacs conventions for keybindings with the addition of evil support ou
** User Interface
See the file signal-emacs-ui.html for user interface mockups we're targetting.
See the file signal-emacs-ui.html for user interface mockups we're targeting.
** Installation
*** signal-cli
Install =signal-cli= and start the daemon in JSON-RPC mode:
#+begin_src shell
# Install signal-cli (example using the official tarball)
wget https://github.com/AsamK/signal-cli/releases/latest/download/signal-cli.tar.gz
tar xf signal-cli.tar.gz
# Register or link your device
signal-cli link -n "emacs-noise"
# Start the daemon on default port 9128
signal-cli daemon --receive-mode=manual
#+end_src
*** emacs-sqlite3-api
Noise requires the =emacs-sqlite3-api= library for SQLite access. Install it with your
package manager of choice, then set up Noise itself.
*** Noise Package
Below are recipes for several popular Emacs package managers.
**** elpaca
#+begin_src elisp
(use-package noise
:ensure (noise
:host github
:repo "git.roo.lol/jbrechtel/noise"
:protocol https)
:config
;; Optional: set a custom signal-cli address
;; (setq noise-signal-cli-address "http://localhost:9128")
;; Start Noise automatically
(noise-mode 1))
#+end_src
Or, if you prefer the =elpaca= recipe directly without =use-package=:
#+begin_src elisp
(elpaca (noise :host github
:repo "git.roo.lol/jbrechtel/noise"
:protocol https))
(require 'noise)
(noise-mode 1)
#+end_src
**** straight.el
#+begin_src elisp
(straight-use-package
'(noise :type git :host github
:repo "git.roo.lol/jbrechtel/noise"
:protocol https))
(require 'noise)
(noise-mode 1)
#+end_src
**** Quelpa
#+begin_src elisp
(quelpa
'(noise :fetcher github
:repo "git.roo.lol/jbrechtel/noise"))
(require 'noise)
(noise-mode 1)
#+end_src
**** Manual / package-vc-install (Emacs 29+)
#+begin_src elisp
(package-vc-install "https://git.roo.lol/jbrechtel/noise")
(require 'noise)
(noise-mode 1)
#+end_src
**** Manual clone
#+begin_src shell
git clone https://git.roo.lol/jbrechtel/noise ~/.emacs.d/manual-packages/noise
#+end_src
Then in your init file:
#+begin_src elisp
(add-to-list 'load-path "~/.emacs.d/manual-packages/noise")
(require 'noise)
(noise-mode 1)
#+end_src
** Usage
Once signal-cli is running and Noise is installed:
- =M-x noise-mode= — toggle the Noise client (opens the chat list)
- =M-x noise-check-connection= — test connectivity to signal-cli
*** Keybindings
**** Chat list (*signal* buffer)
| Key | Action |
|-------+---------------------------|
| =n= | Next chat |
| =p= | Previous chat |
| =RET= | Open selected chat |
| =m= | Mark chat as read |
| =g= | Refresh chat list |
| =/= | Filter chats |
| =q= | Quit chat list window |
| =C-x b= | Switch conversation (minibuffer) |
**** Minibuffer switcher
=M-x noise-switcher= (or =C-x b= from the chat list) opens a fuzzy
completion interface showing all conversations and contacts. Start
typing to narrow, then press =RET= to open the selected conversation.