RFE: Make Caps Lock Toggle ß and ẞ
Since some time ago (xkeyboard-config/xkeyboard-config@d1411e5e) many keyboard layouts define (ssharp is the traditional, lower-case ß and U1E9E is the recently introduced, upper-case ẞ):
key { [ s, S, ssharp, U1E9E ] };
Unlike with other lower-case/upper-case letter pairs, Caps Lock does not toggle these. Meaning that without Caps Lock the key produces sSßẞ but with Caps Lock on the same key produces Ssßẞ. This is due to Unicode specification that glibc locale data follows:
https://unicode.org/faq/casemap_charprop.html
Q: Why does ß (U+00DF LATIN SMALL LETTER SHARP S) not uppercase to U+1E9E LATIN CAPITAL LETTER SHARP S by default?
A: In standard German orthography, the sharp s ("ß") used to be exclusively uppercased to a sequence of two capital S characters. This longstanding practice is reflected in the default case mappings in Unicode. A capital form of ß is sometimes preferred for typographic reasons or to avoid ambiguity, such as in uppercase names as found in passports. It is encoded in the Unicode Standard as U+1E9E. While this character is not widely used, is now recognized in the official orthography as an optional uppercase form of ß in addition to "SS". Because it is only an optional alternative, the original mapping to "SS" is retained in the Unicode character properties.
I have checked (off-list) with glibc maintainers that they are unwilling to deviate from Unicode with this regard.
However, in the case of a user having these keymap definitions in use and trying to use Caps Lock this deviation from other letters is unintuitive. It would be helpful if we could make ß/ẞ to follow the same Caps Lock behavior as other letters. Since glibc is too low-level for this and xkeyboard-config seem too high-level I'm filing this RFE against initially libX11 for evalution.
Thanks.