libhangul
Version 0.1.0
|
함수 | |
unsigned int | hangul_keyboard_list_get_count () |
libhangul에서 제공하는 자판 개수를 구하는 함수 더 자세히 ... | |
const char * | hangul_keyboard_list_get_keyboard_id (unsigned index_) |
libhangul에서 제공하는 자판의 id를 구하는 함수 더 자세히 ... | |
const char * | hangul_keyboard_list_get_keyboard_name (unsigned index_) |
libhangul에서 제공하는 자판의 이름을 구하는 함수 더 자세히 ... | |
libhangul에서 지원하는 자판은 두벌식, 두벌식 옛글, 세벌식 최종, 세벌식 390, 세벌식 순아래, 세벌식 옛글, 안마태, 로마자 자판 이다.
아래의 자판 배열은 libhangul에서 지원하는 자판을 알아보기 쉽게 그림형태로 나타낸 것이다.
이 자판은 표준 두벌식을 구현한 것이다. 그러나 표준 자판과 조금 다른 동작이 있다. 된소리 ㅃㅉㄸㄲㅆ들은 shift와 함께 누르는 방법 이외에도 반복해서 누르면 입력된다.
~ ` |
! 1 |
@ 2 |
# 3 |
$ 4 |
% 5 |
^ 6 |
& 7 |
* 8 |
( 9 |
) 0 |
_ - |
+ = |
Backspace | ||||||||||||||||||||||||||||||||||||||||||||||
Tab | ㅃ ㅂ |
ㅉ ㅈ |
ㄸ ㄷ |
ㄲ ㄱ |
ㅆ ㅅ |
ㅛ |
ㅕ |
ㅑ |
ㅒ ㅐ |
ㅖ ㅔ |
{ [ |
} ] |
| \ |
||||||||||||||||||||||||||||||||||||||||||||||
Caps Lock | ㅁ |
ㄴ |
ㅇ |
ㄹ |
ㅎ |
ㅗ |
ㅓ |
ㅏ |
ㅣ |
: ; |
" ' |
Enter | |||||||||||||||||||||||||||||||||||||||||||||||
Shift | ㅋ |
ㅌ |
ㅊ |
ㅍ |
ㅠ |
ㅜ |
ㅡ |
< , |
> . |
? / |
Shift |
이 자판은 옛한글을 입력하기 위한 두벌식 자판이다. 아래한글의 두벌식 옛글 자판과 같은 배열을 가지도록 만들었다. 두벌식 자판과 마찬가지로 된소리를 두번 누르는 방법으로 입력할 수 있다.
~ ` |
! 1 |
@ 2 |
# 3 |
$ 4 |
% 5 |
^ 6 |
& 7 |
* 8 |
( 9 |
) 0 |
_ - |
+ = |
Backspace | ||||||||||||||||||||||||||||||||||||||||||||||
Tab | ㅃ ㅂ |
ㅉ ㅈ |
ㄸ ㄷ |
ㄲ ㄱ |
ㅆ ㅅ |
ㅛ |
ㅕ |
ㅑ |
ㅒ ㅐ |
ㅖ ㅔ |
{ [ |
} ] |
| \ |
||||||||||||||||||||||||||||||||||||||||||||||
Caps Lock | ㅿ ㅁ |
ᅝᅠ ㄴ |
ㆁ ㅇ |
ㅀ ㄹ |
ㆆ ㅎ |
ᅟᆃ ㅗ |
ㅓ |
ㆍ ㅏ |
ㆌ ㅣ |
: ; |
" ' |
Enter | |||||||||||||||||||||||||||||||||||||||||||||||
Shift | ᄼᅠ ㅋ |
ᄾᅠ ㅌ |
ᅎᅠ ㅊ |
ᅐᅠ ㅍ |
ᅔᅠ ㅠ |
ᅕᅠ ㅜ |
ㅡ |
< , |
> . |
? / |
Shift |
이 자판은 세벌식 최종 자판을 구현한 것이다. 원래 방식대로라면 왼쪽의 ㅗㅜ는 다른 모음과 조합되지 않아야 하지만, libhangul에서는 좌우의 ㅗㅜ를 구분하지 않고 다른 모음과 조합된다.
※ * |
ㄲ ㅎ |
ㄺ ㅆ |
ㅈ ㅂ |
ㄿ ㅛ |
ㄾ ㅠ |
= ㅑ |
“ ㅖ |
” ㅢ |
' ㅜ |
~ ㅋ |
; ) |
+ > |
Backspace | ||||||||||||||||||||||||||||||||||||||||||||||
Tab | ㅍ ㅅ |
ㅌ ㄹ |
ㄵ ㅕ |
ㅀ ㅐ |
ㄽ ㅓ |
5 ㄹ |
6 ㄷ |
7 ㅁ |
8 ㅊ |
9 ㅍ |
% ( |
/ < |
\ : |
||||||||||||||||||||||||||||||||||||||||||||||
Caps Lock | ㄷ ㅇ |
ㄶ ㄴ |
ㄼ ㅣ |
ㄻ ㅏ |
ㅒ ㅡ |
0 ㄴ |
1 ㅇ |
2 ㄱ |
3 ㅈ |
4 ㅂ |
· ㅌ |
Enter | |||||||||||||||||||||||||||||||||||||||||||||||
Shift | ㅊ ㅁ |
ㅄ ㄱ |
ㅋ ㅔ |
ㄳ ㅗ |
? ㅜ |
- ㅅ |
" ㅎ |
, |
. |
! ㅗ |
Shift |
이 자판은 세벌식 390 자판을 구현한 것이다. 원래 방식대로라면 왼쪽의 ㅗㅜ는 다른 모음과 조합되지 않아야 하지만, libhangul에서는 좌우의 ㅗㅜ를 구분하지 않고 다른 모음과 조합된다.
~ ` |
ㅈ ㅎ |
@ ㅆ |
# ㅂ |
$ ㅛ |
% ㅠ |
^ ㅑ |
& ㅖ |
* ㅢ |
( ㅜ |
) ㅋ |
_ - |
+ = |
Backspace | ||||||||||||||||||||||||||||||||||||||||||||||
Tab | ㅍ ㅅ |
ㅌ ㄹ |
ㅋ ㅕ |
ㅒ ㅐ |
; ㅓ |
< ㄹ |
7 ㄷ |
8 ㅁ |
9 ㅊ |
> ㅍ |
{ [ |
} ] |
| \ |
||||||||||||||||||||||||||||||||||||||||||||||
Caps Lock | ㄷ ㅇ |
ㄶ ㄴ |
ㄺ ㅣ |
ㄲ ㅏ |
/ ㅡ |
' ㄴ |
4 ㅇ |
5 ㄱ |
6 ㅈ |
: ㅂ |
" ㅌ |
Enter | |||||||||||||||||||||||||||||||||||||||||||||||
Shift | ㅊ ㅁ |
ㅄ ㄱ |
ㄻ ㅔ |
ㅀ ㅗ |
! ㅜ |
0 ㅅ |
1 ㅎ |
2 , |
3 . |
? ㅗ |
Shift |
이 자판은 세벌식 순아래 자판을 구현한 것이다.
~ ` |
! ㅎ |
@ ㅆ |
# ㅂ |
$ ㅛ |
% ㅠ |
^ ㅑ |
& ㅖ |
* ㅢ |
( ㅋ |
) ㅒ |
_ ㅈ |
+ ㅊ |
Backspace | ||||||||||||||||||||||||||||||||||||||||||||||
Tab | ㅅ |
ㄹ |
ㅕ |
ㅐ |
; ㅓ |
< ㄹ |
7 ㄷ |
8 ㅁ |
9 ㅊ |
> ㅍ |
{ ㅌ |
} ㅍ |
| ㅋ |
||||||||||||||||||||||||||||||||||||||||||||||
Caps Lock | ㅇ |
[ ㄴ |
] ㅣ |
ㅏ |
/ ㅡ |
' ㄴ |
4 ㅇ |
5 ㄱ |
6 ㅈ |
: ㅂ |
" ㅌ |
Enter | |||||||||||||||||||||||||||||||||||||||||||||||
Shift | - ㅁ |
= ㄱ |
\ ㅔ |
ㅗ |
! ㅜ |
0 ㅅ |
1 ㅎ |
2 , |
3 . |
? ㄷ |
Shift |
이 자판은 세벌식 옛글 자판을 구현한 것이다. 자판 배열은 아래한글의 세벌식 옛글 자판과 동일하다.
ᅟᅠᇰ ᅟᅠᇹ |
ㅈ ㅎ |
ᅟᅠᇫ ㅆ |
# ㅂ |
$ ㅛ |
% ㅠ |
ㆁ ㅑ |
& ㅖ |
* ㅢ |
( ㅜ |
) ㅋ |
_ - |
+ = |
Backspace | ||||||||||||||||||||||||||||||||||||||||||||||
Tab | ㅍ ㅅ |
ㅌ ㄹ |
ㅋ ㅕ |
ㅒ ㅐ |
; ㅓ |
< ㄹ |
· ㄷ |
ᅔᅠ ㅁ |
ᅕᅠ ㅊ |
> ㅍ |
{ [ |
} ] |
| \ |
||||||||||||||||||||||||||||||||||||||||||||||
Caps Lock | ㄷ ㅇ |
ㄶ ㄴ |
ㄺ ㅣ |
ㄲ ㅏ |
ㆍ ㅡ |
' ㄴ |
ㆁ ㅇ |
ᅎᅠ ㄱ |
ᅐᅠ ㅈ |
: ㅂ |
" ㅌ |
Enter | |||||||||||||||||||||||||||||||||||||||||||||||
Shift | ㅊ ㅁ |
ㅄ ㄱ |
ㄻ ㅔ |
ㅀ ㅗ |
! ㅜ |
ㅿ ㅅ |
ㆆ ㅎ |
ᄼᅠ , |
ᄾᅠ . |
? ㅗ |
Shift |
이 자판은 두벌식 자판의 배열을 그대로 사용하면서 shift와 함께 자음을 누르면 종성으로 입력되도록 만든 자판이다. 일반 사용을 위해 만들어진 것이 아니고 두벌식 사용자가 손쉽게 세벌식 자판의 테스트를 할 수 있도록 하기 위해서 만든 자판이다.
※ ` |
! 1 |
@ 2 |
# 3 |
$ 4 |
% 5 |
^ 6 |
& 7 |
* 8 |
( 9 |
) 0 |
_ - |
+ = |
Backspace | ||||||||||||||||||||||||||||||||||||||||||||||
Tab | ㅂ ㅂ |
ㅈ ㅈ |
ㄷ ㄷ |
ㄱ ㄱ |
ㅅ ㅅ |
ㅛ |
ㅕ |
ㅑ |
ㅒ ㅐ |
ㅖ ㅔ |
{ [ |
} ] |
| \ |
||||||||||||||||||||||||||||||||||||||||||||||
Caps Lock | ㅁ ㅁ |
ㄴ ㄴ |
ㅇ ㅇ |
ㄹ ㄹ |
ㅎ ㅎ |
ㅗ |
ㅓ |
ㅏ |
ㅣ |
: ; |
" ' |
Enter | |||||||||||||||||||||||||||||||||||||||||||||||
Shift | ㅋ ㅋ |
ㅌ ㅌ |
ㅊ ㅊ |
ㅍ ㅍ |
ㅠ |
ㅜ |
ㅡ |
< , |
> . |
? / |
Shift |
이 자판은 안마태 자판을 구현한 것이다. libhangul의 안마태 자판 구현은 안마태 자판의 규격을 충실하게 구현한 것은 아니고 적당한 수준에서 사용가능하게 만든 것이다. 키입력이 동시에 일어났는지 판단하여 입력을 하는 방식이 아니고, 키를 순서대로 입력하여도 자모를 조합하도록 구현하여, 안마태 자판과 유사한 동작을 하도록 구현하였다.
~ ` |
! 1 |
@ 2 |
# 3 |
$ 4 |
% 5 |
^ 6 |
& 7 |
* 8 |
( 9 |
) 0 |
_ - |
+ = |
Backspace | ||||||||||||||||||||||||||||||||||||||||||||||
Tab | ㅁ |
ㅿ ㅅ |
ㄴ |
ㄹ |
ㆆ ㅎ |
; ㅕ |
' ㅑ |
/ ㅡ |
[ ㅛ |
] ㅠ |
{ , |
} ? |
| \ |
||||||||||||||||||||||||||||||||||||||||||||||
Caps Lock | ㅂ |
ㅈ |
ㄷ |
ㄱ |
ㆁ ㅇ |
ㅓ |
ㆍ ㅏ |
ㅣ |
ㅗ |
: ㅜ |
" . |
Enter | |||||||||||||||||||||||||||||||||||||||||||||||
Shift | ㅈ |
ㄷ |
ㅂ |
ㄱ |
ᅟᅠᇰ ㅇ |
ᅟᅠᇫ ㅅ |
ㄴ |
< ㅁ |
> ㄹ |
ᅟᅠᇹ ㅎ |
Shift |
이 자판은 현재 자판 배열의 라틴 문자를 음차하여 한글로 입력되도록 만든 자판이다. 예를 들면 'an'을 치면 '안'이 입력되는 방식이다. 로마자 자판은 다른 한글자판과 달리 Transliteration 방식으로 작동하는 자판이므로 별도의 레이아웃이 없다. 이 입력 자판에서 사용한 알파벳과 한글 자모의 대응은 기본적으로 한글 로마자 표기법과 유사하지만 동일하지는 않다. 로마자 자판은 한글을 입력하기 위한 것이므로 한글을 그럴듯 하게 표기하기 위한 로마자 표기법과는 목적이 다르다. 주로 한글 자모를 모두 입력할 수 있도록 하는 것을 우선적으로 고려하였다. 따라서 아래 자판의 대응대로 한글을 로마자로 표기하는 것은 로마자 표기법으로는 적절하지 않다.
한글 자모와 알파벳의 대응은 아래와 같다.
그 외에 다음과 같은 조합 규칙이 있다.
libhangul이 한글 키보드 파일을 읽는 위치는 두 곳이다.
키보드 파일의 로딩 순서는 시스템 파일을 먼저 로딩하고 사용자 파일을 로딩한다. 따라서 한글 키보드 목록을 이터레이션하면 사용자 추가 자판은 마지막에 나오게 된다. 사용자 자판 선택 알고리듬이 처음 나온 자판을 인식하는 방식이므로 동일한 id를 가진 자판을 등록하면 먼저 등록된 자판만 인식되므로 주의가 필요하다. 다시 말해서 시스템 자판과 같은 id를 가진 자판은 등록하여 사용할 수 없다.
unsigned int hangul_keyboard_list_get_count | ( | ) |
libhangul에서 제공하는 자판 개수를 구하는 함수
이 함수의 리턴값을 이용해서 자판을 iteration할 수 있다. 한글 자판의 설치 위치에 대한 정보는 한글 키보드 추가 방법 를 참고하라.
다음에 의해서 참조됨 : hangul_ic_get_n_keyboards().
const char* hangul_keyboard_list_get_keyboard_id | ( | unsigned | index_ | ) |
libhangul에서 제공하는 자판의 id를 구하는 함수
index_ 로 지정된 자판의 id 값을 리턴한다. 이 id는 hangul_ic_select_keyboard() 함수의 인자로 사용하는 문자열이다.
다음에 의해서 참조됨 : hangul_ic_get_keyboard_id().
const char* hangul_keyboard_list_get_keyboard_name | ( | unsigned | index_ | ) |
libhangul에서 제공하는 자판의 이름을 구하는 함수
index_ 로 지정된 자판의 이름을 리턴한다. 이 문자열은 사용자에게 보여주기 위한 것으로, 번역되어 사람이 읽을 수 있는 형태의 문자열이다.
다음에 의해서 참조됨 : hangul_ic_get_keyboard_name().