all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Akib Azmain Turja <akib@disroot.org>
To: Jose Antonio Ortega Ruiz <jao@gnu.org>
Cc: emacs-devel <emacs-devel@gnu.org>
Subject: Re: Implementing image support for kitty terminal
Date: Thu, 08 Sep 2022 15:13:59 +0600	[thread overview]
Message-ID: <87fsh2b548.fsf@disroot.org> (raw)
In-Reply-To: <87v8pz18wf.fsf@mail.jao.io> (Jose Antonio Ortega Ruiz's message of "Wed, 07 Sep 2022 16:50:08 +0100")

[-- Attachment #1: Type: text/plain, Size: 2681 bytes --]

Jose Antonio Ortega Ruiz <jao@gnu.org> writes:

> Hi,
>
> The kitty terminal emulator (which runs under X11 and wayland) offers a
> simple protocol for displaying images, fully described at
> <https://sw.kovidgoyal.net/kitty/graphics-protocol/>.  

Many text terminals also happen to show images.  But I think Kitty is a
video terminal that also happen to show texts.

>
> In a nutshell, it accepts an escape sequence that make it enter "graphic
> mode", followed by either encoded image data or a path to an image file
> or a shared memory location to display.  Among several other niceties,
> the protocol allows drawing to rectangles specified in cell units. As a
> simple example, the sequence:
>
>    <ESC>_Gf=100,t=f,c=50,r=100;<encoded /path/to/file.png><ESC>\
>
> would make kitty draw the image in file.png rescaling it to 50 columns
> and 100 rows.  By default, the current cursor position is used, but it's
> also possible to specify pixel offsets and sizes.
>
> At first sight, it looks as if adding support for this protocol to
> emacs's tty terminal (when kitty, or the capability (it seems other
> terminals support the same protocol) is detected) shouldn't be too
> complex, and with that, perhaps, provide direct support for the
> elisp-level image- API for these terminals (so that, for instance,
> doc-view or pdf-tools or displaying images in eww buffers would work out
> of the box).  Am i wrong?

IMHO, showing images by converting to text would be a better choice.  It
would also allow to show image on Linux console.  Because the idea you
propose would probably make the Emacs C source more complex.

>
> On a personal note, if that were possible it would put emacs on a kitty
> terminal on the same league as the full graphical version for my needs,
> with the added benefit of dramatically reduced RAM footprint, faster
> display and, last but not least, a truly great alternative to pgtk in
> wayland.  So, if the implementation is feasible, i'd be willing to help
> if needed.

You can use Xwayland to run X applications on Wayland.  But Emacs has a
pgtk port, so you shouldn't need that.

Is there any X server for sixel terminals (like Kitty)?  If there is any
then you can that to run graphical Emacs in terminal.

And about the RAM footprint, every new feature usually increases RAM
footprint; so implementing this would also probably increase Emacs's
memory footprint.

>
> Thanks,
> jao

-- 
Akib Azmain Turja

Find me on Mastodon at @akib@hostux.social.

This message is signed by me with my GnuPG key.  Its fingerprint is:

    7001 8CE5 819F 17A3 BBA6  66AF E74F 0EFA 922A E7F5

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

  parent reply	other threads:[~2022-09-08  9:13 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-07 15:50 Implementing image support for kitty terminal Jose Antonio Ortega Ruiz
2022-09-07 17:10 ` Tomas Hlavaty
2022-09-07 18:11 ` Eli Zaretskii
2022-09-07 18:49   ` Jose A Ortega Ruiz
2022-09-07 19:41     ` Eli Zaretskii
2022-09-07 20:09       ` Jose A Ortega Ruiz
2022-09-08  6:51         ` Eli Zaretskii
2022-09-07 20:11       ` Stefan Monnier
2022-09-08  5:30         ` Eli Zaretskii
2022-09-08 12:47         ` Gerd Möllmann
2022-09-08 13:54           ` Eli Zaretskii
2022-09-08 14:03             ` Gerd Möllmann
2022-09-08 14:24               ` Gerd Möllmann
2022-09-08 16:04                 ` Eli Zaretskii
2022-09-09  4:59                   ` Gerd Möllmann
2022-09-09 12:19                   ` Stefan Monnier
2022-09-09 12:53                     ` Eli Zaretskii
2022-09-09 12:59                     ` Gerd Möllmann
2022-09-09 13:17                       ` tomas
2022-09-09 14:10                         ` Gerd Möllmann
2022-09-09 14:20                           ` Eli Zaretskii
2022-09-09 14:27                             ` Gerd Möllmann
2022-09-09 15:12                               ` Stefan Monnier
2022-09-10  7:52                                 ` Gerd Möllmann
2022-09-10 14:13                                   ` Optimizing tty display update (was: Implementing image support for kitty terminal) Stefan Monnier
2022-09-10 14:17                                     ` Gerd Möllmann
2022-09-10 14:25                                       ` Eli Zaretskii
2022-09-10 14:29                                         ` Gerd Möllmann
2022-09-10 15:14                                         ` Optimizing tty display update Stefan Monnier
2022-09-11 10:21                                           ` Gerd Möllmann
2022-09-11  1:09                                         ` Po Lu
2022-09-11  4:44                                           ` Gerd Möllmann
2022-09-11  5:32                                             ` VCS forensics (was: Optimizing tty display update) Eli Zaretskii
2022-09-11  5:51                                               ` VCS forensics Gerd Möllmann
2022-09-10 16:54                                       ` Optimizing tty display update Lars Ingebrigtsen
2022-09-10  8:06                           ` Implementing image support for kitty terminal Kyaw Thu Soe
2022-09-09 13:27                       ` Stefan Monnier
2022-09-08 16:00               ` Eli Zaretskii
2022-09-09  4:58                 ` Gerd Möllmann
2022-09-07 18:56   ` Tomas Hlavaty
2022-09-07 19:51     ` Eli Zaretskii
2022-09-08 18:30       ` Tomas Hlavaty
2022-09-08 18:45         ` Eli Zaretskii
2022-09-08 19:45           ` Tomas Hlavaty
2022-09-08 20:33             ` Jose A Ortega Ruiz
2022-09-08 20:29         ` Jose A Ortega Ruiz
2022-09-08 20:52           ` Tomas Hlavaty
2022-09-08 21:47             ` Jose A Ortega Ruiz
2022-09-08 22:21               ` Óscar Fuentes
2022-09-08 22:46                 ` Tomas Hlavaty
2022-09-09  5:48                 ` Jose A Ortega Ruiz
2022-09-08 22:43               ` Tomas Hlavaty
2022-09-08 23:32                 ` Jose A Ortega Ruiz
2022-09-09  1:43                   ` Po Lu
2022-09-09  5:52                     ` Jose A Ortega Ruiz
2022-09-09  7:25                       ` Po Lu
2022-09-09  6:06                   ` Eli Zaretskii
2022-09-09  6:21                     ` Jose A Ortega Ruiz
2022-09-09  6:43                       ` Eli Zaretskii
2022-09-09 14:56                         ` Jose A Ortega Ruiz
2022-09-09 15:20                           ` chad
2022-09-09 15:34                             ` Jose A Ortega Ruiz
2022-09-10  2:56                               ` Tomas Hlavaty
2022-09-10  3:35                                 ` Visuwesh
2022-09-10  6:01                                   ` Tomas Hlavaty
2022-09-10  6:51                                     ` Po Lu
2022-09-10 19:52                                       ` Tomas Hlavaty
2022-09-09 15:25                           ` Stefan Monnier
2022-09-09 16:15                           ` Eli Zaretskii
2022-09-10  0:45                             ` Jose A Ortega Ruiz
2022-09-10  6:15                               ` Eli Zaretskii
2022-09-09  1:41               ` Po Lu
2022-09-09  5:53                 ` Jose A Ortega Ruiz
2022-09-22 17:31                 ` Memory problems update (was: Implementing image support for kitty terminal) Jose Antonio Ortega Ruiz
2022-09-23  0:29                   ` Memory problems update Po Lu
2022-09-23  1:11                     ` Jose A Ortega Ruiz
2022-09-23  6:08                       ` Eli Zaretskii
2022-09-23 21:46                         ` Jose A Ortega Ruiz
2022-09-23 21:57                       ` Jose A Ortega Ruiz
2022-09-23 23:32                         ` Jose A Ortega Ruiz
2022-09-24  0:20                         ` Po Lu
2022-09-24 12:59                           ` Jose A Ortega Ruiz
2022-09-23  5:33                   ` Memory problems update (was: Implementing image support for kitty terminal) Eli Zaretskii
2022-09-23 22:01                     ` Jose A Ortega Ruiz
2022-09-24  6:25                       ` Eli Zaretskii
2022-09-24  6:33                         ` Memory problems update Po Lu
2022-09-24 12:53                           ` Jose A Ortega Ruiz
2022-09-09  1:40           ` Implementing image support for kitty terminal Po Lu
2022-09-09  5:56             ` Jose A Ortega Ruiz
2022-09-07 19:59     ` Jose A Ortega Ruiz
2022-09-08 11:13       ` Akib Azmain Turja
2022-09-08 13:25         ` Jose A Ortega Ruiz
2022-09-08 19:26         ` Tomas Hlavaty
2022-09-08 19:15       ` Tomas Hlavaty
2022-09-08 19:30         ` Eli Zaretskii
2022-09-08 20:03           ` Tomas Hlavaty
2022-09-09  5:43             ` Eli Zaretskii
2022-09-10  3:02               ` Tomas Hlavaty
2022-09-08 10:59     ` Akib Azmain Turja
2022-09-08 13:44       ` Eli Zaretskii
2022-09-08  9:13 ` Akib Azmain Turja [this message]
2022-09-08 19:31   ` Tomas Hlavaty
  -- strict thread matches above, loose matches on Subject: below --
2022-09-10 10:15 xenodasein--- via Emacs development discussions.
2022-09-10 10:38 ` Eli Zaretskii
2022-09-10 11:06   ` xenodasein--- via Emacs development discussions.
2022-09-10 11:13   ` Akib Azmain Turja

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87fsh2b548.fsf@disroot.org \
    --to=akib@disroot.org \
    --cc=emacs-devel@gnu.org \
    --cc=jao@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.