Skip to content

Instantly share code, notes, and snippets.

@oleasteo
Created October 2, 2024 00:28
Show Gist options
  • Save oleasteo/421802950cd767cfe87ec12b84e44150 to your computer and use it in GitHub Desktop.
Save oleasteo/421802950cd767cfe87ec12b84e44150 to your computer and use it in GitHub Desktop.
key layout: en_US + german umlauts + special + greek
# ~/.XCompose
# load defaults ( /usr/share/X11/locale/en_US.UTF-8/Compose )
include "%L"
<Multi_key> <g> <A> : "Α" U0391 # GREEK CAPITAL LETTER ALPHA
<Multi_key> <g> <a> : "α" U03B1 # GREEK SMALL LETTER ALPHA
<Multi_key> <g> <B> : "Β" U0392 # GREEK CAPITAL LETTER BETA
<Multi_key> <g> <b> : "β" U03B2 # GREEK SMALL LETTER BETA
<Multi_key> <g> <D> : "Δ" U0394 # GREEK CAPITAL LETTER DELTA
<Multi_key> <g> <d> : "δ" U03B4 # GREEK SMALL LETTER DELTA
<Multi_key> <g> <E> : "Ε" U0395 # GREEK CAPITAL LETTER EPSILON
<Multi_key> <g> <e> : "ε" U03B5 # GREEK SMALL LETTER EPSILON
<Multi_key> <g> <F> : "Φ" U03A6 # GREEK CAPITAL LETTER PHI
<Multi_key> <g> <f> : "φ" U03C6 # GREEK SMALL LETTER PHI
<Multi_key> <g> <G> : "Γ" U0393 # GREEK CAPITAL LETTER GAMMA
<Multi_key> <g> <g> : "γ" U03B3 # GREEK SMALL LETTER GAMMA
<Multi_key> <g> <H> : "Η" U0397 # GREEK CAPITAL LETTER ETA
<Multi_key> <g> <h> : "η" U03B7 # GREEK SMALL LETTER ETA
<Multi_key> <g> <I> : "Ι" U0399 # GREEK CAPITAL LETTER IOTA
<Multi_key> <g> <i> : "ι" U03B9 # GREEK SMALL LETTER IOTA
<Multi_key> <g> <J> : "Θ" U0398 # GREEK CAPITAL LETTER THETA
<Multi_key> <g> <j> : "θ" U03B8 # GREEK SMALL LETTER THETA
<Multi_key> <g> <K> : "Κ" U039A # GREEK CAPITAL LETTER KAPPA
<Multi_key> <g> <k> : "κ" U03BA # GREEK SMALL LETTER KAPPA
<Multi_key> <g> <L> : "Λ" U039B # GREEK CAPITAL LETTER LAMDA
<Multi_key> <g> <l> : "λ" U03BB # GREEK SMALL LETTER LAMDA
<Multi_key> <g> <M> : "Μ" U039C # GREEK CAPITAL LETTER MU
<Multi_key> <g> <m> : "μ" U03BC # GREEK SMALL LETTER MU
<Multi_key> <g> <N> : "Ν" U039D # GREEK CAPITAL LETTER NU
<Multi_key> <g> <n> : "ν" U03BD # GREEK SMALL LETTER NU
<Multi_key> <g> <O> : "Ο" U039F # GREEK CAPITAL LETTER OMICRON
<Multi_key> <g> <o> : "ο" U03BF # GREEK SMALL LETTER OMICRON
<Multi_key> <g> <P> : "Π" U03A0 # GREEK CAPITAL LETTER PI
<Multi_key> <g> <p> : "π" U03C0 # GREEK SMALL LETTER PI
<Multi_key> <g> <Q> : "Χ" U03A7 # GREEK CAPITAL LETTER CHI
<Multi_key> <g> <q> : "χ" U03C7 # GREEK SMALL LETTER CHI
<Multi_key> <g> <R> : "Ρ" U03A1 # GREEK CAPITAL LETTER RHO
<Multi_key> <g> <r> : "ρ" U03C1 # GREEK SMALL LETTER RHO
<Multi_key> <g> <S> : "Σ" U03A3 # GREEK CAPITAL LETTER SIGMA
<Multi_key> <g> <s> : "σ" U03C3 # GREEK SMALL LETTER SIGMA
<Multi_key> <g> <T> : "Τ" U03A4 # GREEK CAPITAL LETTER TAU
<Multi_key> <g> <t> : "τ" U03C4 # GREEK SMALL LETTER TAU
<Multi_key> <g> <U> : "Υ" U03A5 # GREEK CAPITAL LETTER UPSILON
<Multi_key> <g> <u> : "υ" U03C5 # GREEK SMALL LETTER UPSILON
<Multi_key> <g> <W> : "Ω" U03A9 # GREEK CAPITAL LETTER OMEGA
<Multi_key> <g> <w> : "ω" U03C9 # GREEK SMALL LETTER OMEGA
<Multi_key> <g> <X> : "Ξ" U039E # GREEK CAPITAL LETTER XI
<Multi_key> <g> <x> : "ξ" U03BE # GREEK SMALL LETTER XI
<Multi_key> <g> <Y> : "Ψ" U03A8 # GREEK CAPITAL LETTER PSI
<Multi_key> <g> <y> : "ψ" U03C8 # GREEK SMALL LETTER PSI
<Multi_key> <g> <Z> : "Ζ" U0396 # GREEK CAPITAL LETTER ZETA
<Multi_key> <g> <z> : "ζ" U03B6 # GREEK SMALL LETTER ZETA
<Multi_key> <g> <space> : "µ" U00B5 # MICRO SIGN

This is my setup to add german umlauts and other special characters (in a mapping that makes sense to me, personally) via R_ALT to my en_US layout. It requires keyd to be installed. Also, the compose:menu option must be enabled (setup differs by window manager).

In addition (.XCompose file), I add the greek alphabet via the MENU g <a-Z,space> key sequence.

# /etc/keyd/default.conf
# |main |ralt |ralt+shift
# m <ctx_menu>
# a ä Ä
# o ö Ö
# u ü Ü
# s ß ẞ
# q @
# x ×
# y ¤
# e €
# p §
# r ®
# c ©
# t ™
# i ⓘ
# ` º
# \ † ‡
# h ← ⇐
# j ↓ ⇓
# k ↑ ⇑
# l → ⇒
# ; » “
# ' « ”
# , › „
# / ‹
# . … ·
# (space)   (nbsp) ­ (shy)
# - – (ndash) — (mdash)
# = ≈ ≠
# [ ≤
# ] ≥
# 1 ¹
# 2 ²
# 3 ³
# 4 ⁴
# 5 ⁵ ‰
# 6 ⁶
# 7 ⁷
# 8 ⁸ ∞
# 9 ⁹
# 0 ⁰ ±
# A list of compose sequences can be found in /usr/share/X11/locale/en_US.UTF-8/Compose on most systems.
[ids]
*
[main]
rightalt = layer(diac)
[diac:A]
m = S-f10
## äöüß (shift: ÄÖÜẞ implicit)
a = macro(compose a ")
o = macro(compose o ")
u = macro(compose u ")
s = macro(compose s s)
## @פ€§
q = macro(compose A T)
x = macro(compose x x)
y = macro(compose O X)
e = macro(compose c =)
p = macro(compose S O)
## ®©™ⓘº†
r = macro(compose O R)
c = macro(compose O C)
t = macro(compose T M)
i = macro(compose ( i ))
` = macro(compose ^ _ o)
\ = macro(compose | -)
## ←↓↑→
h = macro(compose < -)
j = macro(compose | v)
k = macro(compose | ^)
l = macro(compose - >)
## »«›‹…<nbsp>
; = macro(compose > >)
' = macro(compose < <)
, = macro(compose . >)
/ = macro(compose . <)
. = macro(compose . .)
space = macro(compose space space)
## –≈≤≥
- = macro(compose - - .)
= = macro(compose ~ ~)
[ = macro(compose < =)
] = macro(compose > =)
## ¹²³⁴⁵⁶⁷⁸⁹⁰
1 = macro(compose ^ 1)
2 = macro(compose ^ 2)
3 = macro(compose ^ 3)
4 = macro(compose ^ 4)
5 = macro(compose ^ 5)
6 = macro(compose ^ 6)
7 = macro(compose ^ 7)
8 = macro(compose ^ 8)
9 = macro(compose ^ 9)
0 = macro(compose ^ 0)
[diac+shift]
## ‡
\ = macro(compose | =)
## ⇐⇓⇑⇒
h = macro(compose = <)
j = macro(compose = v)
k = macro(compose = ^)
l = macro(compose = >)
## “”»·<shy>
; = macro(compose < ")
' = macro(compose > ")
, = macro(compose , ")
. = macro(compose ^ .)
space = macro(compose - - space)
## ѭ䰱
- = macro(compose - - -)
= = macro(compose / =)
5 = macro(compose % o)
8 = macro(compose 8 8)
0 = macro(compose + -)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment