筆者のmacのノートの(macbook pro 2017)のキーボードのキーは日本語配列になっている.
xquartz内のキーボード入力は,xkbで制御するが,layoutをusに一括変換してくれる方法はみつからなかった.xmodmapを用いて元のレイアウトからusレイアウトになるようにした.
1. xquartz外では,lacailleでusレイアウトの打鍵を実現している.しかし,xquartz内では,lacailleが起動していると,xkbの制御が乱される.lacailleが起動していないと,jisレイアウト
のxkbの制御がうまく動作する.
2. xmodmap -pke > .xmodmaprc_for_usとして,このファイルでxkbのキー設定を変えていく.
また,その前に,xmodmap -pke > .xmodmaprc_asisとして,元のxkbのキー設定を保存しておく.
現在の両者の違いは,
bash-3.2$ diff .xmodmaprc_for_us .xmodmaprc_asis
20c20
< keycode 27 = 2 at trademark EuroSign
---
> keycode 27 = 2 quotedbl trademark EuroSign
23c23
< keycode 30 = 6 asciicircum section UFB02
---
> keycode 30 = 6 ampersand section UFB02
25,31c25,31
< keycode 32 = equal plus notequal plusminus
< keycode 33 = 9 parenleft ordfeminine periodcentered
< keycode 34 = 7 ampersand paragraph doubledagger
< keycode 35 = minus underscore endash emdash
< keycode 36 = 8 asterisk enfilledcircbullet degree
< keycode 37 = 0 parenright masculine singlelowquotemark
< keycode 38 = bracketright braceright leftsinglequotemark rightsinglequotemark
---
> keycode 32 = asciicircum asciitilde notequal plusminus
> keycode 33 = 9 parenright ordfeminine periodcentered
> keycode 34 = 7 apostrophe paragraph doubledagger
> keycode 35 = minus equal endash emdash
> keycode 36 = 8 parenleft enfilledcircbullet degree
> keycode 37 = 0 NoSymbol masculine singlelowquotemark
> keycode 38 = bracketleft braceleft leftsinglequotemark rightsinglequotemark
34c34
< keycode 41 = bracketleft braceleft leftdoublequotemark rightdoublequotemark
---
> keycode 41 = at grave leftdoublequotemark rightdoublequotemark
40c40
< keycode 47 = apostrophe quotedbl ae AE
---
> keycode 47 = colon asterisk ae AE
42,43c42,43
< keycode 49 = semicolon colon ellipsis Uacute
< keycode 50 = backslash bar guillemotleft guillemotright
---
> keycode 49 = semicolon plus ellipsis Uacute
> keycode 50 = bracketright braceright guillemotleft guillemotright
94c94
< keycode 101 = grave asciitilde backslash bar
---
> keycode 101 = yen bar backslash bar
3. 出来た.xmodmaprc_for_usを読み込む
xmodmap ~/.xmodmaprc_for_us
<2022/9/7 追記 catalinaでクリーンインストールする羽目になり、.xomdmap_for_usのコピーを取るのを忘れており、上記の.xomdmap_asisを手作業で修正した。今後のためにパッチを当てれるようにしておく。
diff -u .xmodmaprc_asis .xmodmaprc_for_us > xmodus.patch
cat xmodus.patch
cat xmodus.patch
--- .xmodmaprc_asis 2022-09-07 19:01:56.000000000 +0900
+++ .xmodmaprc_for_us 2022-09-07 19:11:21.000000000 +0900
@@ -17,30 +17,30 @@
keycode 24 = y Y yen Aacute
keycode 25 = t T dagger caron
keycode 26 = 1 exclam exclamdown U2044
-keycode 27 = 2 quotedbl trademark EuroSign
+keycode 27 = 2 at trademark EuroSign
keycode 28 = 3 numbersign sterling U2039
keycode 29 = 4 dollar cent U203A
-keycode 30 = 6 ampersand section UFB02
+keycode 30 = 6 asciicircum section UFB02
keycode 31 = 5 percent infinity UFB01
-keycode 32 = asciicircum asciitilde notequal plusminus
-keycode 33 = 9 parenright ordfeminine periodcentered
-keycode 34 = 7 apostrophe paragraph doubledagger
-keycode 35 = minus equal endash emdash
-keycode 36 = 8 parenleft enfilledcircbullet degree
-keycode 37 = 0 NoSymbol masculine singlelowquotemark
-keycode 38 = bracketleft braceleft leftsinglequotemark rightsinglequotemark
+keycode 32 = equal plus notequal plusminus
+keycode 33 = 9 parenleft ordfeminine periodcentered
+keycode 34 = 7 ampersand paragraph doubledagger
+keycode 35 = minus underscore endash emdash
+keycode 36 = 8 asterisk enfilledcircbullet degree
+keycode 37 = 0 parenright masculine singlelowquotemark
+keycode 38 = bracketright braceright leftsinglequotemark rightsinglequotemark
keycode 39 = o O oslash Oslash
keycode 40 = u U dead_diaeresis diaeresis
-keycode 41 = at grave leftdoublequotemark rightdoublequotemark
+keycode 41 = bracketleft braceleft leftdoublequotemark rightdoublequotemark
keycode 42 = i I dead_circumflex U02C6
keycode 43 = p P Greek_pi U220F
keycode 44 = Return NoSymbol Return
keycode 45 = l L notsign Ograve
keycode 46 = j J U2206 Ocircumflex
-keycode 47 = colon asterisk ae AE
+keycode 47 = apostrophe quotedbl ae AE
keycode 48 = k K U02DA UF8FF
-keycode 49 = semicolon plus ellipsis Uacute
-keycode 50 = bracketright braceright guillemotleft guillemotright
+keycode 49 = semicolon colon ellipsis Uacute
+keycode 50 = backslash bar guillemotleft guillemotright
keycode 51 = comma less lessthanequal macron
keycode 52 = slash question division questiondown
keycode 53 = n N dead_tilde U02DC
@@ -91,7 +91,7 @@
keycode 98 = F20 NoSymbol F20
keycode 99 = KP_8 NoSymbol KP_8
keycode 100 = KP_9 NoSymbol KP_9
-keycode 101 = yen bar backslash bar
+keycode 101 = grave asciitilde backslash bar
keycode 102 = underscore NoSymbol dead_grave grave
keycode 103 = comma NoSymbol comma
keycode 104 = F5 NoSymbol F5
これらの行をxmodus_patchとして保存し、
patch -u .xmodmap_asis < xmodus_patch -o .xmodmap_for_usで.xmodmap_for_usが作れる。
>