--- Mozc-20.04-2.23.2815.102+dfsg-8ubuntu1/mozc-2.23.2815.102+dfsg/src/unix/emacs/mozc.el	2018-04-03 08:03:55.000000000 +0900
+++ Mozc-NXkana-20.04-20210701/mozc-2.23.2815.102+dfsg/src/unix/emacs/mozc.el	2021-07-01 20:51:18.260551198 +0900
@@ -1921,7 +1921,50 @@
   "Key mapping from key codes to Kana strings based on 101-US keyboard.")
 
 ;;;###autoload
-(defvar mozc-keymap-kana mozc-keymap-kana-106jp
+(defvar mozc-keymap-kana-101us-nx
+  (mozc-keymap-make-keymap-from-flat-list
+   '(;; 1st row
+     ;; ?1 "ぬ" ?2 "ふ" ?3 "あ" ?4 "う" ?5 "え"
+     ?1 "\u306c" ?2 "\u3075" ?3 "\u3042" ?4 "\u3046" ?5 "\u3048"
+     ;; ?6 "お" ?7 "や" ?8 "ゆ" ?9 "よ" ?0 "わ"
+     ?6 "\u304a" ?7 "\u3084" ?8 "\u3086" ?9 "\u3088" ?0 "\u308f"
+     ;; ?- "ほ" ?= "゜" ?` "ろ"
+     ?- "\u307b" ?= "\u309c" ?` "\u308d"
+     ;; 2nd row
+     ;; ?q "た" ?w "て" ?e "い" ?r "す" ?t "か"
+     ?q "\u305f" ?w "\u3066" ?e "\u3044" ?r "\u3059" ?t "\u304b"
+     ;; ?y "ん" ?u "な" ?i "に" ?o "ら" ?p "せ"
+     ?y "\u3093" ?u "\u306a" ?i "\u306b" ?o "\u3089" ?p "\u305b"
+     ;; ?\[ "へ" ?\] "む" ?\\ "￥"
+     ?\[ "\u3078" ?\] "\u3080" ?\\ "\uffe5"
+     ;; 3rd row
+     ;; ?a "ち" ?s "と" ?d "し" ?f "は" ?g "き"
+     ?a "\u3061" ?s "\u3068" ?d "\u3057" ?f "\u306f" ?g "\u304d"
+     ;; ?h "く" ?j "ま" ?k "の" ?l "り" ?\; "れ"
+     ?h "\u304f" ?j "\u307e" ?k "\u306e" ?l "\u308a" ?\; "\u308c"
+     ;; ?' "け"
+     ?' "\u3051"
+     ;; 4th row
+     ;; ?z "つ" ?x "さ" ?c "そ" ?v "ひ" ?b "こ"
+     ?z "\u3064" ?x "\u3055" ?c "\u305d" ?v "\u3072" ?b "\u3053"
+     ;; ?n "み" ?m "も" ?, "ね" ?. "る" ?/ "め"
+     ?n "\u307f" ?m "\u3082" ?, "\u306d" ?. "\u308b" ?/ "\u3081"
+     ;; shift
+     ;; ?# "ぁ" ?E "ぃ" ?$ "ぅ" ?% "ぇ" ?^ "ぉ"
+     ?# "\u3041" ?E "\u3043" ?$ "\u3045" ?% "\u3047" ?^ "\u3049"
+     ;; ?& "ゃ" ?* "ゅ" ?\( "ょ" ?\) "を" ?+ "「"
+     ?& "\u3083" ?* "\u3085" ?\( "\u3087" ?\) "\u3092" ?+ "\u300c"
+     ;; ?Z "っ" ?< "、" ?> "。" ?? "・" ?{ "」"
+     ?Z "\u3063" ?< "\u3001" ?> "\u3002" ?? "\u30fb" ?{ "\u300d" 
+     ;; ?} "ー" ?: "゛" ?_ "ー" ?\" "ろ"
+     ?} "\u30fc" ?: "\u309b" ?\" "\u308d"
+     ;; ?F "ゎ" ?V "ゐ" ?+ "ゑ" ?T "ヵ" ?\" "ヶ"
+     ; ?F "\u308e" ?V "\u3090" ?+ "\u3091" ?T "\u30f5" ?\" "\u30f6"
+     ))
+  "Key mapping from key codes to Kana strings based on 101-US-NX keyboard.")
+
+;;;###autoload
+(defvar mozc-keymap-kana mozc-keymap-kana-101us-nx
   "The default key mapping for Kana input method.")
 
 
diff -ru Mozc-20.04-2.23.2815.102+dfsg-8ubuntu1/mozc-2.23.2815.102+dfsg/src/unix/fcitx/fcitx_key_translator.cc Mozc-NXkana-20.04-20210701/mozc-2.23.2815.102+dfsg/src/unix/fcitx/fcitx_key_translator.cc
--- Mozc-20.04-2.23.2815.102+dfsg-8ubuntu1/mozc-2.23.2815.102+dfsg/src/unix/fcitx/fcitx_key_translator.cc	2021-07-04 17:37:08.000000000 +0900
+++ Mozc-NXkana-20.04-20210701/mozc-2.23.2815.102+dfsg/src/unix/fcitx/fcitx_key_translator.cc	2021-07-01 20:54:26.317878848 +0900
@@ -254,7 +254,7 @@
   // to Right Shift).
   { '\\', "", "" },
 }, kana_map_us[] = {
-  { '`' , "\xe3\x82\x8d", "\xe3\x82\x8d" },  // "ろ", "ろ"
+  { '"' , "\xe3\x82\x8d", "\xe3\x82\x8d" },  // "ろ", "ろ" / NX
   { '~' , "\xe3\x82\x8d", "\xe3\x82\x8d" },  // "ろ", "ろ"
   { '1' , "\xe3\x81\xac", "\xe3\x81\xac" },  // "ぬ", "ぬ"
   { '!' , "\xe3\x81\xac", "\xe3\x81\xac" },  // "ぬ", "ぬ"
@@ -277,9 +277,9 @@
   { '0' , "\xe3\x82\x8f", "\xe3\x82\x92" },  // "わ", "を"
   { ')' , "\xe3\x82\x8f", "\xe3\x82\x92" },  // "わ", "を"
   { '-' , "\xe3\x81\xbb", "\xe3\x83\xbc" },  // "ほ", "ー"
-  { '_' , "\xe3\x81\xbb", "\xe3\x83\xbc" },  // "ほ", "ー"
-  { '=' , "\xe3\x81\xb8", "\xe3\x81\xb8" },  // "へ", "へ"
-  { '+' , "\xe3\x81\xb8", "\xe3\x81\xb8" },  // "へ", "へ"
+  { '}' , "\xe3\x83\xbc", "\xe3\x83\xbc" },  // "ほ", "ー" / NX
+  { '[' , "\xe3\x81\xb8", "\xe3\x81\xb8" },  // "へ", "へ" / NX
+  //{ '+' , "\xe3\x81\xb8", "\xe3\x81\xb8" },  // "へ", "へ" / NX
   { 'q' , "\xe3\x81\x9f", "\xe3\x81\x9f" },  // "た", "た"
   { 'Q' , "\xe3\x81\x9f", "\xe3\x81\x9f" },  // "た", "た"
   { 'w' , "\xe3\x81\xa6", "\xe3\x81\xa6" },  // "て", "て"
@@ -300,12 +300,14 @@
   { 'O' , "\xe3\x82\x89", "\xe3\x82\x89" },  // "ら", "ら"
   { 'p' , "\xe3\x81\x9b", "\xe3\x81\x9b" },  // "せ", "せ"
   { 'P' , "\xe3\x81\x9b", "\xe3\x81\x9b" },  // "せ", "せ"
-  { '[' , "\xe3\x82\x9b", "\xe3\x82\x9b" },  // "゛", "゛"
-  { '{' , "\xe3\x82\x9b", "\xe3\x82\x9b" },  // "゛", "゛"
-  { ']' , "\xe3\x82\x9c", "\xe3\x80\x8c" },  // "゜", "「"
-  { '}' , "\xe3\x82\x9c", "\xe3\x80\x8c" },  // "゜", "「"
-  { '\\', "\xe3\x82\x80", "\xe3\x80\x8d" },  // "む", "」"
-  { '|' , "\xe3\x82\x80", "\xe3\x80\x8d" },  // "む", "」"
+  { ':' , "\xe3\x82\x9b", "\xe3\x82\x9b" },  // "゛", "゛" / NX
+  //  { '{' , "\xe3\x82\x9b", "\xe3\x82\x9b" },  // "゛", "゛" / NX
+  { '=' , "\xe3\x82\x9c", "\xe3\x80\x8c" },  // "゜", "「" / NX
+  { '+' , "\xe3\x80\x8c", "\xe3\x80\x8c" },  // "「", "「" / NX
+  //{ '}' , "\xe3\x82\x9c", "\xe3\x80\x8c" },  // "゜", "「" / NX
+  { ']', "\xe3\x82\x80", "\xe3\x80\x8d" },  // "む", "」" / NX
+  //{ '|' , "\xe3\x82\x80", "\xe3\x80\x8d" },  // "む", "」" / NX
+  { '{' , "\xe3\x80\x8d", "\xe3\x80\x8d" },  // "」", "」" / NX
   { 'a' , "\xe3\x81\xa1", "\xe3\x81\xa1" },  // "ち", "ち"
   { 'A' , "\xe3\x81\xa1", "\xe3\x81\xa1" },  // "ち", "ち"
   { 's' , "\xe3\x81\xa8", "\xe3\x81\xa8" },  // "と", "と"
@@ -325,9 +327,9 @@
   { 'l' , "\xe3\x82\x8a", "\xe3\x82\x8a" },  // "り", "り"
   { 'L' , "\xe3\x82\x8a", "\xe3\x82\x8a" },  // "り", "り"
   { ';' , "\xe3\x82\x8c", "\xe3\x82\x8c" },  // "れ", "れ"
-  { ':' , "\xe3\x82\x8c", "\xe3\x82\x8c" },  // "れ", "れ"
-  { '\'', "\xe3\x81\x91", "\xe3\x81\x91" },  // "け", "け"
-  { '\"', "\xe3\x81\x91", "\xe3\x81\x91" },  // "け", "け"
+  //{ ':' , "\xe3\x82\x8c", "\xe3\x82\x8c" },  // "れ", "れ" / NX
+  { '\'', "\xe3\x81\x91", "\xe3\x81\x91" },  // "け", "け" / NX
+  //{ '\"', "\xe3\x81\x91", "\xe3\x81\x91" },  // "け", "け" / NX
   { 'z' , "\xe3\x81\xa4", "\xe3\x81\xa3" },  // "つ", "っ"
   { 'Z' , "\xe3\x81\xa4", "\xe3\x81\xa3" },  // "つ", "っ"
   { 'x' , "\xe3\x81\x95", "\xe3\x81\x95" },  // "さ", "さ"
diff -ru Mozc-20.04-2.23.2815.102+dfsg-8ubuntu1/mozc-2.23.2815.102+dfsg/src/unix/ibus/key_translator.cc Mozc-NXkana-20.04-20210701/mozc-2.23.2815.102+dfsg/src/unix/ibus/key_translator.cc
--- Mozc-20.04-2.23.2815.102+dfsg-8ubuntu1/mozc-2.23.2815.102+dfsg/src/unix/ibus/key_translator.cc	2018-04-03 08:03:55.000000000 +0900
+++ Mozc-NXkana-20.04-20210701/mozc-2.23.2815.102+dfsg/src/unix/ibus/key_translator.cc	2021-07-01 20:43:36.112489022 +0900
@@ -351,6 +351,101 @@
   { '>' , "る", "。" },
   { '/' , "め", "・" },
   { '?' , "め", "・" },
+}, kana_map_nx[] = {
+  { '`' , "ろ", "ろ" },
+  { '~' , "ろ", "〜" },
+  { '1' , "ぬ", "ぬ" },
+  { '!' , "ぬ", "ぬ" },
+  { '2' , "ふ", "ふ" },
+  { '@' , "ふ", "ふ" },
+  { '3' , "あ", "ぁ" },
+  { '#' , "あ", "ぁ" },
+  { '4' , "う", "ぅ" },
+  { '$' , "う", "ぅ" },
+  { '5' , "え", "ぇ" },
+  { '%' , "え", "ぇ" },
+  { '6' , "お", "ぉ" },
+  { '^' , "お", "ぉ" },
+  { '7' , "や", "ゃ" },
+  { '&' , "や", "ゃ" },
+  { '8' , "ゆ", "ゅ" },
+  { '*' , "ゆ", "ゅ" },
+  { '9' , "よ", "ょ" },
+  { '(' , "よ", "ょ" },
+  { '0' , "わ", "を" },
+  { ')' , "わ", "を" },
+  { '-' , "ほ", "＿" },
+  { '_' , "ほ", "＿" },
+  { '=' , "゜", "「" },
+  { '+' , "゜", "「" },
+  { 'q' , "た", "た" },
+  { 'Q' , "た", "た" },
+  { 'w' , "て", "て" },
+  { 'W' , "て", "て" },
+  { 'e' , "い", "ぃ" },
+  { 'E' , "い", "ぃ" },
+  { 'r' , "す", "す" },
+  { 'R' , "す", "す" },
+  { 't' , "か", "か" },
+  { 'T' , "か", "か" },
+  { 'y' , "ん", "ん" },
+  { 'Y' , "ん", "ん" },
+  { 'u' , "な", "な" },
+  { 'U' , "な", "な" },
+  { 'i' , "に", "に" },
+  { 'I' , "に", "に" },
+  { 'o' , "ら", "ら" },
+  { 'O' , "ら", "ら" },
+  { 'p' , "せ", "せ" },
+  { 'P' , "せ", "せ" },
+  { '[' , "へ", "」" },
+  { '{' , "へ", "」" },
+  { ']' , "む", "ー" },
+  { '}' , "む", "ー" },
+  { '\\', "￥", "｜" },
+  { '|' , "￥", "｜" },
+  { 'a' , "ち", "ち" },
+  { 'A' , "ち", "ち" },
+  { 's' , "と", "と" },
+  { 'S' , "と", "と" },
+  { 'd' , "し", "し" },
+  { 'D' , "し", "し" },
+  { 'f' , "は", "は" },
+  { 'F' , "は", "は" },
+  { 'g' , "き", "き" },
+  { 'G' , "き", "き" },
+  { 'h' , "く", "く" },
+  { 'H' , "く", "く" },
+  { 'j' , "ま", "ま" },
+  { 'J' , "ま", "ま" },
+  { 'k' , "の", "の" },
+  { 'K' , "の", "の" },
+  { 'l' , "り", "り" },
+  { 'L' , "り", "り" },
+  { ';' , "れ", "゛" },
+  { ':' , "れ", "゛" },
+  { '\'', "け", "ろ" },
+  { '\"', "け", "ろ" },
+  { 'z' , "つ", "っ" },
+  { 'Z' , "つ", "っ" },
+  { 'x' , "さ", "さ" },
+  { 'X' , "さ", "さ" },
+  { 'c' , "そ", "そ" },
+  { 'C' , "そ", "そ" },
+  { 'v' , "ひ", "ひ" },
+  { 'V' , "ひ", "ひ" },
+  { 'b' , "こ", "こ" },
+  { 'B' , "こ", "こ" },
+  { 'n' , "み", "み" },
+  { 'N' , "み", "み" },
+  { 'm' , "も", "も" },
+  { 'M' , "も", "も" },
+  { ',' , "ね", "、" },
+  { '<' , "ね", "、" },
+  { '.' , "る", "。" },
+  { '>' , "る", "。" },
+  { '/' , "め", "・" },
+  { '?' , "め", "・" },
 };
 
 }  // namespace
@@ -463,6 +558,12 @@
                        std::make_pair(kana_map_us[i].no_shift,
                                       kana_map_us[i].shift))).second);
   }
+  for (int i = 0; i < arraysize(kana_map_nx); ++i) {
+    CHECK(kana_map_nx_.insert(
+        std::make_pair(kana_map_nx[i].code,
+                           std::make_pair(kana_map_nx[i].no_shift,
+                                          kana_map_nx[i].shift))).second);
+  }
 }
 
 bool KeyTranslator::IsModifierKey(guint keyval,
@@ -491,7 +592,8 @@
   if ((modifiers & IBUS_CONTROL_MASK) || (modifiers & IBUS_MOD1_MASK)) {
     return false;
   }
-  const KanaMap &kana_map = layout_is_jp ? kana_map_jp_ : kana_map_us_;
+  // const KanaMap &kana_map = layout_is_jp ? kana_map_jp_ : kana_map_us_;
+  const KanaMap &kana_map = kana_map_nx_;
   KanaMap::const_iterator iter = kana_map.find(keyval);
   if (iter == kana_map.end()) {
     return false;
diff -ru Mozc-20.04-2.23.2815.102+dfsg-8ubuntu1/mozc-2.23.2815.102+dfsg/src/unix/ibus/key_translator.h Mozc-NXkana-20.04-20210701/mozc-2.23.2815.102+dfsg/src/unix/ibus/key_translator.h
--- Mozc-20.04-2.23.2815.102+dfsg-8ubuntu1/mozc-2.23.2815.102+dfsg/src/unix/ibus/key_translator.h	2018-04-03 08:03:55.000000000 +0900
+++ Mozc-NXkana-20.04-20210701/mozc-2.23.2815.102+dfsg/src/unix/ibus/key_translator.h	2021-07-01 20:31:38.741254676 +0900
@@ -105,6 +105,7 @@
   // 'Hiragana Letter Small U' (with Shift modifier).
   KanaMap kana_map_jp_;  // mapping for JP keyboard.
   KanaMap kana_map_us_;  // mapping for US keyboard.
+  KanaMap kana_map_nx_;  // mapping for NeXT layout US keyboard.
 
   DISALLOW_COPY_AND_ASSIGN(KeyTranslator);
 };
