From: "Alexander Prähauser via Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Po Lu <luangruo@yahoo.com>
Cc: Eli Zaretskii <eliz@gnu.org>, 68930@debbugs.gnu.org
Subject: bug#68930: 30.0.50; Emacs conflates C-Ω and C-ω
Date: Tue, 06 Feb 2024 13:22:11 +0000 [thread overview]
Message-ID: <87a5odaft6.fsf@protonmail.com> (raw)
In-Reply-To: <87eddpagao.fsf@protonmail.com>
[-- Attachment #1: Type: text/plain, Size: 1937 bytes --]
Alexander Prähauser <ahprae@protonmail.com> writes:
> "Po Lu" <luangruo@yahoo.com> writes:
>
>> Eli Zaretskii <eliz@gnu.org> writes:
>>
>>> I think Alexander says that the bindings are reversed, i.e. C-Δ
>>> invokes the binding of C-δ and vice versa. That's the bug he is
>>> complaining about. Your description seems to suggest that both keys
>>> should have invoked the same command, not two different commands
>>> exactly reversed from how they were bound.
>>
>> If so, I can't reproduce the bug by binding keys to the characters he
>> specified in his e-mail. Alexander, please send the lines in your XKB
>> keymap which bind those characters, or alternatively run:
>>
>> xkbcomp :0 test.xkb
>>
>> and attach the test.xkb file produced. Thanks in advance.
>
> The line for, for instance, ω and Ω is
>
> key <AB09> { [ w, W,
> EuroSign, U03C9, 9,
> U221E, U03A9, U1F61F ]
> };
>
> Here, lowercase Greek symbols are on the fourth layer and uppercase on
> the seventh. I also included the test.xkb file that you mentioned. I
> just had the thought that maybe the behavior can be explained by the way
> higher layers are accessed through modifiers: I looked it up, and
> usually the fourth layer is accessed through CapsLock and RightShift and
> the seventh through CapsLock and RightAlt, but I made it so that the
> fourth layer can also be accessed through Backslash and Grave, and if I
> use either combination to type C-ω it acts as if I was typing C-Ω.
Here is the overall keyboard config I'm using, just in case. I'm using
Dual Function Keys to place modifiers, for lower-case Greek letters on
the E key and the 9 key and for uppercase Greek letters on Tab and
Rightbrace, and the xkb file is called Daselt, because that's what I
called the overall layout.
[-- Attachment #2: my-mappings.yaml --]
[-- Type: application/octet-stream, Size: 2661 bytes --]
MAPPINGS:
- KEY: KEY_SPACE
TAP: KEY_SPACE
HOLD: KEY_RIGHTCTRL
# Level 2 modifiers (Shift modifiers)
- KEY: KEY_SLASH
TAP: KEY_SLASH
HOLD: KEY_RIGHTSHIFT
- KEY: KEY_102ND
TAP: KEY_102ND
HOLD: KEY_LEFTSHIFT
- KEY: KEY_LEFTSHIFT
TAP: KEY_102ND
HOLD: KEY_LEFTSHIFT
# Level 3 modifiers (Special symbols)
- KEY: KEY_APOSTROPHE
TAP: KEY_F14
HOLD: KEY_APOSTROPHE
- KEY: KEY_CAPSLOCK
TAP: KEY_F14
HOLD: KEY_APOSTROPHE
# Level 4 modifiers (Numbers and Arrows)
- KEY: KEY_LEFTALT
TAP: KEY_F15
HOLD: KEY_RIGHTALT
- KEY: KEY_RIGHTALT
TAP: KEY_F15
HOLD: KEY_RIGHTALT
# Level 5 modifiers (Lowercase Greek letters)
- KEY: KEY_RIGHTSHIFT
TAP: [KEY_CAPSLOCK, KEY_RIGHTSHIFT]
HOLD: [KEY_CAPSLOCK, KEY_RIGHTSHIFT]
- KEY: KEY_9
TAP: KEY_E
HOLD: [KEY_CAPSLOCK, KEY_RIGHTSHIFT]
- KEY: KEY_E
TAP: KEY_E
HOLD: [KEY_BACKSLASH, KEY_GRAVE]
# Level 6 modifiers (Math symbols)
- KEY: KEY_8
TAP: KEY_SCROLLLOCK
HOLD: [KEY_RIGHTALT, KEY_RIGHTSHIFT]
- KEY: KEY_4
TAP: KEY_SCROLLLOCK
HOLD: [KEY_8, KEY_GRAVE]
# Level 7 modifiers (Uppercase Greek letters)
- KEY: KEY_TAB
TAP: KEY_RIGHTBRACE
HOLD: [KEY_CAPSLOCK, KEY_RIGHTALT]
- KEY: KEY_RIGHTBRACE
TAP: KEY_RIGHTBRACE
HOLD: [KEY_CAPSLOCK, KEY_RIGHTALT]
- KEY: KEY_7
TAP: KEY_SCROLLLOCK
HOLD: [KEY_CAPSLOCK, KEY_RIGHTALT]
# Level 8 modifiers (Cyrillic letters)
- KEY: KEY_COMPOSE
TAP: KEY_6
HOLD: [KEY_RIGHTALT, KEY_CAPSLOCK, KEY_RIGHTSHIFT]
- KEY: KEY_LEFTMETA
TAP: KEY_6
HOLD: [KEY_RIGHTALT, KEY_CAPSLOCK, KEY_LEFTSHIFT]
- KEY: KEY_6
TAP: KEY_6
HOLD: KEY_6
# Use 2, 3, 4 and 5 keys to navigate between tabs and programs (3 key is configured in xkb)
# - KEY: KEY_4
# TAP: KEY_LEFTMETA
# HOLD: KEY_LEFTALT
- KEY: KEY_5
TAP: KEY_RIGHTCTRL
HOLD: KEY_RIGHTCTRL
- KEY: KEY_2
TAP: [KEY_LEFTSHIFT, KEY_TAB]
HOLD: [KEY_LEFTSHIFT, KEY_TAB]
# Configure Hyper modifier keys
- KEY: KEY_0
TAP: KEY_TAB
HOLD: KEY_1
- KEY: KEY_1
TAP: KEY_LEFTALT
HOLD: KEY_1
# # Send CapsLock when holding 0
# - KEY: KEY_0
# TAP: KEY_0
# HOLD: KEY_CAPSLOCK
# Make Grave act as Minus
- KEY: KEY_GRAVE
TAP: KEY_MINUS
HOLD: KEY_MINUS
# Make Keypad into one-handed navigation board
# - KEY: KEY_KP1
# TAP: KEY_KP1
# HOLD: KEY_KP1
- KEY: KEY_KP3
TAP: KEY_RIGHTCTRL
HOLD: KEY_RIGHTCTRL
# Put Hyper modifier on B-key
- KEY: KEY_B
TAP: KEY_B
HOLD: KEY_0
# Put Meta modifier on 1-key
- KEY: KEY_1
TAP: KEY_1
HOLD: KEY_1
[-- Attachment #3: daselt --]
[-- Type: application/octet-stream, Size: 22400 bytes --]
// -*-c-*-
// The Tilde/Grave key (while pressed) chooses the second shift level.
partial modifier_keys
xkb_symbols "tlde_switch" {
key <TLDE> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ Shift_L ]
};
};
// The AC11 key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "ac11_switch" {
key <AC11> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift ]
};
};
// The AE08 key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "ae08_switch" {
key <AE08> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift ]
};
};
partial alphanumeric_keys
xkb_symbols "daselt_base" {
include "de(neo_base)"
key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK";
key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK";
key <TLDE> { [ 1, Super_L, threesuperior, NoSymbol, numerosign, threesubscript, logicaland, NoSymbol ] };
key <AE01> { [ Super_L, Super_L, Super_L, Super_L, Super_L, Super_L, Super_L, Super_L ] };
key <AE03> { [ Tab, Tab, threesuperior, NoSymbol, numerosign, threesubscript, logicaland, NoSymbol ] };
key <AE05> { [ Control_L, U2113, threesuperior, NoSymbol, numerosign, threesubscript, logicaland, NoSymbol ] };
key <AE06> { [ Meta_L, U2113, threesuperior, NoSymbol, numerosign, threesubscript, logicaland, NoSymbol ] };
key <AE07> { [ BackSpace, U2113, threesuperior, NoSymbol, numerosign, threesubscript, logicaland, NoSymbol ] };
key <AE09> { [ KP_9, U2113, threesuperior, NoSymbol, numerosign, threesubscript, logicaland, NoSymbol ] };
key <AE10> { [ Hyper_L, Hyper_L, Hyper_L, Hyper_L, Hyper_L, Hyper_L, Hyper_L, Hyper_L ] };
key <AE11> { [ Super_L, Super_L, Super_L, Super_L, Super_L, Super_L, Super_L, Super_L ] };
key <AE12> { [ colon, U2113, threesuperior, NoSymbol, numerosign, threesubscript, logicaland, NoSymbol ] };
key <AD01> { [ p, P, NoSymbol, Greek_pi, KP_Home, U27E1, Greek_PI, U1F970 ] };
key <AD02> { [ u, U, U27E8, U0380, emdash, U21A4, U0471, U2764 ] };
key <AD03> { [ quotedbl, apostrophe, bracketleft, U03DD, KP_Up, U2191, U1D53C, U1F607 ] };
key <AD04> { [ comma, comma, semicolon, U0372, BackSpace, U2190, U2A3E, U1F601 ] };
key <AD05> { [ q, Q, division, U03D8, KP_End, U2197, U211A, U1F605 ] };
key <AD06> { [ v, V, multiply, U03E0, KP_Subtract, U2196, U1D54D, U1F923 ] };
key <AD07> { [ c, C, colon, Greek_chi, 4, U2192, U2102, U1F644 ] };
key <AD08> { [ l, L, equal, Greek_lambda, 5, U2193, Greek_LAMBDA, U1F609 ] };
key <AD09> { [ m, M, ampersand, Greek_mu, 6, U21A6, U029A, U1F48B ] };
key <AD10> { [ f, F, parenright, Greek_phi, KP_Add, U2208, Greek_PHI, U1F618 ] };
key <AD11> { [ j, J, bracketright, U03DF, KP_Multiply, U2218, U00FE, U1F60D ] };
key <AD12> { [ dead_grave, dead_cedilla, U27E9, dead_psili, dead_doubleacute, dead_abovering, dead_breve, U1F972 ] };
key <AC01> { [ h, H, U2200, Greek_eta, KP_Prior, U2223, U210D, U1F60F ] };
key <AC02> { [ i, I, slash, Greek_iota, KP_Left, partialderivative, U1D540, U1F62C ] };
key <AC03> { [ e, E, braceleft, Greek_epsilon, KP_Down, U2227, U1D538, U1F44D ] };
key <AC04> { [ a, A, parenleft, Greek_alpha, KP_Right, U003C, U2135, U270B ] };
key <AC05> { [ o, O, minus, Greek_omicron, KP_Next, U2210, U2207, U1F44F ] };
key <AC06> { [ d, D, plus, Greek_delta, KP_Enter, U220F, U0394, U1F64F ] };
key <AC07> { [ t, T, dollar, Greek_tau, 1, U003E, U1D54B, U1F44C ] };
key <AC08> { [ r, R, asterisk, Greek_rho, 2, U2228, NoSymbol, U1F44E ] };
key <AC09> { [ n, N, backslash, Greek_nu, 3, U222B, U2115, U1F928 ] };
key <AC10> { [ s, S, U2203, Greek_sigma, KP_Decimal, U2225, Greek_SIGMA, U1FAE1 ] };
key <AC11> { [ quotedbl, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, jot, NoSymbol, NoSymbol ] };
key <LSGT> { [ question, question, U00A7, Greek_finalsmallsigma, Escape, U22C9, U1D55C, U1F634 ] };
key <AB01> { [ k, K, U1E9E, Greek_kappa, Delete, U22C4, U1D542, U1F631 ] };
key <AB02> { [ y, Y, numbersign, Greek_upsilon, U2219, U2205, U00F0, U1F635 ] };
key <AB03> { [ x, X, NoSymbol, Greek_xi, U00AC, U2216, Greek_XI, U1F914 ] };
key <AB04> { [ period, period, underscore, U03DE, Tab, U2198, U2261, U1F60C ] };
key <AB05> { [ grave, dead_caron, at, Greek_psi, U00B6, U2194, Greek_PSI, U1F971 ] };
key <AB06> { [ b, B, dead_circumflex, Greek_beta, KP_Separator, U2199, U05D1, U1F614 ] };
key <AB07> { [ g, G, asciitilde, U03B3, 7, radical, Greek_GAMMA, U1F92E ] };
key <AB08> { [ z, Z, percent, Greek_zeta, 8, U2211, U2124, U1F641 ] };
key <AB09> { [ w, W, EuroSign, U03C9, 9, U221E, U03A9, U1F61F ] };
key <AB10> { [ exclam, exclam, braceright, Greek_theta, KP_Divide, U22CA, Greek_THETA, U1F62D ] };
key <BKSL> { [ dead_grave, dead_cedilla, dead_abovering, NoSymbol, dead_diaeresis, dead_dasia, dead_macron, NoSymbol ] };
key <KP1> { [ Tab, dead_cedilla, dead_abovering, NoSymbol, dead_diaeresis, dead_dasia, dead_macron, NoSymbol ] };
// key <KP3> { [ Control_L, dead_cedilla, dead_abovering, NoSymbol, dead_diaeresis, dead_dasia, dead_macron, NoSymbol ] };
};
partial alphanumeric_keys modifier_keys keypad_keys
xkb_symbols "daselt" {
include "daselt(daselt_base)"
name[Group1]= "German (Daselt)";
include "shift(both_capslock)"
include "level3(caps_switch)"
include "level3(bksl_switch)"
include "level5(ralt_switch)"
include "daselt(tlde_switch)"
include "daselt(ac11_switch)"
include "daselt(ae08_switch)"
modifier_map Mod2 { Hyper_L };
modifier_map Mod4 { Super_L };
};
partial alphanumeric_keys
xkb_symbols "daselt_cyrillic_base" {
include "de(neo_base)"
key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK";
key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK";
key <TLDE> { [ 1, Super_L, threesuperior, NoSymbol, numerosign, threesubscript, logicaland, NoSymbol ] };
key <AE01> { [ Super_L, Super_L, Super_L, Super_L, Super_L, Super_L, Super_L, Super_L ] };
key <AE03> { [ Tab, Tab, threesuperior, NoSymbol, numerosign, threesubscript, logicaland, NoSymbol ] };
key <AE05> { [ Control_L, U2113, threesuperior, NoSymbol, numerosign, threesubscript, logicaland, NoSymbol ] };
key <AE06> { [ Meta_L, U2113, threesuperior, NoSymbol, numerosign, threesubscript, logicaland, NoSymbol ] };
key <AE07> { [ BackSpace, U2113, threesuperior, NoSymbol, numerosign, threesubscript, logicaland, NoSymbol ] };
key <AE09> { [ KP_9, U2113, threesuperior, NoSymbol, numerosign, threesubscript, logicaland, NoSymbol ] };
key <AE10> { [ Hyper_L, Hyper_L, Hyper_L, Hyper_L, Hyper_L, Hyper_L, Hyper_L, Hyper_L ] };
key <AE11> { [ Super_L, Super_L, Super_L, Super_L, Super_L, Super_L, Super_L, Super_L ] };
key <AE12> { [ colon, U2113, threesuperior, NoSymbol, numerosign, threesubscript, logicaland, NoSymbol ] };
key <AD01> { [ p, P, NoSymbol, Greek_pi, Home, multiply, Greek_PI, U043F ] };
key <AD02> { [ u, U, U27E8, U0380, emdash, U21A4, U0471, U0443 ] };
key <AD03> { [ quotedbl, apostrophe, bracketleft, U03DD, Up, U2191, U1D53C, U045F ] };
key <AD04> { [ comma, comma, semicolon, U0372, BackSpace, U2190, U2A3E, U0448 ] };
key <AD05> { [ q, Q, division, U03D8, End, U2197, U211A, U044C ] };
key <AD06> { [ v, V, multiply, U03E0, NoSymbol, U2196, U1D54D, U0432 ] };
key <AD07> { [ c, C, colon, Greek_chi, 4, U2192, U2102, U0447 ] };
key <AD08> { [ l, L, equal, Greek_lambda, 5, U2193, Greek_LAMBDA, U043B ] };
key <AD09> { [ m, M, ampersand, Greek_mu, 6, U21A6, U1D544, U043C ] };
key <AD10> { [ f, F, parenright, Greek_phi, NoSymbol, U2208, Greek_PHI, U0444 ] };
key <AD11> { [ j, J, bracketright, U03DF, U066D, U2218, U1D541, U044A ] };
key <AD12> { [ U00A7, dead_grave, U3009, dead_psili, dead_doubleacute, NoSymbol, dead_breve, NoSymbol ] };
key <AC01> { [ h, H, U2200, Greek_eta, KP_Prior, U2223, U210D, U0445 ] };
key <AC02> { [ i, I, slash, Greek_iota, KP_Left, partialderivative, U1D540, U0438 ] };
key <AC03> { [ e, E, braceleft, Greek_epsilon, KP_Down, U2227, U1D538, U044D ] };
key <AC04> { [ a, A, parenleft, Greek_alpha, KP_Right, U003C, U2135, U044F ] };
key <AC05> { [ o, O, minus, Greek_omicron, KP_Next, U2210, U2207, U043E ] };
key <AC06> { [ d, D, plus, Greek_delta, KP_Enter, U220F, U0394, U0434 ] };
key <AC07> { [ t, T, dollar, Greek_tau, 1, U003E, U1D54B, U0442 ] };
key <AC08> { [ r, R, asterisk, Greek_rho, 2, U2228, NoSymbol, U0440 ] };
key <AC09> { [ n, N, backslash, Greek_nu, 3, U222B, U2115, U043D ] };
key <AC10> { [ s, S, U2203, Greek_sigma, KP_Decimal, U2225, Greek_SIGMA, U0441 ] };
key <AC11> { [ quotedbl, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, jot, NoSymbol, NoSymbol ] };
key <AB01> { [ k, K, U1E9E, Greek_kappa, NoSymbol, U22C4, U1D542, U043A ] };
key <AB02> { [ y, Y, numbersign, Greek_upsilon, U2219, U2205, U1D550, U044E ] };
key <AB03> { [ x, X, NoSymbol, Greek_xi, U00AC, U2216, Greek_XI, U044B ] };
key <AB04> { [ period, period, underscore, U03DE, Tab, U2198, U2261, U0449 ] };
key <AB05> { [ grave, dead_caron, U029A, Greek_psi, at, U2194, Greek_PSI, U0446 ] };
key <AB06> { [ b, B, dead_circumflex, Greek_beta, KP_Separator, U2199, U05D1, U0431 ] };
key <AB07> { [ g, G, asciitilde, Greek_gamma, 7, radical, Greek_GAMMA, U0433 ] };
key <AB08> { [ z, Z, percent, Greek_zeta, 8, U2211, U2124, U0436 ] };
key <AB09> { [ w, W, EuroSign, Greek_omega, 9, U221E, Greek_OMEGA, U0437 ] };
key <AB10> { [ exclam, exclam, braceright, Greek_theta, comma, U22CA, Greek_THETA, U045A ] };
key <LSGT> { [ exclam, U02A1, U00A7, Greek_finalsmallsigma, Escape, U22C9, U1D55C, U0452 ] };
key <BKSL> { [ dead_grave, dead_cedilla, dead_abovering, NoSymbol, dead_diaeresis, dead_dasia, dead_macron, NoSymbol ] };
key <KP1> { [ Tab, dead_cedilla, dead_abovering, NoSymbol, dead_diaeresis, dead_dasia, dead_macron, NoSymbol ] };
// key <KP3> { [ Control_L, dead_cedilla, dead_abovering, NoSymbol, dead_diaeresis, dead_dasia, dead_macron, NoSymbol ] };
};
partial alphanumeric_keys modifier_keys keypad_keys
xkb_symbols "daselt_cyrillic" {
include "daselt_(daselt_cyrillic_base)"
name[Group1]= "German (Daselt_Cyrillic)";
include "shift(both_capslock)"
include "level3(caps_switch)"
include "level3(bksl_switch)"
include "level5(ralt_switch)"
include "daselt(tlde_switch)"
include "daselt(ac11_switch)"
include "daselt(ae08_switch)"
modifier_map Mod2 { Hyper_L };
modifier_map Mod4 { Super_L };
};
next prev parent reply other threads:[~2024-02-06 13:22 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-04 20:49 bug#68930: 30.0.50; Emacs conflates C-Ω and C-ω Alexander Prähauser via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-05 12:48 ` Eli Zaretskii
[not found] ` <878r3yalww.fsf@protonmail.com>
2024-02-05 19:10 ` Eli Zaretskii
2024-02-05 23:00 ` Alexander Prähauser via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-06 0:07 ` Alexander Prähauser via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-06 4:11 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-06 12:33 ` Eli Zaretskii
2024-02-06 12:57 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-06 13:11 ` Alexander Prähauser via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-06 13:22 ` Alexander Prähauser via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2024-02-06 14:16 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-06 12:34 ` Alexander Prähauser via Bug reports for GNU Emacs, the Swiss army knife of text editors
[not found] ` <87r0hp9d4x.fsf@protonmail.com>
[not found] ` <87o7cs6a1x.fsf@yahoo.com>
[not found] ` <87eddoa3mp.fsf@protonmail.com>
[not found] ` <87jzng5uz1.fsf@yahoo.com>
[not found] ` <87a5oca09q.fsf@protonmail.com>
[not found] ` <878r3w5r56.fsf@yahoo.com>
[not found] ` <875xyz9or5.fsf@protonmail.com>
[not found] ` <87wmrf2ndz.fsf@yahoo.com>
[not found] ` <871q9n9n1f.fsf@protonmail.com>
2024-02-08 12:38 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-08 13:00 ` Alexander Prähauser via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-08 13:26 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-08 14:32 ` Alexander Prähauser via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-24 9:33 ` 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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87a5odaft6.fsf@protonmail.com \
--to=bug-gnu-emacs@gnu.org \
--cc=68930@debbugs.gnu.org \
--cc=ahprae@protonmail.com \
--cc=eliz@gnu.org \
--cc=luangruo@yahoo.com \
/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 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).