[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Reading from pipes directly with a process-filter

From: Peter
Subject: Re: Reading from pipes directly with a process-filter
Date: Fri, 13 Jan 2023 22:51:04 +0100

>> I've been slowly sliding into using Emacs more and more like a Lisp OS,
>> so one thing that has come up is directly reading data from pipes or
>> special devices (like /dev/input/event...). I can do that fine by
>> running `start-process' with `cat /dev/input/event..', however that
>> seems a bit wasteful. Is there any way to *directly* open such a file
>> and put a process-filter in front of it?
> Did you try to use make-pipe-process?

No, but from my understanding, this will also not read the file
directly, but run an extra process.

>> Semi-relatedly, is there any support for `fnctl' or `ioctl' in elisp, so
>> that I could even *write* to those special devices?
> Doesn't a simple 'write' (a.k.a. write-region in Emacs) work?  If not,
> can you show a recipe that fails with all the details?

For example https://www.kernel.org/doc/html/v4.12/input/uinput.html
shows how to write events to uinput. The function emit does the writing
(the encoding can easily be done with bindat in Emacs), however it isn't
sufficient to just *write* events, but some metadata must be set via
ioctl (yea, "everything is a file" ... except for so many things...).

This is not a "normal" use-case for Emacs, however I've been playing
around with running Emacs on the Pinephone, and this would help with the
vibrator for notifications, for example.

Of course this could also be done in C code from a module, but if Emacs
already somehow has support for doing this "directly", that'd be even
greater ;)

Thanks for taking the time to think about this!

Greetings, Peter

reply via email to

[Prev in Thread] Current Thread [Next in Thread]