unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#43977: 28.0.50; customize-face, default, checkboxes not aligned with fields
@ 2020-10-13 11:52 Jean Louis
  2020-10-14  4:49 ` Lars Ingebrigtsen
  2020-10-14 12:00 ` Mauro Aranda
  0 siblings, 2 replies; 11+ messages in thread
From: Jean Louis @ 2020-10-13 11:52 UTC (permalink / raw)
  To: 43977


I can see that check boxes in customize-face -> default, are not aligned
with fields.

There is checkbox [ ] followed by colon and then there comes new line
like Font Faimly: FreeMono

This happens with emacs -Q and I hope it is visible here in the message below.

Hide Default face: [sample]
    State : STANDARD.
   Basic default face.
   [X] :
       Font Family: FreeMono
   [X] :
       Font Foundry: GNU 
   [X] :
       Width: Value Menu medium
   [X] :
       Height: Value Menu Height in 1/10 pt: 113
   [X] :
       Weight: Value Menu normal
   [X] :
       Slant: Value Menu normal
   [X] :
       Underline: Value Menu Off
   [X] :
       Overline: Value Menu Off
   [X] :
       Strike-through: Value Menu Off
   [X] :
       Box around text: Value Menu Off
   [X] :
       Inverse-video: Value Menu Off
   [X] :
       Foreground: black       Choose   (sample)
   [X] :
       Background: white       Choose   (sample)
   [X] :
       Stipple: Value Menu None
   [X] :
       Extend: Value Menu Off
   [X] :
       Inherit:
       INS
   Show All Attributes



In GNU Emacs 28.0.50 (build 17, x86_64-pc-linux-gnu, GTK+ Version 3.22.12, cairo version 1.14.8)
 of 2020-10-10 built on protected.rcdrun.com
Repository revision: 1006eb119849e4f81aa9a0b1c214a72bc2fbf8e3
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.11907000
System Description: Hyperbola GNU/Linux-libre

Configured using:
 'configure --prefix=/package/text/emacs-2020-10-10 --with-modules
 --without-gpm
 PKG_CONFIG_PATH=/home/data1/protected/GNUstep/Library/Libraries/pkgconfig:/usr/lib/pkgconfig'

Configured features:
XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND DBUS GSETTINGS GLIB NOTIFY
INOTIFY ACL GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS JSON PDUMPER LCMS2

Important settings:
  value of $LC_ALL: de_DE.UTF-8
  value of $LANG: de_DE.UTF-8
  value of $XMODIFIERS: @im=exwm-xim
  locale-coding-system: utf-8-unix

Major mode: Custom

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort hashcash mail-extr emacsbug message rmc puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg epg-config gnus-util
rmail rmail-loaddefs auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json map text-property-search time-date
subr-x seq byte-opt gv bytecomp byte-compile cconv mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils crm thingatpt
cus-edit easymenu cus-start cus-load wid-edit cl-loaddefs cl-lib tooltip
eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel
term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors frame minibuffer cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 78319 7181)
 (symbols 48 8776 1)
 (strings 32 22966 1896)
 (string-bytes 1 712951)
 (vectors 16 13090)
 (vector-slots 8 177780 7819)
 (floats 8 32 98)
 (intervals 56 731 8)
 (buffers 992 13))

-- 
Thanks,
Jean Louis





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

* bug#43977: 28.0.50; customize-face, default, checkboxes not aligned with fields
  2020-10-13 11:52 bug#43977: 28.0.50; customize-face, default, checkboxes not aligned with fields Jean Louis
@ 2020-10-14  4:49 ` Lars Ingebrigtsen
  2020-10-14  5:18   ` Jean Louis
  2020-10-14  7:41   ` Andreas Schwab
  2020-10-14 12:00 ` Mauro Aranda
  1 sibling, 2 replies; 11+ messages in thread
From: Lars Ingebrigtsen @ 2020-10-14  4:49 UTC (permalink / raw)
  To: Jean Louis; +Cc: 43977

Jean Louis <bugs@gnu.support> writes:

> I can see that check boxes in customize-face -> default, are not aligned
> with fields.

[...]

> Hide Default face: [sample]
>     State : STANDARD.
>    Basic default face.
>    [X] :
>        Font Family: FreeMono

This looks correctly aligned, but I'm guessing you're referring to the
newlines here?  And those do indeed look kinda superfluous.

After digging into the widget code for what seems like hours, I finally
found out what's inserting that newline (by adding a debug-on-entry on
`insert', of course).  It's this:

(define-widget 'group 'default
  "A widget which groups other widgets inside."
  :convert-widget 'widget-types-convert-widget
  :copy 'widget-types-copy
  :format ":\n%v"

But I have no idea how to override that in the context of a face
definition.  Anybody?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#43977: 28.0.50; customize-face, default, checkboxes not aligned with fields
  2020-10-14  4:49 ` Lars Ingebrigtsen
@ 2020-10-14  5:18   ` Jean Louis
  2020-10-14  5:31     ` Lars Ingebrigtsen
  2020-10-14  7:41   ` Andreas Schwab
  1 sibling, 1 reply; 11+ messages in thread
From: Jean Louis @ 2020-10-14  5:18 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 43977

* Lars Ingebrigtsen <larsi@gnus.org> [2020-10-14 07:50]:
> Jean Louis <bugs@gnu.support> writes:
> 
> > I can see that check boxes in customize-face -> default, are not aligned
> > with fields.
> 
> [...]
> 
> > Hide Default face: [sample]
> >     State : STANDARD.
> >    Basic default face.
> >    [X] :
> >        Font Family: FreeMono
> 
> This looks correctly aligned, but I'm guessing you're referring to the
> newlines here?  And those do indeed look kinda superfluous.

To me this would look correctly aligned and displayed:

[X] Font Family: FreeMono

And finally why is there : before the field name, no need for it, it
is obvious that the checkbox belongs to the same line, however, it is
formatted that field text is not placed on the same line, no logic
there.

On console emacs -nw it looks same way degraded and confusing to se
something like

Try doing M-x customize-face RET bold RET

You will see

Hide Bold face: [sample]
    State : STANDARD.
   Basic bold face.
   [X] :
       Weight: Value Menu bold
   Show All Attributes

which is simply wrong, neither colon nor new line belongs there.

Now if I click on Show All Attributes, I get following list nicely
formatted, except the one line not being nicely formatted.

Hide Bold face: [sample]
    State : STANDARD.
   Basic bold face.
   [ ] Font Family: --
   [ ] Font Foundry: --
   [ ] Width: --
   [ ] Height: --
   [X] :
       Weight: Value Menu bold
   [ ] Slant: --
   [ ] Underline: --
   [ ] Overline: --
   [ ] Strike-through: --
   [ ] Box around text: --
   [ ] Inverse-video: --
   [ ] Foreground: --
   [ ] Distant Foreground: --
   [ ] Background: --
   [ ] Stipple: --
   [ ] Extend: --
   [ ] Inherit: --
   Hide Unused Attributes


> After digging into the widget code for what seems like hours, I finally
> found out what's inserting that newline (by adding a debug-on-entry on
> `insert', of course).  It's this:
> 
> (define-widget 'group 'default
>   "A widget which groups other widgets inside."
>   :convert-widget 'widget-types-convert-widget
>   :copy 'widget-types-copy
>   :format ":\n%v"
> 
> But I have no idea how to override that in the context of a face
> definition.  Anybody?

Cannot you just remove the colon and new line?





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

* bug#43977: 28.0.50; customize-face, default, checkboxes not aligned with fields
  2020-10-14  5:18   ` Jean Louis
@ 2020-10-14  5:31     ` Lars Ingebrigtsen
  2020-10-14  5:36       ` Jean Louis
  0 siblings, 1 reply; 11+ messages in thread
From: Lars Ingebrigtsen @ 2020-10-14  5:31 UTC (permalink / raw)
  To: Jean Louis; +Cc: 43977

Jean Louis <bugs@gnu.support> writes:

>> (define-widget 'group 'default
>>   "A widget which groups other widgets inside."
>>   :convert-widget 'widget-types-convert-widget
>>   :copy 'widget-types-copy
>>   :format ":\n%v"
>> 
>> But I have no idea how to override that in the context of a face
>> definition.  Anybody?
>
> Cannot you just remove the colon and new line?

No, this is used for all widgets -- it's the default rendering of
widgets with children, and for the other widgets this looks fine.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#43977: 28.0.50; customize-face, default, checkboxes not aligned with fields
  2020-10-14  5:31     ` Lars Ingebrigtsen
@ 2020-10-14  5:36       ` Jean Louis
  2020-10-14  5:48         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 11+ messages in thread
From: Jean Louis @ 2020-10-14  5:36 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 43977

* Lars Ingebrigtsen <larsi@gnus.org> [2020-10-14 08:31]:
> Jean Louis <bugs@gnu.support> writes:
> 
> >> (define-widget 'group 'default
> >>   "A widget which groups other widgets inside."
> >>   :convert-widget 'widget-types-convert-widget
> >>   :copy 'widget-types-copy
> >>   :format ":\n%v"
> >> 
> >> But I have no idea how to override that in the context of a face
> >> definition.  Anybody?
> >
> > Cannot you just remove the colon and new line?
> 
> No, this is used for all widgets -- it's the default rendering of
> widgets with children, and for the other widgets this looks fine.

How you will solve it, you better know.

I would like to know if you understand what I mean and if you agree
that it looks better this way:

Hide Bold face: [sample]
    State : STANDARD.
   Basic bold face.
   [ ] Font Family: --
   [ ] Font Foundry: --
   [ ] Width: --
   [ ] Height: --
   [X] Weight: Value Menu bold
   [ ] Slant: --
   [ ] Underline: --
   [ ] Overline: --


Then this way:

Hide Bold face: [sample]
    State : STANDARD.
   Basic bold face.
   [ ] Font Family: --
   [ ] Font Foundry: --
   [ ] Width: --
   [ ] Height: --
   [X] :
       Weight: Value Menu bold
   [ ] Slant: --
   [ ] Underline: --
   [ ] Overline: --


and that it would look better this way:

Hide Default face: [sample]
    State : SET for current session only.
   Basic default face.
   [X] Font Family: DejaVu Sans Mono
   [X] Font Foundry: PfEd
   [X] Width: Value Menu medium
   [X] Height: Value Menu Height in 1/10 pt: 120
   [X] Weight: Value Menu normal
   [X] Slant: Value Menu normal
   [X] Underline: Value Menu Off

Then this way:

Hide Default face: [sample]
    State : SET for current session only.
   Basic default face.
   [X] :
       Font Family: DejaVu Sans Mono
   [X] :
       Font Foundry: PfEd
   [X] :
       Width: Value Menu medium
   [X] :
       Height: Value Menu Height in 1/10 pt: 120
   [X] :
       Weight: Value Menu normal
   [X] :
       Slant: Value Menu normal
   [X] :
       Underline: Value Menu Off






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

* bug#43977: 28.0.50; customize-face, default, checkboxes not aligned with fields
  2020-10-14  5:36       ` Jean Louis
@ 2020-10-14  5:48         ` Lars Ingebrigtsen
  0 siblings, 0 replies; 11+ messages in thread
From: Lars Ingebrigtsen @ 2020-10-14  5:48 UTC (permalink / raw)
  To: Jean Louis; +Cc: 43977

Jean Louis <bugs@gnu.support> writes:

>> No, this is used for all widgets -- it's the default rendering of
>> widgets with children, and for the other widgets this looks fine.
>
> How you will solve it, you better know.

No, I have no idea, which is why I asked whether somebody did.  The
widget code is a complete nightmare to me.

> I would like to know if you understand what I mean and if you agree
> that it looks better this way:

Yes.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#43977: 28.0.50; customize-face, default, checkboxes not aligned with fields
  2020-10-14  4:49 ` Lars Ingebrigtsen
  2020-10-14  5:18   ` Jean Louis
@ 2020-10-14  7:41   ` Andreas Schwab
  2020-10-14  8:54     ` Eli Zaretskii
  1 sibling, 1 reply; 11+ messages in thread
From: Andreas Schwab @ 2020-10-14  7:41 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 43977, Jean Louis

On Okt 14 2020, Lars Ingebrigtsen wrote:

> (define-widget 'group 'default
>   "A widget which groups other widgets inside."
>   :convert-widget 'widget-types-convert-widget
>   :copy 'widget-types-copy
>   :format ":\n%v"
>
> But I have no idea how to override that in the context of a face
> definition.  Anybody?

diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 9c5d89f89f..4cdd7ac564 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -3205,6 +3205,7 @@ face attributes (as specified by a `default' defface entry)."
   :convert-widget 'custom-face-edit-convert-widget
   :args (mapcar (lambda (att)
 		  (list 'group :inline t
+			:format "%v"
 			:sibling-args (widget-get (nth 1 att) :sibling-args)
 			(list 'const :format "" :value (nth 0 att))
 			(nth 1 att)))

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."





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

* bug#43977: 28.0.50; customize-face, default, checkboxes not aligned with fields
  2020-10-14  7:41   ` Andreas Schwab
@ 2020-10-14  8:54     ` Eli Zaretskii
  0 siblings, 0 replies; 11+ messages in thread
From: Eli Zaretskii @ 2020-10-14  8:54 UTC (permalink / raw)
  To: 43977, schwab, larsi; +Cc: bugs

On October 14, 2020 10:41:01 AM GMT+03:00, Andreas Schwab <schwab@linux-m68k.org> wrote:
> On Okt 14 2020, Lars Ingebrigtsen wrote:
> 
> > (define-widget 'group 'default
> >   "A widget which groups other widgets inside."
> >   :convert-widget 'widget-types-convert-widget
> >   :copy 'widget-types-copy
> >   :format ":\n%v"
> >
> > But I have no idea how to override that in the context of a face
> > definition.  Anybody?
> 
> diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
> index 9c5d89f89f..4cdd7ac564 100644
> --- a/lisp/cus-edit.el
> +++ b/lisp/cus-edit.el
> @@ -3205,6 +3205,7 @@ face attributes (as specified by a `default'
> defface entry)."
>    :convert-widget 'custom-face-edit-convert-widget
>    :args (mapcar (lambda (att)
>  		  (list 'group :inline t
> +			:format "%v"
>  			:sibling-args (widget-get (nth 1 att) :sibling-args)
>  			(list 'const :format "" :value (nth 0 att))
>  			(nth 1 att)))
> 


See also bug#33566, which is what caused this issue.





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

* bug#43977: 28.0.50; customize-face, default, checkboxes not aligned with fields
  2020-10-13 11:52 bug#43977: 28.0.50; customize-face, default, checkboxes not aligned with fields Jean Louis
  2020-10-14  4:49 ` Lars Ingebrigtsen
@ 2020-10-14 12:00 ` Mauro Aranda
  2020-10-14 15:12   ` Eli Zaretskii
  1 sibling, 1 reply; 11+ messages in thread
From: Mauro Aranda @ 2020-10-14 12:00 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 43977, Lars Ingebrigtsen, schwab, bugs

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

Eli Zaretskii <eliz@gnu.org> writes:

> On October 14, 2020 10:41:01 AM GMT+03:00, Andreas Schwab
> <schwab@linux-m68k.org> wrote:
>> On Okt 14 2020, Lars Ingebrigtsen wrote:
>>
>> > (define-widget 'group 'default
>> >   "A widget which groups other widgets inside."
>> >   :convert-widget 'widget-types-convert-widget
>> >   :copy 'widget-types-copy
>> >   :format ":\n%v"
>> >
>> > But I have no idea how to override that in the context of a face
>> > definition.  Anybody?
>>
>> diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
>> index 9c5d89f89f..4cdd7ac564 100644
>> --- a/lisp/cus-edit.el
>> +++ b/lisp/cus-edit.el
>> @@ -3205,6 +3205,7 @@ face attributes (as specified by a `default'
>> defface entry)."
>>    :convert-widget 'custom-face-edit-convert-widget
>>    :args (mapcar (lambda (att)
>>    (list 'group :inline t
>> + :format "%v"
>>   :sibling-args (widget-get (nth 1 att) :sibling-args)
>>   (list 'const :format "" :value (nth 0 att))
>>   (nth 1 att)))
>>
>
>
> See also bug#33566, which is what caused this issue.

Andreas patch looks correct to me.  The custom-face-edit widget used the
default :format "%v" for the group widget, and then the default :format
was changed, but custom-face-edit didn't get updated to override it back
to "%v".

[-- Attachment #2: Type: text/html, Size: 1801 bytes --]

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

* bug#43977: 28.0.50; customize-face, default, checkboxes not aligned with fields
  2020-10-14 12:00 ` Mauro Aranda
@ 2020-10-14 15:12   ` Eli Zaretskii
  2020-10-14 17:55     ` Mauro Aranda
  0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2020-10-14 15:12 UTC (permalink / raw)
  To: Mauro Aranda; +Cc: 43977, larsi, schwab, bugs

> From: Mauro Aranda <maurooaranda@gmail.com>
> Date: Wed, 14 Oct 2020 09:00:27 -0300
> Cc: 43977@debbugs.gnu.org, schwab@linux-m68k.org, 
> 	Lars Ingebrigtsen <larsi@gnus.org>, bugs@gnu.support
> 
> > See also bug#33566, which is what caused this issue.
> 
> Andreas patch looks correct to me.

I didn't say it wasn't.  I just pointed to that bug report, so that
people could (a) see if there were other solutions to consider (e.g.,
maybe to solve the original issue in some other way); and (b) so that
the use case in that bug could be retested to make sure this proposed
change doesn't adversely affect it in any way.





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

* bug#43977: 28.0.50; customize-face, default, checkboxes not aligned with fields
  2020-10-14 15:12   ` Eli Zaretskii
@ 2020-10-14 17:55     ` Mauro Aranda
  0 siblings, 0 replies; 11+ messages in thread
From: Mauro Aranda @ 2020-10-14 17:55 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 43977, Lars Ingebrigtsen, schwab, bugs

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

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Mauro Aranda <maurooaranda@gmail.com>
>> Date: Wed, 14 Oct 2020 09:00:27 -0300
>> Cc: 43977@debbugs.gnu.org, schwab@linux-m68k.org,
>> Lars Ingebrigtsen <larsi@gnus.org>, bugs@gnu.support
>>
>> > See also bug#33566, which is what caused this issue.
>>
>> Andreas patch looks correct to me.
>
> I didn't say it wasn't.

I didn't mean to imply you said it wasn't correct.  Sorry about any
confusion.

> I just pointed to that bug report, so that
> people could (a) see if there were other solutions to consider (e.g.,
> maybe to solve the original issue in some other way); and (b) so that
> the use case in that bug could be retested to make sure this proposed
> change doesn't adversely affect it in any way.

I think that:
(a) The group widget was misdocumented as a possible composite type in
the first place: that's why custom-variable-value-create was rejecting
it, because it didn't have the format spec it requires.  But it was
documented, and later the group widget's :format adapted, so maybe it is
better to just leave that as it is now.

(b) While the change in Bug#33566 is what caused this issue, using "%v"
as the format for the group widget is perfectly fine here, and doesn't
affect any other uses of the group widget.  There is no call to
custom-variable-value-create here, so no reason to worry about
overriding the :format spec to "%v" at all.

[-- Attachment #2: Type: text/html, Size: 1884 bytes --]

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

end of thread, other threads:[~2020-10-14 17:55 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-13 11:52 bug#43977: 28.0.50; customize-face, default, checkboxes not aligned with fields Jean Louis
2020-10-14  4:49 ` Lars Ingebrigtsen
2020-10-14  5:18   ` Jean Louis
2020-10-14  5:31     ` Lars Ingebrigtsen
2020-10-14  5:36       ` Jean Louis
2020-10-14  5:48         ` Lars Ingebrigtsen
2020-10-14  7:41   ` Andreas Schwab
2020-10-14  8:54     ` Eli Zaretskii
2020-10-14 12:00 ` Mauro Aranda
2020-10-14 15:12   ` Eli Zaretskii
2020-10-14 17:55     ` Mauro Aranda

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).