From: Alexandre Garreau <galex-713@galex-713.eu>
To: emacs-devel@gnu.org, rms@gnu.org
Subject: Re: New key binding syntax
Date: Tue, 02 Nov 2021 17:22:16 +0100 [thread overview]
Message-ID: <52799093.VymdKvaGTe@galex-713.eu> (raw)
In-Reply-To: <E1mhksL-0003ZX-LS@fencepost.gnu.org>
Le mardi 2 novembre 2021, 04:54:17 CET Richard Stallman a écrit :
> [[[ To any NSA and FBI agents reading my email: please consider ]]]
> [[[ whether defending the US Constitution against all enemies, ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
> > Have a look at the kbd-valid-p doc string on the current trunk for a
> > definition.
>
> I've included that text below, because now is the time
> for people to look at and comment on it.
>
> Should the syntax Emacs adopts for the next 20 years be this one?
> This one with some changes?
What wasn’t that ever normalized/documented? it always seemed to be that
“kbd” was the standard way of specifying keystrokes… was it just informal?
> Any other proposal?
I always wondered: if one day emacs was to allow to gracefully support
key-chords [0] (that is, using any key other as a “modifier”, so that you
could press a and b at the same time and it would be a special keystrokes,
which makes expressivity of keystrokes increase factorially with length
instead of exponentially), at least in certain configurations.
That feature (actually, dirty hack, for now, but the author consider emacs
to be misdesigned apparently, according implementation notes) is even
advertised on emacs’ webpage through the emacsrock serie [1]
The extension currently looks dirty, and isn’t integrated into kbd at all,
but if it were to be, should Control+Meta+a+b (a and b being the lowercase
letters a and b, not variables) be specified “C-M-ab” or “C-M-a-b”: the
most intuitive would be the later, because - aquires some kind of semantic
of “at the same time” (which most of other programs describe with a “+”
nowadays, which is less confusing, so C-M-a-b would be Control+Meta+A+B
(they also usually are case-insensitive, while emacs case-sensitive
afaiu)), but if a keyboard layout included a “uppercase A” key, and one
used uppercase letters in keystrokes, then it would be impossible to say
C-A-B” without A being understood as Alt (and using a rigid order for
specifying modifiers in order to distinguish them from else looks
confusing). C-M-ab is somewhat less logical but wouldn’t break the
existing interpretation. Could a definition allowing a such form (although
saying it is by default unsupported) be considered?
Furthermore, I would be in favor (and maybe that could help people to
switch more seemlessly to emacs) to relax that syntax (as long as it is
not ambiguous) and tweak it per-configuration (so when a keystroke is
displayed, such as in minibuffer, in *Help* etc. it could be displayed
differently), such as to for instance allow using a + character instead of
a - (which is now more widespread and easily understood, although I find
the - more sober hence more beautiful, but that’s maybe personal
conservatism linked to habitude, and then it would be nice to only keep
that as a personal configuration), or sometimes specifying the modifiers
names all written (such as “Meta-” instead of “M-”: currently that causes
no ambiguity as “Meta-” is translated as such and has no meaning afaik) if
the user wishes to, so that for instance config/UI looks more
understandable to outsiders and newcomers (I have to note that *merely
looking* at a used (habituated? how to say?) user of emacs is per se an
important form of advertisement of emacs (it makes people curious, it
looks fast, it looks confident, it works great))
> If we use this syntax, the text we use to define it in the Emacs Lisp
> Ref Manual should cover valid cases not mentioned in this text.
> We don't use them in normal Emacs bindings, but they are valid
> so they should be documented.
could it be possible for keystrokes as displayed by a manual to be
configurable? such as having (maybe that’s already the case) semantical
markup for those, so that at compilation, or at visualisation (if the
software supports it) they can be displayed differently, such as as I
proposed.
> ======================================================================
> Say whether KEYS is a valid `kbd' sequence.
> A `kbd' sequence is a string consisting of one and more key
> strokes. The key strokes are separated by a space character.
I agree with what was said that this should be a partitive “whitespace”,
not an absolute space character. That could be translated to a canonical
form with only one space character later (after all differences in
whitespace are irrelevant out of context).
> Each key stroke is either a single character, or the name of an
> event, surrounded by angle brackets. In addition, any key stroke
> may be preceded by one or more modifier keys. Finally, a limited
> number of characters have a special shorthand syntax.
> Here's some example key sequences.
>
> \"f\" (the key 'f')
> \"S o m\" (a three key sequence of the keys 'S', 'o' and 'm')
> \"C-c o\" (a two key sequence of the keys 'c' with the control
> modifier and then the key 'o')
> \"H-<left>\" (the key named \"left\" with the hyper modifier)
> \"M-RET\" (the \"return\" key with a meta modifier)
> \"C-M-<space>\" (the \"space\" key with both the control and meta
> modifiers)
> Modifiers have to be specified in this order:
>
> A-C-H-M-S-s
>
> which is
>
> Alt-Control-Hyper-Meta-Shift-super
What happens otherwise? an error? or, more gracefully, a translation? that
could be a canonical order (that’s just alphabetical right?)
next prev parent reply other threads:[~2021-11-02 16:22 UTC|newest]
Thread overview: 320+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20211004081724.6281.11798@vcs0.savannah.gnu.org>
[not found] ` <20211004081726.AB24621048@vcs0.savannah.gnu.org>
2021-10-04 8:56 ` master 192f935 1/3: Add 'define-keymap' and 'defvar-keymap' Lars Ingebrigtsen
2021-10-04 9:42 ` Adam Porter
2021-10-04 10:13 ` Lars Ingebrigtsen
2021-10-10 7:40 ` Madhu
2021-10-19 18:02 ` Jonas Bernoulli
2021-10-19 18:18 ` Change indentation of keyword lists/arrays Lars Ingebrigtsen
2021-10-20 16:39 ` Juri Linkov
2021-10-20 19:02 ` Tassilo Horn
2021-10-21 3:02 ` Lars Ingebrigtsen
2021-10-21 3:59 ` [External] : " Drew Adams
2021-10-04 13:06 ` master 192f935 1/3: Add 'define-keymap' and 'defvar-keymap' Stefan Monnier
2021-10-04 13:09 ` Lars Ingebrigtsen
2021-10-04 13:14 ` Stefan Monnier
2021-10-04 13:44 ` Lars Ingebrigtsen
2021-10-04 14:34 ` Lars Ingebrigtsen
2021-10-04 16:17 ` Stefan Monnier
2021-10-05 6:31 ` Lars Ingebrigtsen
[not found] ` <20211004081727.4F24921048@vcs0.savannah.gnu.org>
2021-10-12 12:47 ` master 859190f 2/3: Convert some keymaps to defvar-keymap Stefan Kangas
2021-10-12 13:00 ` Lars Ingebrigtsen
2021-10-12 13:18 ` Stefan Kangas
2021-10-12 13:22 ` Lars Ingebrigtsen
2021-10-12 14:24 ` Stefan Kangas
2021-10-12 20:22 ` Lars Ingebrigtsen
2021-10-12 20:32 ` Lars Ingebrigtsen
2021-10-12 21:34 ` Stefan Kangas
2021-10-12 23:23 ` Lars Ingebrigtsen
2021-10-12 23:40 ` Lars Ingebrigtsen
2021-10-13 3:18 ` Moving kbd to subr.el Stefan Kangas
2021-10-13 11:10 ` Lars Ingebrigtsen
2021-10-13 12:31 ` Eli Zaretskii
2021-10-13 12:42 ` Stefan Monnier
2021-10-13 14:26 ` T.V Raman
2021-10-13 15:01 ` Stefan Kangas
2021-10-13 15:03 ` Stefan Kangas
2021-10-13 16:01 ` T.V Raman
2021-10-13 15:11 ` T.V Raman
2021-10-13 12:50 ` Stefan Kangas
2021-10-13 13:28 ` Eli Zaretskii
2021-10-13 13:33 ` Stefan Kangas
2021-10-13 22:28 ` Stefan Kangas
2021-10-13 22:45 ` Lars Ingebrigtsen
2021-10-13 22:54 ` Lars Ingebrigtsen
2021-10-14 7:23 ` Eli Zaretskii
2021-10-14 11:50 ` Stefan Kangas
2021-10-14 11:56 ` Eli Zaretskii
2021-10-14 12:06 ` Lars Ingebrigtsen
2021-10-14 20:28 ` Stefan Kangas
2021-10-14 20:55 ` Lars Ingebrigtsen
2021-10-14 21:04 ` Stefan Kangas
2021-10-14 21:13 ` Lars Ingebrigtsen
2021-10-15 2:07 ` Stefan Kangas
2021-10-15 10:28 ` Lars Ingebrigtsen
2021-10-15 11:05 ` Eli Zaretskii
2021-10-15 11:10 ` Eli Zaretskii
2021-10-15 11:34 ` Andreas Schwab
2021-10-15 12:31 ` Lars Ingebrigtsen
2021-10-15 12:39 ` Lars Ingebrigtsen
2021-10-15 13:32 ` Stefan Monnier
2021-10-15 14:04 ` Lars Ingebrigtsen
2021-10-15 14:44 ` Stefan Kangas
2021-10-15 16:05 ` Stefan Monnier
2021-10-15 16:31 ` T.V Raman
2021-10-15 11:26 ` Lars Ingebrigtsen
2021-10-16 13:48 ` Lars Ingebrigtsen
2021-10-16 14:33 ` Stefan Kangas
2021-10-16 15:55 ` Lars Ingebrigtsen
2021-10-17 18:54 ` Lars Ingebrigtsen
2021-10-17 19:32 ` Gregory Heytings
2021-10-17 19:39 ` Eli Zaretskii
2021-10-17 19:42 ` Gregory Heytings
2021-10-17 19:58 ` Lars Ingebrigtsen
2021-10-18 11:41 ` Eli Zaretskii
2021-10-18 11:52 ` Gregory Heytings
2021-10-18 13:01 ` Eli Zaretskii
2021-10-18 13:07 ` Gregory Heytings
2021-10-18 12:40 ` Stefan Monnier
2021-10-20 6:47 ` Richard Stallman
2021-10-20 7:48 ` Lars Ingebrigtsen
2021-10-20 13:18 ` Stefan Kangas
2021-10-21 2:52 ` Lars Ingebrigtsen
2021-10-21 3:36 ` Stefan Kangas
2021-10-21 3:39 ` Lars Ingebrigtsen
2021-10-21 4:07 ` Stefan Kangas
2021-10-21 4:37 ` Lars Ingebrigtsen
2021-10-21 4:58 ` [External] : " Drew Adams
2021-10-20 14:21 ` T.V Raman
2021-10-21 2:53 ` Lars Ingebrigtsen
2021-10-21 14:19 ` T.V Raman
2021-10-20 18:51 ` Philip Kaludercic
2021-10-21 2:53 ` Lars Ingebrigtsen
2021-10-21 13:40 ` Philip Kaludercic
2021-10-22 14:20 ` Lars Ingebrigtsen
2021-10-22 14:57 ` Philip Kaludercic
2021-10-22 15:02 ` Lars Ingebrigtsen
2021-10-22 15:06 ` Philip Kaludercic
2021-10-22 15:10 ` Lars Ingebrigtsen
2021-10-22 18:16 ` Philip Kaludercic
2021-10-22 18:18 ` Lars Ingebrigtsen
2021-10-23 23:29 ` Richard Stallman
2021-10-24 6:10 ` Eli Zaretskii
2021-10-26 3:01 ` Richard Stallman
2021-10-24 13:24 ` Lars Ingebrigtsen
2021-10-24 18:10 ` Corwin Brust
2021-10-24 18:42 ` Lars Ingebrigtsen
2021-10-25 16:06 ` Corwin Brust
2021-10-25 16:10 ` Philip Kaludercic
2021-10-27 14:41 ` Richard Stallman
2021-10-28 12:19 ` Richard Stallman
2021-10-28 12:25 ` Lars Ingebrigtsen
2021-10-30 6:53 ` Richard Stallman
2021-10-30 12:36 ` Lars Ingebrigtsen
2021-10-31 2:39 ` Richard Stallman
2021-10-31 14:57 ` Lars Ingebrigtsen
2021-11-02 3:54 ` New key binding syntax Richard Stallman
2021-11-02 11:08 ` John Yates
2021-11-04 2:36 ` Richard Stallman
2021-11-04 9:37 ` Robert Pluim
2021-11-04 17:09 ` Lars Ingebrigtsen
2021-11-04 22:46 ` John Yates
2021-11-04 22:48 ` Lars Ingebrigtsen
2021-11-04 22:53 ` John Yates
2021-11-05 2:25 ` Lars Ingebrigtsen
2021-11-05 12:21 ` John Yates
2021-11-05 13:45 ` Lars Ingebrigtsen
2021-11-06 13:52 ` John Yates
2021-11-05 3:57 ` Richard Stallman
2021-11-05 5:41 ` Alexandre Garreau
2021-11-06 3:20 ` Richard Stallman
2021-11-02 12:10 ` Dmitry Gutov
2021-11-04 2:36 ` Richard Stallman
2021-11-02 16:22 ` Alexandre Garreau [this message]
2021-11-04 2:33 ` Richard Stallman
2021-11-04 8:53 ` Yuri Khan
2021-11-05 6:08 ` Alexandre Garreau
2021-11-05 8:56 ` Yuri Khan
2021-11-05 9:13 ` Alexandre Garreau
2021-11-05 10:03 ` Yuri Khan
2021-11-05 11:04 ` Alexandre Garreau
2021-11-05 12:02 ` Yuri Khan
2021-11-06 3:20 ` Richard Stallman
2021-11-05 5:32 ` Alexandre Garreau
2021-11-07 4:25 ` Richard Stallman
2021-11-07 4:48 ` Emanuel Berg via Emacs development discussions.
2021-11-08 23:50 ` [External] : " Drew Adams
2021-11-10 4:35 ` Richard Stallman
2021-11-10 14:53 ` Stefan Kangas
2021-11-10 17:24 ` Drew Adams
2021-11-13 4:10 ` Richard Stallman
2021-11-13 18:47 ` Drew Adams
2021-11-16 4:05 ` Richard Stallman
2021-11-16 6:21 ` Alexandre Garreau
2021-11-18 3:52 ` Richard Stallman
2021-11-18 5:01 ` Yuri Khan
2021-11-18 14:10 ` Alexandre Garreau
2021-11-18 14:59 ` Yuri Khan
2021-11-18 15:22 ` Eli Zaretskii
2021-11-18 15:39 ` Yuri Khan
2021-11-18 16:50 ` Eli Zaretskii
2021-11-18 15:32 ` Alexandre Garreau
2021-11-18 16:20 ` Yuri Khan
2021-11-18 16:53 ` Eli Zaretskii
2021-11-18 21:13 ` Alexandre Garreau
2021-11-18 11:05 ` Alexandre Garreau
2021-11-18 11:31 ` Stefan Kangas
2021-11-19 4:44 ` Richard Stallman
2021-11-19 6:05 ` Alexandre Garreau
2021-11-19 6:53 ` Po Lu
2021-11-19 7:40 ` Eli Zaretskii
2021-11-19 11:33 ` Alexandre Garreau
2021-11-19 12:43 ` Eli Zaretskii
2021-11-19 12:48 ` Alexandre Garreau
2021-11-16 16:25 ` Drew Adams
2021-11-10 17:24 ` Drew Adams
2021-10-17 19:55 ` Moving kbd to subr.el Lars Ingebrigtsen
2021-10-17 21:20 ` Gregory Heytings
2021-10-18 6:02 ` Lars Ingebrigtsen
2021-10-18 12:46 ` Gregory Heytings
2021-10-18 13:15 ` Lars Ingebrigtsen
2021-10-18 13:50 ` Gregory Heytings
2021-10-18 15:50 ` Stefan Monnier
2021-10-18 16:03 ` Gregory Heytings
2021-10-18 13:53 ` Stefan Kangas
2021-10-18 13:59 ` Lars Ingebrigtsen
2021-10-18 14:44 ` [External] : " Drew Adams
2021-10-18 15:34 ` Stefan Kangas
2021-10-18 15:53 ` Drew Adams
2021-10-18 15:53 ` Stefan Monnier
2021-10-18 15:58 ` Lars Ingebrigtsen
2021-10-18 16:33 ` Stefan Monnier
2021-10-18 20:40 ` Stefan Kangas
2021-10-18 22:26 ` Stefan Monnier
2021-10-19 2:31 ` Eli Zaretskii
2021-10-19 2:30 ` Lars Ingebrigtsen
2021-10-19 7:02 ` Juri Linkov
2021-10-19 7:48 ` Gregory Heytings
2021-10-19 10:46 ` Philip Kaludercic
2021-10-19 13:08 ` Gregory Heytings
2021-10-19 14:48 ` [External] : " Drew Adams
2021-10-19 17:10 ` Stefan Kangas
2021-10-19 17:51 ` Drew Adams
2021-10-19 18:06 ` Drew Adams
2021-10-20 22:34 ` Richard Stallman
2021-10-20 22:34 ` Richard Stallman
2021-10-22 3:29 ` Po Lu
2021-10-19 12:34 ` Stefan Monnier
2021-10-19 13:38 ` Lars Ingebrigtsen
2021-10-19 13:57 ` Stefan Kangas
2021-10-19 14:07 ` Lars Ingebrigtsen
2021-10-19 14:13 ` Stefan Kangas
2021-10-19 14:16 ` Lars Ingebrigtsen
2021-10-19 14:25 ` Stefan Kangas
2021-10-19 14:31 ` Lars Ingebrigtsen
2021-10-19 15:03 ` Robert Pluim
2021-10-19 14:56 ` Andreas Schwab
2021-10-19 14:45 ` Stefan Monnier
2021-10-19 15:09 ` Lars Ingebrigtsen
2021-10-19 19:07 ` Lars Ingebrigtsen
2021-10-19 19:00 ` Howard Melman
2021-10-19 20:53 ` T.V Raman
2021-10-19 20:59 ` Lars Ingebrigtsen
2021-10-19 21:50 ` Dmitry Gutov
2021-10-20 22:37 ` Richard Stallman
2021-10-21 2:54 ` Lars Ingebrigtsen
2021-10-20 1:54 ` T.V Raman
2021-10-19 14:00 ` Dmitry Gutov
2021-10-19 14:03 ` Gregory Heytings
2021-10-19 16:05 ` Gregory Heytings
2021-10-19 17:43 ` Stefan Kangas
2021-10-19 18:54 ` Juri Linkov
2021-10-25 14:22 ` Making a key undefined again Jonas Bernoulli
2021-10-25 14:30 ` [External] : " Drew Adams
2021-10-25 14:37 ` Lars Ingebrigtsen
2021-10-25 17:31 ` Stefan Monnier
2021-10-25 17:48 ` Gregory Heytings
2021-10-25 22:49 ` Jonas Bernoulli
2021-10-25 22:59 ` Jonas Bernoulli
2021-10-25 23:10 ` Stefan Monnier
2021-10-25 23:27 ` Gregory Heytings
2021-10-26 16:11 ` Jonas Bernoulli
2021-10-26 19:33 ` Stefan Monnier
2021-10-18 16:01 ` Moving kbd to subr.el Juri Linkov
2021-10-18 16:27 ` Gregory Heytings
2021-10-19 3:08 ` Lars Ingebrigtsen
2021-10-18 1:41 ` T.V Raman
2021-10-18 11:40 ` Eli Zaretskii
2021-10-14 7:27 ` Andreas Schwab
2021-10-14 11:33 ` Stefan Kangas
2021-10-14 11:53 ` Andreas Schwab
2021-10-14 12:08 ` Lars Ingebrigtsen
2021-10-14 12:24 ` Andreas Schwab
2021-10-14 13:10 ` Stefan Kangas
2021-10-14 13:55 ` Dmitry Gutov
2021-10-14 14:05 ` dick
2021-10-14 14:15 ` Dmitry Gutov
2021-10-14 14:31 ` dick
2021-10-14 14:33 ` Lars Ingebrigtsen
2021-10-14 14:36 ` Gregory Heytings
2021-10-13 12:36 ` Representing key sequences (was: master 859190f 2/3: Convert some keymaps to defvar-keymap) Stefan Monnier
2021-10-13 13:17 ` Stefan Kangas
2021-10-13 16:28 ` Representing key sequences Stefan Monnier
2021-10-13 23:48 ` Lars Ingebrigtsen
2021-10-13 14:12 ` Lars Ingebrigtsen
2021-10-13 14:40 ` Andreas Schwab
2021-10-13 8:54 ` master 859190f 2/3: Convert some keymaps to defvar-keymap Gregory Heytings
2021-10-13 11:15 ` Lars Ingebrigtsen
2021-10-13 12:25 ` Gregory Heytings
2021-10-13 12:59 ` Lars Ingebrigtsen
2021-10-13 12:55 ` Eli Zaretskii
2021-10-13 13:05 ` Gregory Heytings
2021-10-13 13:34 ` Eli Zaretskii
2021-10-13 14:28 ` Gregory Heytings
2021-10-13 14:30 ` Lars Ingebrigtsen
2021-10-13 14:52 ` Stefan Kangas
2021-10-13 15:32 ` Gregory Heytings
2021-10-13 15:45 ` Eli Zaretskii
2021-10-13 16:07 ` Gregory Heytings
2021-10-13 19:01 ` Eli Zaretskii
2021-10-13 21:53 ` Gregory Heytings
2021-10-13 22:55 ` Gregory Heytings
2021-10-14 7:29 ` Eli Zaretskii
2021-10-14 6:48 ` Eli Zaretskii
2021-10-14 7:41 ` Gregory Heytings
2021-10-14 12:07 ` Stefan Kangas
2021-10-14 12:09 ` Lars Ingebrigtsen
2021-10-14 12:27 ` Gregory Heytings
2021-10-14 12:30 ` Lars Ingebrigtsen
2021-10-14 12:58 ` Gregory Heytings
2021-10-14 13:28 ` Lars Ingebrigtsen
2021-10-14 13:31 ` Gregory Heytings
2021-10-14 13:36 ` Lars Ingebrigtsen
2021-10-14 13:41 ` Gregory Heytings
2021-10-14 13:42 ` Lars Ingebrigtsen
2021-10-14 13:53 ` Gregory Heytings
2021-10-14 13:59 ` Lars Ingebrigtsen
2021-10-14 14:14 ` Gregory Heytings
2021-10-14 19:07 ` Stefan Kangas
2021-10-14 19:13 ` Lars Ingebrigtsen
2021-10-14 19:32 ` Gregory Heytings
2021-10-14 20:01 ` Lars Ingebrigtsen
2021-10-14 20:04 ` Stefan Monnier
2021-10-14 20:17 ` Stefan Kangas
2021-10-14 20:35 ` Lars Ingebrigtsen
2021-10-14 20:43 ` Lars Ingebrigtsen
2021-10-14 20:58 ` Stefan Kangas
2021-10-14 21:02 ` Lars Ingebrigtsen
2021-10-14 21:10 ` Andreas Schwab
2021-10-14 21:58 ` Lars Ingebrigtsen
2021-10-16 17:07 ` Gregory Heytings
2021-10-14 20:59 ` Stefan Monnier
2021-10-14 21:11 ` Lars Ingebrigtsen
2021-10-14 19:31 ` Gregory Heytings
2021-10-14 19:54 ` Andreas Schwab
2021-10-14 19:59 ` Gregory Heytings
2021-10-14 22:22 ` Richard Stallman
2021-10-13 22:37 ` Richard Stallman
2021-10-12 19:28 ` Juri Linkov
2021-10-12 20:10 ` Lars Ingebrigtsen
2021-10-12 14:22 ` Eli Zaretskii
2021-10-13 22:36 ` Richard Stallman
2021-10-14 7:25 ` Eli Zaretskii
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=52799093.VymdKvaGTe@galex-713.eu \
--to=galex-713@galex-713.eu \
--cc=emacs-devel@gnu.org \
--cc=rms@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.