esc
Externally Scriptable Editor
git clone git://mccd.space/esc
| Log | Files | Refs | README |
commit 32216b80ea485ed35f4ada77807810c02f82b04d parent 1746c4ef0b62cf10fd5521e760246b0acb6880fe Author: Marc Coquand <marc@coquand.email> Date: Mon, 23 Feb 2026 15:46:06 +0100 Add fuse history spec Diffstat:
| A | IPC-fuse.md | | | 24 | ++++++++++++++++++++++++ |
1 file changed, 24 insertions(+), 0 deletions(-) diff --git a/IPC-fuse.md b/IPC-fuse.md @@ -0,0 +1,24 @@ +# IPC via FUSE + +So the initial idea was to use FIFOs with commands, but it could be even better if the buffer used IPC via FUSE instead. That would allow inotify and stuff to work. + +It could also allow two buffers to edit the same window by "symlinking" it. + +What I love about this approach is how unbelievably easy it would be to implement stuff like replace certain things. Then certain things would be exposed in `XDG_RUNTIME_DIR`. + +So in `XDG_RUNTIME_DIR`, each instance of esc should mount for their PID + +``` +/esc/$PID/cursor current selection +/esc/$PID/viewport currently visible text? +/esc/$PID/buffer/X/body full buffer body +/esc/$PID/buffer/X/undo global undo history +/esc/$PID/buffer/X/path absolute path to the file +/esc/$PID/buffer/X/ranges Highlighting +``` + +This is particularly insteresting because it allows another process to edit it by symlinking. Before exiting, if needed, ownership would be copied over. + +It also makes it so that you just sed the file to change its content. + +Since FUSE is used, it should gracefully shutdown and unmount on exit.