summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChoe Hwanjin <choe.hwanjin@gmail.com>2018-06-06 16:58:43 +0900
committerChoe Hwanjin <choe.hwanjin@gmail.com>2018-06-06 16:58:43 +0900
commitfb9fc716d75d79f5ef3142e93220e6cd446aa24c (patch)
tree23e7e6e95131e87fd1d5ca1b59487380942cec18
parent20983f0c8de0798b2443f137152a83233e4154a8 (diff)
downloadlibhangul-fb9fc716d75d79f5ef3142e93220e6cd446aa24c.tar.gz
두벌식 자판에서 한글이 아닌 것은 원 자판의 글자를 사용
기존 방식에서는 사용자 자판이 qwerty 자판이 아닌 경우에도 한글 상태에서는 qwerty 자판으로 동작하게 된다. 사용자가 qwerty 자판이 아닌 것을 사용할때에는 불편할 수 있으므로 한글에 대해서만 처리하고 나머지 키는 그대로 포워딩할 수 있도록 하는 것이다. 이렇게 하면 반대로 사용자가 한글 자판 상태에서 qwerty 기호나 숫자를 입력하고자할때에는 사용할 수가 없게 된다. 또 글자를 commit하는 방식이 아니라 키이벤트를 포워딩하는 방식으로 처리하게 되므로 최근 ibus에서 발생한 space 순서가 바뀌는 문제 같은 것들이 영문자에 대해서 모두 발생할 위험성이 커질 수 있다. 참고: https://github.com/libhangul/ibus-hangul/issues/42 세벌식 자판의 경우는 좀더 생각해볼 시간을 가지기 위해서 일단 적용을 보류하고 두벌식에만 먼저 적용한다. https://github.com/libhangul/libhangul/issues/27 https://github.com/libhangul/ibus-hangul/issues/15
-rw-r--r--data/keyboards/hangul-keyboard-2.xml.template42
-rw-r--r--data/keyboards/hangul-keyboard-2y.xml.template42
-rw-r--r--hangul/hangulkeyboard.h168
3 files changed, 84 insertions, 168 deletions
diff --git a/data/keyboards/hangul-keyboard-2.xml.template b/data/keyboards/hangul-keyboard-2.xml.template
index 7704d08..a4a0117 100644
--- a/data/keyboards/hangul-keyboard-2.xml.template
+++ b/data/keyboards/hangul-keyboard-2.xml.template
@@ -4,38 +4,6 @@
<_name>Dubeolsik</_name>
<map id="0">
- <item key="0x21" value="0x0021"/> <!-- ! → ! -->
- <item key="0x22" value="0x0022"/> <!-- " → " -->
- <item key="0x23" value="0x0023"/> <!-- # → # -->
- <item key="0x24" value="0x0024"/> <!-- $ → $ -->
- <item key="0x25" value="0x0025"/> <!-- % → % -->
- <item key="0x26" value="0x0026"/> <!-- & → & -->
- <item key="0x27" value="0x0027"/> <!-- ' → ' -->
- <item key="0x28" value="0x0028"/> <!-- ( → ( -->
- <item key="0x29" value="0x0029"/> <!-- ) → ) -->
- <item key="0x2a" value="0x002a"/> <!-- * → * -->
- <item key="0x2b" value="0x002b"/> <!-- + → + -->
- <item key="0x2c" value="0x002c"/> <!-- , → , -->
- <item key="0x2d" value="0x002d"/> <!-- - → - -->
- <item key="0x2e" value="0x002e"/> <!-- . → . -->
- <item key="0x2f" value="0x002f"/> <!-- / → / -->
- <item key="0x30" value="0x0030"/> <!-- 0 → 0 -->
- <item key="0x31" value="0x0031"/> <!-- 1 → 1 -->
- <item key="0x32" value="0x0032"/> <!-- 2 → 2 -->
- <item key="0x33" value="0x0033"/> <!-- 3 → 3 -->
- <item key="0x34" value="0x0034"/> <!-- 4 → 4 -->
- <item key="0x35" value="0x0035"/> <!-- 5 → 5 -->
- <item key="0x36" value="0x0036"/> <!-- 6 → 6 -->
- <item key="0x37" value="0x0037"/> <!-- 7 → 7 -->
- <item key="0x38" value="0x0038"/> <!-- 8 → 8 -->
- <item key="0x39" value="0x0039"/> <!-- 9 → 9 -->
- <item key="0x3a" value="0x003a"/> <!-- : → : -->
- <item key="0x3b" value="0x003b"/> <!-- ; → ; -->
- <item key="0x3c" value="0x003c"/> <!-- < → < -->
- <item key="0x3d" value="0x003d"/> <!-- = → = -->
- <item key="0x3e" value="0x003e"/> <!-- > → > -->
- <item key="0x3f" value="0x003f"/> <!-- ? → ? -->
- <item key="0x40" value="0x0040"/> <!-- @ → @ -->
<item key="0x41" value="0x1106"/> <!-- A → ᄆᅠ -->
<item key="0x42" value="0x1172"/> <!-- B → ᅟᅲ -->
<item key="0x43" value="0x110e"/> <!-- C → ᄎᅠ -->
@@ -62,12 +30,6 @@
<item key="0x58" value="0x1110"/> <!-- X → ᄐᅠ -->
<item key="0x59" value="0x116d"/> <!-- Y → ᅟᅭ -->
<item key="0x5a" value="0x110f"/> <!-- Z → ᄏᅠ -->
- <item key="0x5b" value="0x005b"/> <!-- [ → [ -->
- <item key="0x5c" value="0x005c"/> <!-- \ → \ -->
- <item key="0x5d" value="0x005d"/> <!-- ] → ] -->
- <item key="0x5e" value="0x005e"/> <!-- ^ → ^ -->
- <item key="0x5f" value="0x005f"/> <!-- _ → _ -->
- <item key="0x60" value="0x0060"/> <!-- ` → ` -->
<item key="0x61" value="0x1106"/> <!-- a → ᄆᅠ -->
<item key="0x62" value="0x1172"/> <!-- b → ᅟᅲ -->
<item key="0x63" value="0x110e"/> <!-- c → ᄎᅠ -->
@@ -94,10 +56,6 @@
<item key="0x78" value="0x1110"/> <!-- x → ᄐᅠ -->
<item key="0x79" value="0x116d"/> <!-- y → ᅟᅭ -->
<item key="0x7a" value="0x110f"/> <!-- z → ᄏᅠ -->
- <item key="0x7b" value="0x007b"/> <!-- { → { -->
- <item key="0x7c" value="0x007c"/> <!-- | → | -->
- <item key="0x7d" value="0x007d"/> <!-- } → } -->
- <item key="0x7e" value="0x007e"/> <!-- ~ → ~ -->
</map>
<include file="hangul-combination-default.xml"/>
diff --git a/data/keyboards/hangul-keyboard-2y.xml.template b/data/keyboards/hangul-keyboard-2y.xml.template
index 6ff75e7..c94846f 100644
--- a/data/keyboards/hangul-keyboard-2y.xml.template
+++ b/data/keyboards/hangul-keyboard-2y.xml.template
@@ -4,38 +4,6 @@
<_name>Dubeolsik Yetgeul</_name>
<map id="0">
- <item key="0x21" value="0x0021"/> <!-- ! → ! -->
- <item key="0x22" value="0x0022"/> <!-- " → " -->
- <item key="0x23" value="0x0023"/> <!-- # → # -->
- <item key="0x24" value="0x0024"/> <!-- $ → $ -->
- <item key="0x25" value="0x0025"/> <!-- % → % -->
- <item key="0x26" value="0x0026"/> <!-- & → & -->
- <item key="0x27" value="0x0027"/> <!-- ' → ' -->
- <item key="0x28" value="0x0028"/> <!-- ( → ( -->
- <item key="0x29" value="0x0029"/> <!-- ) → ) -->
- <item key="0x2a" value="0x002a"/> <!-- * → * -->
- <item key="0x2b" value="0x002b"/> <!-- + → + -->
- <item key="0x2c" value="0x002c"/> <!-- , → , -->
- <item key="0x2d" value="0x002d"/> <!-- - → - -->
- <item key="0x2e" value="0x002e"/> <!-- . → . -->
- <item key="0x2f" value="0x002f"/> <!-- / → / -->
- <item key="0x30" value="0x0030"/> <!-- 0 → 0 -->
- <item key="0x31" value="0x0031"/> <!-- 1 → 1 -->
- <item key="0x32" value="0x0032"/> <!-- 2 → 2 -->
- <item key="0x33" value="0x0033"/> <!-- 3 → 3 -->
- <item key="0x34" value="0x0034"/> <!-- 4 → 4 -->
- <item key="0x35" value="0x0035"/> <!-- 5 → 5 -->
- <item key="0x36" value="0x0036"/> <!-- 6 → 6 -->
- <item key="0x37" value="0x0037"/> <!-- 7 → 7 -->
- <item key="0x38" value="0x0038"/> <!-- 8 → 8 -->
- <item key="0x39" value="0x0039"/> <!-- 9 → 9 -->
- <item key="0x3a" value="0x003a"/> <!-- : → : -->
- <item key="0x3b" value="0x003b"/> <!-- ; → ; -->
- <item key="0x3c" value="0x003c"/> <!-- < → < -->
- <item key="0x3d" value="0x003d"/> <!-- = → = -->
- <item key="0x3e" value="0x003e"/> <!-- > → > -->
- <item key="0x3f" value="0x003f"/> <!-- ? → ? -->
- <item key="0x40" value="0x0040"/> <!-- @ → @ -->
<item key="0x41" value="0x1140"/> <!-- A → ᅀᅠ -->
<item key="0x42" value="0x1154"/> <!-- B → ᅔᅠ -->
<item key="0x43" value="0x114e"/> <!-- C → ᅎᅠ -->
@@ -62,12 +30,6 @@
<item key="0x58" value="0x113e"/> <!-- X → ᄾᅠ -->
<item key="0x59" value="0x116d"/> <!-- Y → ᅟᅭ -->
<item key="0x5a" value="0x113c"/> <!-- Z → ᄼᅠ -->
- <item key="0x5b" value="0x005b"/> <!-- [ → [ -->
- <item key="0x5c" value="0x005c"/> <!-- \ → \ -->
- <item key="0x5d" value="0x005d"/> <!-- ] → ] -->
- <item key="0x5e" value="0x005e"/> <!-- ^ → ^ -->
- <item key="0x5f" value="0x005f"/> <!-- _ → _ -->
- <item key="0x60" value="0x0060"/> <!-- ` → ` -->
<item key="0x61" value="0x1106"/> <!-- a → ᄆᅠ -->
<item key="0x62" value="0x1172"/> <!-- b → ᅟᅲ -->
<item key="0x63" value="0x110e"/> <!-- c → ᄎᅠ -->
@@ -94,10 +56,6 @@
<item key="0x78" value="0x1110"/> <!-- x → ᄐᅠ -->
<item key="0x79" value="0x116d"/> <!-- y → ᅟᅭ -->
<item key="0x7a" value="0x110f"/> <!-- z → ᄏᅠ -->
- <item key="0x7b" value="0x007b"/> <!-- { → { -->
- <item key="0x7c" value="0x007c"/> <!-- | → | -->
- <item key="0x7d" value="0x007d"/> <!-- } → } -->
- <item key="0x7e" value="0x007e"/> <!-- ~ → ~ -->
</map>
<include file="hangul-combination-full.xml"/>
diff --git a/hangul/hangulkeyboard.h b/hangul/hangulkeyboard.h
index 82c1ba8..1d3953c 100644
--- a/hangul/hangulkeyboard.h
+++ b/hangul/hangulkeyboard.h
@@ -49,38 +49,38 @@ static const ucschar hangul_keyboard_table_2[] = {
0x0000, /* 0x1E information separator two */
0x0000, /* 0x1F information separator one */
0x0000, /* 0x20 space */
- 0x0021, /* 0x21 exclam: exclamation mark */
- 0x0022, /* 0x22 quotedbl: quotation mark */
- 0x0023, /* 0x23 numbersign: number sign */
- 0x0024, /* 0x24 dollar: dollar sign */
- 0x0025, /* 0x25 percent: percent sign */
- 0x0026, /* 0x26 ampersand: ampersand */
- 0x0027, /* 0x27 apostrophe: apostrophe */
- 0x0028, /* 0x28 parenleft: left parenthesis */
- 0x0029, /* 0x29 parenright: right parenthesis */
- 0x002a, /* 0x2A asterisk: asterisk */
- 0x002b, /* 0x2B plus: plus sign */
- 0x002c, /* 0x2C comma: comma */
- 0x002d, /* 0x2D minus: minus sign */
- 0x002e, /* 0x2E period: period */
- 0x002f, /* 0x2F slash: slash */
- 0x0030, /* 0x30 0: 0 */
- 0x0031, /* 0x31 1: 1 */
- 0x0032, /* 0x32 2: 2 */
- 0x0033, /* 0x33 3: 3 */
- 0x0034, /* 0x34 4: 4 */
- 0x0035, /* 0x35 5: 5 */
- 0x0036, /* 0x36 6: 6 */
- 0x0037, /* 0x37 7: 7 */
- 0x0038, /* 0x38 8: 8 */
- 0x0039, /* 0x39 9: 9 */
- 0x003a, /* 0x3A colon: colon */
- 0x003b, /* 0x3B semicolon: semicolon */
- 0x003c, /* 0x3C less: less-than sign */
- 0x003d, /* 0x3D equal: equals sign */
- 0x003e, /* 0x3E greater: greater-than sign */
- 0x003f, /* 0x3F question: question mark */
- 0x0040, /* 0x40 at: commercial at */
+ 0x0000, /* 0x21 exclam: exclamation mark */
+ 0x0000, /* 0x22 quotedbl: quotation mark */
+ 0x0000, /* 0x23 numbersign: number sign */
+ 0x0000, /* 0x24 dollar: dollar sign */
+ 0x0000, /* 0x25 percent: percent sign */
+ 0x0000, /* 0x26 ampersand: ampersand */
+ 0x0000, /* 0x27 apostrophe: apostrophe */
+ 0x0000, /* 0x28 parenleft: left parenthesis */
+ 0x0000, /* 0x29 parenright: right parenthesis */
+ 0x0000, /* 0x2A asterisk: asterisk */
+ 0x0000, /* 0x2B plus: plus sign */
+ 0x0000, /* 0x2C comma: comma */
+ 0x0000, /* 0x2D minus: minus sign */
+ 0x0000, /* 0x2E period: period */
+ 0x0000, /* 0x2F slash: slash */
+ 0x0000, /* 0x30 0: 0 */
+ 0x0000, /* 0x31 1: 1 */
+ 0x0000, /* 0x32 2: 2 */
+ 0x0000, /* 0x33 3: 3 */
+ 0x0000, /* 0x34 4: 4 */
+ 0x0000, /* 0x35 5: 5 */
+ 0x0000, /* 0x36 6: 6 */
+ 0x0000, /* 0x37 7: 7 */
+ 0x0000, /* 0x38 8: 8 */
+ 0x0000, /* 0x39 9: 9 */
+ 0x0000, /* 0x3A colon: colon */
+ 0x0000, /* 0x3B semicolon: semicolon */
+ 0x0000, /* 0x3C less: less-than sign */
+ 0x0000, /* 0x3D equal: equals sign */
+ 0x0000, /* 0x3E greater: greater-than sign */
+ 0x0000, /* 0x3F question: question mark */
+ 0x0000, /* 0x40 at: commercial at */
0x1106, /* 0x41 A: choseong mieum */
0x1172, /* 0x42 B: jungseong yu */
0x110e, /* 0x43 C: choseong chieuch */
@@ -107,12 +107,12 @@ static const ucschar hangul_keyboard_table_2[] = {
0x1110, /* 0x58 X: choseong thieuth */
0x116d, /* 0x59 Y: jungseong yo */
0x110f, /* 0x5A Z: choseong khieukh */
- 0x005b, /* 0x5B bracketleft: left bracket */
- 0x005c, /* 0x5C backslash: backslash */
- 0x005d, /* 0x5D bracketright: right bracket */
- 0x005e, /* 0x5E asciicircum: circumflex accent */
- 0x005f, /* 0x5F underscore: underscore */
- 0x0060, /* 0x60 quoteleft: grave accent */
+ 0x0000, /* 0x5B bracketleft: left bracket */
+ 0x0000, /* 0x5C backslash: backslash */
+ 0x0000, /* 0x5D bracketright: right bracket */
+ 0x0000, /* 0x5E asciicircum: circumflex accent */
+ 0x0000, /* 0x5F underscore: underscore */
+ 0x0000, /* 0x60 quoteleft: grave accent */
0x1106, /* 0x61 a: choseong mieum */
0x1172, /* 0x62 b: jungseong yu */
0x110e, /* 0x63 c: choseong chieuch */
@@ -139,10 +139,10 @@ static const ucschar hangul_keyboard_table_2[] = {
0x1110, /* 0x78 x: choseong thieuth */
0x116d, /* 0x79 y: jungseong yo */
0x110f, /* 0x7A z: choseong khieukh */
- 0x007b, /* 0x7B braceleft: left brace */
- 0x007c, /* 0x7C bar: vertical bar */
- 0x007d, /* 0x7D braceright: right brace */
- 0x007e, /* 0x7E asciitilde: tilde */
+ 0x0000, /* 0x7B braceleft: left brace */
+ 0x0000, /* 0x7C bar: vertical bar */
+ 0x0000, /* 0x7D braceright: right brace */
+ 0x0000, /* 0x7E asciitilde: tilde */
0x0000 /* 0x7F delete */
};
@@ -180,38 +180,38 @@ static const ucschar hangul_keyboard_table_2y[] = {
0x0000, /* 0x1E information separator two */
0x0000, /* 0x1F information separator one */
0x0000, /* 0x20 space */
- 0x0021, /* 0x21 exclam: exclamation mark */
- 0x0022, /* 0x22 quotedbl: quotation mark */
- 0x0023, /* 0x23 numbersign: number sign */
- 0x0024, /* 0x24 dollar: dollar sign */
- 0x0025, /* 0x25 percent: percent sign */
- 0x0026, /* 0x26 ampersand: ampersand */
- 0x0027, /* 0x27 apostrophe: apostrophe */
- 0x0028, /* 0x28 parenleft: left parenthesis */
- 0x0029, /* 0x29 parenright: right parenthesis */
- 0x002a, /* 0x2A asterisk: asterisk */
- 0x002b, /* 0x2B plus: plus sign */
- 0x002c, /* 0x2C comma: comma */
- 0x002d, /* 0x2D minus: minus sign */
- 0x002e, /* 0x2E period: period */
- 0x002f, /* 0x2F slash: slash */
- 0x0030, /* 0x30 0: 0 */
- 0x0031, /* 0x31 1: 1 */
- 0x0032, /* 0x32 2: 2 */
- 0x0033, /* 0x33 3: 3 */
- 0x0034, /* 0x34 4: 4 */
- 0x0035, /* 0x35 5: 5 */
- 0x0036, /* 0x36 6: 6 */
- 0x0037, /* 0x37 7: 7 */
- 0x0038, /* 0x38 8: 8 */
- 0x0039, /* 0x39 9: 9 */
- 0x003a, /* 0x3A colon: colon */
- 0x003b, /* 0x3B semicolon: semicolon */
- 0x003c, /* 0x3C less: less-than sign */
- 0x003d, /* 0x3D equal: equals sign */
- 0x003e, /* 0x3E greater: greater-than sign */
- 0x003f, /* 0x3F question: question mark */
- 0x0040, /* 0x40 at: commercial at */
+ 0x0000, /* 0x21 exclam: exclamation mark */
+ 0x0000, /* 0x22 quotedbl: quotation mark */
+ 0x0000, /* 0x23 numbersign: number sign */
+ 0x0000, /* 0x24 dollar: dollar sign */
+ 0x0000, /* 0x25 percent: percent sign */
+ 0x0000, /* 0x26 ampersand: ampersand */
+ 0x0000, /* 0x27 apostrophe: apostrophe */
+ 0x0000, /* 0x28 parenleft: left parenthesis */
+ 0x0000, /* 0x29 parenright: right parenthesis */
+ 0x0000, /* 0x2A asterisk: asterisk */
+ 0x0000, /* 0x2B plus: plus sign */
+ 0x0000, /* 0x2C comma: comma */
+ 0x0000, /* 0x2D minus: minus sign */
+ 0x0000, /* 0x2E period: period */
+ 0x0000, /* 0x2F slash: slash */
+ 0x0000, /* 0x30 0: 0 */
+ 0x0000, /* 0x31 1: 1 */
+ 0x0000, /* 0x32 2: 2 */
+ 0x0000, /* 0x33 3: 3 */
+ 0x0000, /* 0x34 4: 4 */
+ 0x0000, /* 0x35 5: 5 */
+ 0x0000, /* 0x36 6: 6 */
+ 0x0000, /* 0x37 7: 7 */
+ 0x0000, /* 0x38 8: 8 */
+ 0x0000, /* 0x39 9: 9 */
+ 0x0000, /* 0x3A colon: colon */
+ 0x0000, /* 0x3B semicolon: semicolon */
+ 0x0000, /* 0x3C less: less-than sign */
+ 0x0000, /* 0x3D equal: equals sign */
+ 0x0000, /* 0x3E greater: greater-than sign */
+ 0x0000, /* 0x3F question: question mark */
+ 0x0000, /* 0x40 at: commercial at */
0x1140, /* 0x41 A: choseong pansios */
0x1154, /* 0x42 B: choseong chitueumchieuch */
0x114e, /* 0x43 C: choseong chitueumcieuc */
@@ -238,12 +238,12 @@ static const ucschar hangul_keyboard_table_2y[] = {
0x113e, /* 0x58 X: choseong ceongchieumsios */
0x116d, /* 0x59 Y: jungseong yo */
0x113c, /* 0x5A Z: choseong chitueumsios */
- 0x005b, /* 0x5B bracketleft: left bracket */
- 0x005c, /* 0x5C backslash: backslash */
- 0x005d, /* 0x5D bracketright: right bracket */
- 0x005e, /* 0x5E asciicircum: circumflex accent */
- 0x005f, /* 0x5F underscore: underscore */
- 0x0060, /* 0x60 quoteleft: grave accent */
+ 0x0000, /* 0x5B bracketleft: left bracket */
+ 0x0000, /* 0x5C backslash: backslash */
+ 0x0000, /* 0x5D bracketright: right bracket */
+ 0x0000, /* 0x5E asciicircum: circumflex accent */
+ 0x0000, /* 0x5F underscore: underscore */
+ 0x0000, /* 0x60 quoteleft: grave accent */
0x1106, /* 0x61 a: choseong mieum */
0x1172, /* 0x62 b: jungseong yu */
0x110e, /* 0x63 c: choseong chieuch */
@@ -270,10 +270,10 @@ static const ucschar hangul_keyboard_table_2y[] = {
0x1110, /* 0x78 x: choseong thieuth */
0x116d, /* 0x79 y: jungseong yo */
0x110f, /* 0x7A z: choseong khieukh */
- 0x007b, /* 0x7B braceleft: left brace */
- 0x007c, /* 0x7C bar: vertical bar */
- 0x007d, /* 0x7D braceright: right brace */
- 0x007e, /* 0x7E asciitilde: tilde */
+ 0x0000, /* 0x7B braceleft: left brace */
+ 0x0000, /* 0x7C bar: vertical bar */
+ 0x0000, /* 0x7D braceright: right brace */
+ 0x0000, /* 0x7E asciitilde: tilde */
0x0000 /* 0x7F delete */
};