From 664a42a65564bf88fa2ead88506a4f9731612abb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Haoran=20S=2E=20Diao=20=28=E5=88=81=E6=B5=A9=E7=84=B6=29?=
<0@hairydiode.xyz>
Date: Tue, 19 Aug 2025 14:16:41 -0700
Subject: fixed angle brackets
---
xkbabuse.html | 51 +++++++++++++++++++++++++--------------------------
1 file changed, 25 insertions(+), 26 deletions(-)
(limited to 'xkbabuse.html')
diff --git a/xkbabuse.html b/xkbabuse.html
index ae8ff5c..e800f2b 100644
--- a/xkbabuse.html
+++ b/xkbabuse.html
@@ -16,9 +16,9 @@
>HairyDiode
--------------------------------------------------------------------------------
-Abusing X11's xkb for fun and profit 08-19-2025
+一二三四-->Abusing X11's xkb for fun and profit 08-19-2025
--------------------------------------------------------------------------------
Yesterday I was playing around with xkb keyboard layouts before I discovered
@@ -30,15 +30,15 @@ ex: /usr/share/X11/locale/en_US.UTF-8/Compose on my computer
# UTF-8 (Unicode) Compose sequences
#
# Spacing versions of accents (mostly)
- : "~" asciitilde # TILDE
- : "~" asciitilde # TILDE
- : "~" asciitilde # TILDE
- : "~" asciitilde # TILDE
- : "'" apostrophe # APOSTROPHE
+<dead_tilde> <space> : "~" asciitilde # TILDE
+<dead_tilde> <dead_tilde> : "~" asciitilde # TILDE
+<Multi_key> <minus> <space> : "~" asciitilde # TILDE
+<Multi_key> <space> <minus> : "~" asciitilde # TILDE
+<dead_acute> <space> : "'" apostrophe # APOSTROPHE
...
- : "ồ ocircumflex # LATIN SMALL LETTER O WITH CIRCUMFLEX
+<dead_circumflex> <o> : "ồ ocircumflex # LATIN SMALL LETTER O WITH CIRCUMFLEX
...
- : "⍠́ U2360 # : ⎕ APL FUNCTIONAL SYMBOL QUAD COLON
+<Multi_key> <colon> <U2395> : "⍠́ U2360 # : ⎕ APL FUNCTIONAL SYMBOL QUAD COLON
For those of you who are unaware, if you use for example a German keyboard
layout, pressing "^" followed by "o" will produce "ô". The circumflex "^" key is
@@ -64,9 +64,9 @@ aaa 98 鑆
into
- : "鑫"
- <1> : "龘"
- <2> : "鑆"
+<a> <a> <a> <space> : "鑫"
+<a> <a> <a> <1> : "龘"
+<a> <a> <a> <2> : "鑆"
To my surprise, after moving this file to ~/.XCompose it worked exactly as I
@@ -83,22 +83,22 @@ compose table use those as the inputs instead of qwerty keys.
Since I started this whole thing by messing with xkb layouts, it didn't take
long for me to edit the us layout into something like this:
- key {[ U9AD8, Q ]}; # 高
- key {[ U4E94, W ]}; # 五
- key {[ U4E00, E ]}; # 一
- key {[ U4E8C, R ]}; # 二
- key {[ U901A, T ]}; # 通
- key {[ U76CA, Y ]}; # 益
- key {[ U4EE5, U ]}; # 以
- key {[ U5F8C, I ]}; # 後
- key {[ U3007, O ]}; # 〇
- key {[ U5099, P ]}; # 備
+ key <AD01> {[ U9AD8, Q ]}; # 高
+ key <AD02> {[ U4E94, W ]}; # 五
+ key <AD03> {[ U4E00, E ]}; # 一
+ key <AD04> {[ U4E8C, R ]}; # 二
+ key <AD05> {[ U901A, T ]}; # 通
+ key <AD06> {[ U76CA, Y ]}; # 益
+ key <AD07> {[ U4EE5, U ]}; # 以
+ key <AD08> {[ U5F8C, I ]}; # 後
+ key <AD09> {[ U3007, O ]}; # 〇
+ key <AD10> {[ U5099, P ]}; # 備
And my compose table to look something like this:
- : "鑆"
- : "鑫"
- : "龘"
+<U5C0D> <U5C0D> <U5C0D> <U4E8C> <space> : "鑆"
+<U5C0D> <U5C0D> <U5C0D> <space> : "鑫"
+<U5C0D> <U5C0D> <U5C0D> <U8981> <space> : "龘"
Now if I set my keyboard layout to "boshiamy", it will be sending these custom
key symbols which will be interpreted by my custom compose rules, and if I
@@ -120,7 +120,6 @@ Boshiamy without the preview window or without any sort of predictive text.
The files I've created and further reading are in a git repo here
-
--
cgit v1.1