unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion]
@ 2002-02-25  0:09 Richard Stallman
  2002-02-25  9:51 ` Kim F. Storm
  2002-02-25 20:47 ` Jason Rumney
  0 siblings, 2 replies; 16+ messages in thread
From: Richard Stallman @ 2002-02-25  0:09 UTC (permalink / raw)


Do people like change?

------- Start of forwarded message -------
From: Ulrich Neumerkel <ulrich@a0.complang.tuwien.ac.at>
To: bug-gnu-emacs@gnu.org
Subject: blink-cursor improvement suggestion
Sender: bug-gnu-emacs-admin@gnu.org
Date: Sun, 24 Feb 2002 18:21:37 +0100 (MET)

Cursor blinking in 21 is rather irritating to look at, because the
cursor vanishes completely making it difficult to remember its precise
position.  E.g. when comparing two windows.

On the other hand blinking is useful for locating the cursor in large
areas or when a bar is used.

It appears less distracting, if the cursor changes its background
color instead of vanishing completely.

Here is an attempt to show the
difference.  C-x C-e the following functions alternatively.
(I tried it in GNU Emacs 21.2.50.1)

(Certainly this would have to go into internal-show-cursor to be
efficient and reliable)


(defvar cursor-on t)

(modify-frame-parameters (selected-frame) '((cursor-type . bar)))
(modify-frame-parameters (selected-frame) '((cursor-type . box)))

(defun blink-cursor-timer-function ()
  "Improved but flickering timer function of timer `blink-cursor-timer'."
  (setq cursor-on (not cursor-on))
  (set-face-background
   'cursor
   (if cursor-on "black" "gray50")))

(defun blink-cursor-timer-function ()
  "Original timer function of timer `blink-cursor-timer'."
  (internal-show-cursor nil (not (internal-show-cursor-p))))


_______________________________________________
Bug-gnu-emacs mailing list
Bug-gnu-emacs@gnu.org
http://mail.gnu.org/mailman/listinfo/bug-gnu-emacs
------- End of forwarded message -------

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion]
  2002-02-25  0:09 [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion] Richard Stallman
@ 2002-02-25  9:51 ` Kim F. Storm
  2002-02-25 20:55   ` Jason Rumney
  2002-02-25 20:47 ` Jason Rumney
  1 sibling, 1 reply; 16+ messages in thread
From: Kim F. Storm @ 2002-02-25  9:51 UTC (permalink / raw)
  Cc: emacs-devel

Richard Stallman <rms@gnu.org> writes:

> Do people like change?
> 
> From: Ulrich Neumerkel <ulrich@a0.complang.tuwien.ac.at>
> Subject: blink-cursor improvement suggestion
> To: bug-gnu-emacs@gnu.org
> Date: Sun, 24 Feb 2002 18:21:37 +0100 (MET)
> 

Yes, I think it is an improvement that the cursor never disappears.
However, as implemented, it doesn't work, as it doesn't preserve the
current cursor color, but uses two fixed colors.

I have code which changes the color of the cursor depending on the
current state of the buffer (e.g. read-only, overwrite mode), and
the supplied code works very poorly with that.

I think the code should remember the `true' background color of the
cursor and restore that.  In addition, it should notice if the
cursor color has changed, so it can correctly restore it.

Something like this:

(defvar blink-cursor-defined-color nil)
(defvar blink-cursor-current-color nil)
(defvar blink-cursor-alt-color "gray50")
(defvar blink-cursor-logical-off   nil)

(defun blink-cursor-timer-function ()
  "Improved but flickering timer function of timer `blink-cursor-timer'."
  (let ((bg (face-background 'cursor)))
     (when (not blink-cursor-defined-color)
        (setq blink-cursor-defined-color bg)
        (setq blink-cursor-current-color bg)
        (setq blink-cursor-logical-off t))
     (when (not (equal bg blink-cursor-current-color))
        (setq blink-cursor-defined-color bg))
     (setq blink-cursor-logical-off (not blink-cursor-logical-off))
     (setq blink-cursor-current-color 
        (if blink-cursor-logical-off
             blink-cursor-alt-color
           blink-cursor-defined-color))
     (set-face-background 'cursor blink-cursor-current-color)))

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk


_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion]
  2002-02-25  0:09 [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion] Richard Stallman
  2002-02-25  9:51 ` Kim F. Storm
@ 2002-02-25 20:47 ` Jason Rumney
  2002-02-25 21:19   ` Kim F. Storm
  1 sibling, 1 reply; 16+ messages in thread
From: Jason Rumney @ 2002-02-25 20:47 UTC (permalink / raw)
  Cc: emacs-devel

Richard Stallman <rms@gnu.org> writes:

> Do people like change?

In general, I think people are resistant to change, but I don't think
that is what you meant to ask :-)

I was surprised by how much I liked the appearance, when I read the
description I didn't think I would.  This would probably have to be
changed at the C code level though, to avoid the side effect of
inactive cursors also blinking.

I think a "cursor-blink" face which inherits from default face could
be used, and instead of clearing the cursor to blink it, we could
redraw it with "cursor-blink" and "cursor" alternately.


-- 
Jason Rumney


_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion]
  2002-02-25  9:51 ` Kim F. Storm
@ 2002-02-25 20:55   ` Jason Rumney
  0 siblings, 0 replies; 16+ messages in thread
From: Jason Rumney @ 2002-02-25 20:55 UTC (permalink / raw)
  Cc: rms, emacs-devel

storm@cua.dk (Kim F. Storm) writes:

> Yes, I think it is an improvement that the cursor never disappears.
> However, as implemented, it doesn't work...

I think that code was only intended as a demonstration, not the final
version.

> I think the code should remember the `true' background color of the
> cursor and restore that.  In addition, it should notice if the
> cursor color has changed, so it can correctly restore it.
> 
> Something like this:

I think trying to do this by changing the background color of cursor
face is the wrong thing, because it results in the cursors in
inactive windows also blinking, which is distracting. The only way to
do this properly is in xterm.c (etc) where the current blinking is
done, probably by using two separate faces.

-- 
Jason Rumney


_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion]
  2002-02-25 20:47 ` Jason Rumney
@ 2002-02-25 21:19   ` Kim F. Storm
  2002-02-26 11:02     ` Kim F. Storm
  2002-02-26 20:15     ` Richard Stallman
  0 siblings, 2 replies; 16+ messages in thread
From: Kim F. Storm @ 2002-02-25 21:19 UTC (permalink / raw)
  Cc: rms, emacs-devel

Jason Rumney <jasonr@gnu.org> writes:

> Richard Stallman <rms@gnu.org> writes:
> 
> > Do people like change?
> 
> I was surprised by how much I liked the appearance, when I read the
> description I didn't think I would.  This would probably have to be
> changed at the C code level though, to avoid the side effect of
> inactive cursors also blinking.

I noticed the same thing.  Quite annoying.

> 
> I think a "cursor-blink" face which inherits from default face could
> be used, and instead of clearing the cursor to blink it, we could
> redraw it with "cursor-blink" and "cursor" alternately.

I'd second that.

Alternatively, it could "blink" between the hollow and normal cursor
shapes.  Then we don't need an extra face.

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk


_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion]
  2002-02-25 21:19   ` Kim F. Storm
@ 2002-02-26 11:02     ` Kim F. Storm
  2002-02-26 11:46       ` Juanma Barranquero
                         ` (2 more replies)
  2002-02-26 20:15     ` Richard Stallman
  1 sibling, 3 replies; 16+ messages in thread
From: Kim F. Storm @ 2002-02-26 11:02 UTC (permalink / raw)


storm@cua.dk (Kim F. Storm) writes:

> Alternatively, it could "blink" between the hollow and normal cursor
> shapes.  Then we don't need an extra face.

Below you'll find a patch which does this (when the block cursor is used).

What do you think?


Index: xterm.c
===================================================================
RCS file: /cvs/emacs/src/xterm.c,v
retrieving revision 1.707
diff -c -r1.707 xterm.c
*** xterm.c	23 Feb 2002 16:33:00 -0000	1.707
--- xterm.c	26 Feb 2002 10:59:31 -0000
***************
*** 11640,11647 ****
  	  else
  	    new_cursor_type = HOLLOW_BOX_CURSOR;
  	}
-       else if (w->cursor_off_p)
- 	new_cursor_type = NO_CURSOR;
        else
  	{
  	  struct buffer *b = XBUFFER (w->buffer);
--- 11640,11645 ----
***************
*** 11651,11656 ****
--- 11649,11661 ----
  	  else
  	    new_cursor_type = x_specified_cursor_type (b->cursor_type, 
  						       &new_cursor_width);
+ 	  if (w->cursor_off_p)
+ 	    {
+ 	      if (new_cursor_type == FILLED_BOX_CURSOR)
+ 		new_cursor_type = HOLLOW_BOX_CURSOR;
+ 	      else
+ 		new_cursor_type = NO_CURSOR;
+ 	    }
  	}
      }
  
Index: w32term.c
===================================================================
RCS file: /cvs/emacs/src/w32term.c,v
retrieving revision 1.146
diff -c -r1.146 w32term.c
*** w32term.c	23 Feb 2002 16:28:28 -0000	1.146
--- w32term.c	26 Feb 2002 10:59:32 -0000
***************
*** 9759,9766 ****
            else
              new_cursor_type = HOLLOW_BOX_CURSOR;
          }
-       else if (w->cursor_off_p)
-         new_cursor_type = NO_CURSOR;
        else
          {
  	  struct buffer *b = XBUFFER (w->buffer);
--- 9759,9764 ----
***************
*** 9770,9775 ****
--- 9768,9780 ----
  	  else
  	    new_cursor_type = x_specified_cursor_type (b->cursor_type, 
  						       &new_cursor_width);
+ 	  if (w->cursor_off_p)
+ 	    {
+ 	      if (new_cursor_type == FILLED_BOX_CURSOR)
+ 		new_cursor_type = HOLLOW_BOX_CURSOR;
+ 	      else
+ 		new_cursor_type = NO_CURSOR;
+ 	    }
  	}
      }
  
-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk


_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion]
  2002-02-26 11:02     ` Kim F. Storm
@ 2002-02-26 11:46       ` Juanma Barranquero
  2002-02-26 12:05         ` Kim F. Storm
  2002-02-27  5:50       ` Richard Stallman
  2002-03-03 19:43       ` Tak Ota
  2 siblings, 1 reply; 16+ messages in thread
From: Juanma Barranquero @ 2002-02-26 11:46 UTC (permalink / raw)
  Cc: Jason Rumney, rms, emacs-devel


On 26 Feb 2002 12:02:03 +0100, storm@cua.dk (Kim F. Storm) wrote:

> Below you'll find a patch which does this (when the block cursor is used).
> 
> What do you think?

Nice, though I find distracting that the hollow cursor is smaller than
the filled one (that's not so perceptible when the hollow cursor is in
an inactive window).

                                                           /L/e/k/t/u


_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion]
  2002-02-26 11:46       ` Juanma Barranquero
@ 2002-02-26 12:05         ` Kim F. Storm
  2002-02-26 14:25           ` Juanma Barranquero
  0 siblings, 1 reply; 16+ messages in thread
From: Kim F. Storm @ 2002-02-26 12:05 UTC (permalink / raw)
  Cc: emacs-devel

Juanma Barranquero <lektu@terra.es> writes:

> On 26 Feb 2002 12:02:03 +0100, storm@cua.dk (Kim F. Storm) wrote:
> 
> > Below you'll find a patch which does this (when the block cursor is used).
> > 
> > What do you think?
> 
> Nice, though I find distracting that the hollow cursor is smaller than
> the filled one (that's not so perceptible when the hollow cursor is in
> an inactive window).

I don't see that with X.
Maybe it's w32 specific ?

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk


_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion]
  2002-02-26 12:05         ` Kim F. Storm
@ 2002-02-26 14:25           ` Juanma Barranquero
  0 siblings, 0 replies; 16+ messages in thread
From: Juanma Barranquero @ 2002-02-26 14:25 UTC (permalink / raw)
  Cc: emacs-devel


On 26 Feb 2002 13:05:09 +0100, storm@cua.dk (Kim F. Storm) wrote:

> I don't see that with X.
> Maybe it's w32 specific ?

I don't know, but in my system (W2K) the filled box cursor is 13x7
pixels, while the hollow cursor is 12x6 pixels.

                                                           /L/e/k/t/u


_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion]
  2002-02-25 21:19   ` Kim F. Storm
  2002-02-26 11:02     ` Kim F. Storm
@ 2002-02-26 20:15     ` Richard Stallman
  1 sibling, 0 replies; 16+ messages in thread
From: Richard Stallman @ 2002-02-26 20:15 UTC (permalink / raw)
  Cc: jasonr, emacs-devel

    Alternatively, it could "blink" between the hollow and normal cursor
    shapes.  Then we don't need an extra face.

That sounds good to me--does anyone disagree?

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion]
  2002-02-26 11:02     ` Kim F. Storm
  2002-02-26 11:46       ` Juanma Barranquero
@ 2002-02-27  5:50       ` Richard Stallman
  2002-02-27 10:12         ` Kim F. Storm
  2002-03-03 19:43       ` Tak Ota
  2 siblings, 1 reply; 16+ messages in thread
From: Richard Stallman @ 2002-02-27  5:50 UTC (permalink / raw)
  Cc: jasonr, emacs-devel

    Below you'll find a patch which does this (when the block cursor is used).

What should blinking do when the vertical bar cursor shape is used?


_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion]
  2002-02-27  5:50       ` Richard Stallman
@ 2002-02-27 10:12         ` Kim F. Storm
  2002-02-28  4:08           ` Richard Stallman
  2002-03-01 23:27           ` Kim F. Storm
  0 siblings, 2 replies; 16+ messages in thread
From: Kim F. Storm @ 2002-02-27 10:12 UTC (permalink / raw)
  Cc: emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     Below you'll find a patch which does this (when the block cursor is used).
> 
> What should blinking do when the vertical bar cursor shape is used?

I have tried to use the hollow cursor also in this case, and I might
even like it better than blinking between the filled and hollow block
cursors.

However, I think doing this by default will aggrevate some users, so I
decided to leave the current behaviour (on/off) when the bar cursor is
used.

Maybe a different shape of the bar "off" cursor would be acceptable, e.g.
a half-height line or similar.

An idea would be to have an explicit cursor-off-type variable similar to
cursor-type, except that it can ALSO have values hollow and mini-bar.
Then users could choose themselves which cursor shapes to blink between.
E.g. block and bar would also be a possiblity.

I'll try some more experiments...

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk


_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion]
  2002-02-27 10:12         ` Kim F. Storm
@ 2002-02-28  4:08           ` Richard Stallman
  2002-03-01 23:27           ` Kim F. Storm
  1 sibling, 0 replies; 16+ messages in thread
From: Richard Stallman @ 2002-02-28  4:08 UTC (permalink / raw)
  Cc: emacs-devel

    However, I think doing this by default will aggrevate some users, so I
    decided to leave the current behaviour (on/off) when the bar cursor is
    used.

What about changing colors as the default for the bar cursor?

    Maybe a different shape of the bar "off" cursor would be acceptable, e.g.
    a half-height line or similar.

I tend to think that will look weird, but you can try it and see.

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion]
  2002-02-27 10:12         ` Kim F. Storm
  2002-02-28  4:08           ` Richard Stallman
@ 2002-03-01 23:27           ` Kim F. Storm
  2002-03-03 16:06             ` Tak Ota
  1 sibling, 1 reply; 16+ messages in thread
From: Kim F. Storm @ 2002-03-01 23:27 UTC (permalink / raw)



I've committed the patch to blink between the filled and hollow box cursor.

For the bar cursor, it now blinks between the normal bar cursor and a 
1 pixel wide bar cursor.  Only if the normal bar cursor is only 1 pixel wide, 
it will turn the cursor off to blink it.

I have committed changes to both X and w32, but only tested it on X.

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk


_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion]
  2002-03-01 23:27           ` Kim F. Storm
@ 2002-03-03 16:06             ` Tak Ota
  0 siblings, 0 replies; 16+ messages in thread
From: Tak Ota @ 2002-03-03 16:06 UTC (permalink / raw)
  Cc: emacs-devel

02 Mar 2002 00:27:25 +0100: storm@cua.dk (Kim F. Storm) wrote:

> I have committed changes to both X and w32, but only tested it on X.

There was a small typo, however after this correction the w32 version
seems to run fine.

-Tak


*** w32term.c.orig	Fri Mar  1 16:59:32 2002
--- w32term.c	Sun Mar  3 07:56:55 2002
***************
*** 9787,9793 ****
        && (!on
  	  || w->phys_cursor.x != x
  	  || w->phys_cursor.y != y
! 	  || new_cursor_type != w->phys_cursor_type)
  	  || (new_cursor_type == BAR_CURSOR
  	      && new_cursor_width != w->phys_cursor_width)))
      x_erase_phys_cursor (w);
--- 9787,9793 ----
        && (!on
  	  || w->phys_cursor.x != x
  	  || w->phys_cursor.y != y
! 	  || new_cursor_type != w->phys_cursor_type
  	  || (new_cursor_type == BAR_CURSOR
  	      && new_cursor_width != w->phys_cursor_width)))
      x_erase_phys_cursor (w);

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion]
  2002-02-26 11:02     ` Kim F. Storm
  2002-02-26 11:46       ` Juanma Barranquero
  2002-02-27  5:50       ` Richard Stallman
@ 2002-03-03 19:43       ` Tak Ota
  2 siblings, 0 replies; 16+ messages in thread
From: Tak Ota @ 2002-03-03 19:43 UTC (permalink / raw)
  Cc: jasonr, rms, emacs-devel

26 Feb 2002 12:02:03 +0100: storm@cua.dk (Kim F. Storm) wrote:

> storm@cua.dk (Kim F. Storm) writes:
> 
> > Alternatively, it could "blink" between the hollow and normal cursor
> > shapes.  Then we don't need an extra face.
> 
> Below you'll find a patch which does this (when the block cursor is used).
> 
> What do you think?

I'd like to have an option to restore the original blinking between
filled and blank box cursor.  The hollow box cursor distracts the
legibility of a character under it due to my choice of font and cursor
color.  Is there a such control for this already?

-Tak

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2002-03-03 19:43 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-02-25  0:09 [ulrich@a0.complang.tuwien.ac.at: blink-cursor improvement suggestion] Richard Stallman
2002-02-25  9:51 ` Kim F. Storm
2002-02-25 20:55   ` Jason Rumney
2002-02-25 20:47 ` Jason Rumney
2002-02-25 21:19   ` Kim F. Storm
2002-02-26 11:02     ` Kim F. Storm
2002-02-26 11:46       ` Juanma Barranquero
2002-02-26 12:05         ` Kim F. Storm
2002-02-26 14:25           ` Juanma Barranquero
2002-02-27  5:50       ` Richard Stallman
2002-02-27 10:12         ` Kim F. Storm
2002-02-28  4:08           ` Richard Stallman
2002-03-01 23:27           ` Kim F. Storm
2002-03-03 16:06             ` Tak Ota
2002-03-03 19:43       ` Tak Ota
2002-02-26 20:15     ` Richard Stallman

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).