Skip to content

Instantly share code, notes, and snippets.

@oleasteo
Last active February 15, 2025 21:49
Show Gist options
  • Select an option

  • Save oleasteo/1199687dbf4bf1bec13f93bddc582562 to your computer and use it in GitHub Desktop.

Select an option

Save oleasteo/1199687dbf4bf1bec13f93bddc582562 to your computer and use it in GitHub Desktop.

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 (halmak) layout.

It requires keyd to be installed. Also, the compose:menu option must be enabled (setup differs by window manager).

# |main |ralt |ralt+shift
# u <ctx_menu>
# q ä Ä
# l ö Ö
# j ü Ü
# d ß ẞ
# x ×
# y ¤
# e €
# p §
# r ®
# c ©
# m ™
# i ⓘ
# ` ´ º
# \ † ‡
# s ← ⇐
# h ↓ ⇓
# n ↑ ⇑
# t → ⇒
# ; » “
# ' « ”
# , — (mdash) „
# / – (ndash) ≠
# . … ·
# (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]
u = S-f10
## äöüß (shift: ÄÖÜẞ implicit)
q = macro(compose a ")
l = macro(compose o ")
j = macro(compose u ")
d = macro(compose s s)
## פ€§
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)
m = macro(compose T M)
i = macro(compose ( i ))
` = macro(compose ' ')
\ = macro(compose | -)
## ←↓↑→
s = macro(compose < -)
h = macro(compose | v)
n = macro(compose | ^)
t = 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 ^ _ o)
\ = macro(compose | =)
[ = macro(compose . >)
] = macro(compose . <)
## ⇐⇓⇑⇒
s = macro(compose = <)
h = macro(compose = v)
n = macro(compose = ^)
t = macro(compose = >)
## “”„≠·<shy>
; = macro(compose < ")
' = 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