Keyboard layout switching/ko

키보드 배치는 키보드의 스캔코드를 프로그램에 보낼 문자에 대응합니다. 키보드 배치는 또한 키 자체의 문자를 출력하지 않지만 다음 키 입력의 출력을 수정하는 복잡한 전달 과정을 수행할 수도 있으며 이를 데드키라고 합니다. QWERTY 키보드가 ASCII 집합 외부에 있는 문자를 입력할 수 있는 것처럼 비 QWERTY 키보드를 지원하려면 적당한 키보드 배치 설정이 필요합니다.

OpenRC
문서로 설명이 잘 되어 있지만 상당히 이해하기 힘든  파일을 편집하십시오. 이 파일에는 keymap 변수의 값 에 나타나는 적당한 키보드 배치를 설정해야 하며 추가로 extended_keymaps 변수의 값  디렉터리와 같은 적당한 포함 디렉터리 경로에서 추가적으로 파일을 설정할 수 있음을 보여줍니다.

마지막으로 부팅 실행 레벨에 를 추가하십시오.

Restart keymaps for apply changes

Restart consolefont

And add to boot runlevel

개별 키보드 배치
개별 키 배치를 만들려면 의 제공 키 배치를 살펴보십시오:

여기에 제시한 예제는 U.S. QWERTY 키 배치에서 정방향 슬래시와 어퍼스트로피 키를 서로 바꾼 점만 제외하고 모든 면이 동일한 개별 키 배치입니다:

키에 할당한 키 코드를 찾으려면 출력 내용을 보십시오:

위 명령으로 키를 찾지 못했다면 다음 명령을 실행하십시오:

그냥 키를 누르면 키 코드가 나타납니다. 과정이 끝났다면 몇 초 기다리시면 프로그램이 닫힙니다.

systemd
systemd는 설정 파일을 활용하며 터미널 글꼴과 키보드 배치 설정을 넣습니다만 OpenRC에 들어있는 고급 설정 몇가지가 빠져있습니다. OpenRC에서 지원하는 관련 변수에 따라 올바른 값을 동일하게 넣어야합니다.

X11
최신 X11 프로그램은 보통 libXklavier를 사용하며("klavier"는 "키보드"의미를 지닌 독일어) 으로 설정할 수 있습니다. 게다가 X11에서는 가상 터미널에서 지원하는 키보드 배치보다 더 많은 키보드 배치 셋을 지원합니다. 적당한 데스크톱 환경에서는 자체적으로 자체 키보드 배치를 관리한다는 점을 알아두어야합니다. 앞에서 언급한 프로그램이 직접 활용할 필요는 없어졌지만, 키보드 배치 관리 프로그램에 문제가 있거나 기능이 빠졌을 경우 이를 다루는 일이 간단해질 수 있습니다.

KDE4
을 열고 모듈을 찾아보십시오.

To make additional languages available in the sddm login manager, edit the file and add the command setxkbmap followed by a comma separated list of the locales you would like to choose from.

For example to enable German as default and prove US as your keyboard layouts add the following:

일반 데스크톱 환경
을 편집하고 해당 위치에서 를 부르거나 Xorg 설정 파일에서 키보드를 설정하십시오(예제는 하단 참조).

lxpanel의 키보드 배치 처리자
에서는 키보드 배치 처리자를 패널 항목으로 제공합니다.



setxkbmap 활용
여기서 바꾼 설정은 임시적이며 사용자가 X11을 다시 시작하기 전까지 지속됩니다. 보통 X 서버를 시작할 때마다 적당한 매개 변수를 설정하는 시작 스크립트에서 명령을 호출할 수 있습니다.

기존 설정을 요청한 다음:

키보드 배치를 설정하시고:

키보드 배치, 형식, 모델을 설정하십시오:

Setting up two keyboard layouts with LED indication:

It is advised to read  manual for a full list of keyboard configuration options:

지원 키보드 배치 및 변형판 또는 다른 xkb 속성 값을 찾는 일은, 대부분 파일에 나타나더라도, 이 프로그램에서는 나타나지 않아 불가능합니다. 거의 완벽한 내용을 가져오는건 경로에서 다른 파일을 찾아보는 방법만 가능할 수도 있습니다. 온전하게 사용하는 목적으로라면 데스크톱 환경에 맞는 자체 키보드 배치 관리 프로그램을 활용하는게 좋습니다.

시스템 범위 설정 배치 및 단축키 활용
데스크톱 환경을 사용하지 않는, 달리 말해 창 관리자를 활용하는 X11 환경에서 설정하는 방법이라면 이 방법을 추천합니다. 파일을 만들어 적당한 키보드 설정 값을 넣으십시오.

위 예제에서는 미국 및 브라질 키보드 배치에서 + 키를 서로 바꿔가며 사용하는 단축키로 설정합니다. 브라질 키보드 배치는 키보드의 스크롤 록 LED로 신호를 보냅니다.

가능한 추가 설정
다양한 변형판이 있고, 키보드 키 대응을 설정할 때 활용할 수 있는 여러 옵션이 있습니다. 대부분의 내용은 파일에서 찾아볼 수 있습니다.

예를 들어 일부 국제 문자를 쓸 수 있는 미국 키보드 배치는  변형판을 활용하여 설정할 수 있습니다:

그 다음 를 국제 문자 입력의 조합 입력키로 활용할 수 있습니다.

Xorg에서는 컴포지션을 통해 국제 문자 및 변형 심볼 문자를 입력할 수 있는 옵션을 제공합니다. "조합 키"를 누르고 그 다음 문자키를 누르면 된다는 의미입니다. 키 조합을 활성화하려면  옵션을 추가하십시오:

위에서  옵션은  키를 조합 키로 지정합니다. 이 설정을 통해:


 * 를 누르고 'oo'를 입력하면 도 기호 '°'가 나옴
 * 를 누르고 'oc'를 입력하면 저작권 기호 '©'가 나옴
 * 를 누르고 ':&#41;'를 입력하면 웃는 얼굴 기호 '☺' 가 나옴
 * 를 누르고 '^2'를 입력하면 위첨자 2 ('²')가 나옴
 * 를 누르고 '_2'를 입력하면 아래첨자 2 ('₂')가 나옴
 * 를 누르고 'di'를 입력하면 지름 기호 '⌀'가 나옴

... 그리고 그 밖에 여러 옵션을 지정할 수 있습니다. 파일에는 가능한 키 조합 소스를 보여줍니다.

X 키보드 배치 개선
키 할당 추가, 또는 기능키의 동작 추가 같은 식으로 키보드 배치를 설정하는데 상당한 변화 영향을 가져올 경우 필요합니다. 설정을 바꾸는 각각의 경우는 실제로 꾸러미의 소스 파일을 바꾸므로 epatch_user 매커니즘을 활용하여 꾸러미를 다음에 업데이트할 때 수정을 보류할 수 있게 하는게 좋습니다.

기본 원리
관련 젠투 꾸러미는 입니다. X 키보드 설정은 가상 콘솔에서 설정하는 것보다 훨씬 복잡합니다. 적절한 설정 파일은 경로의 하위 디렉터리에서 찾을 수 있습니다:


 * 이 파일은 심볼릭 이름 및 키 코드가 들어갑니다 - 아마 누구든 바꾸고 싶어하지 않을 것 같습니다.
 * 이 파일은 심볼릭 이름 및 키 코드가 들어갑니다 - 아마 누구든 바꾸고 싶어하지 않을 것 같습니다.


 * 키보드 그림을 그릴 때 프로그램에서 활용할 키보드의 실제 모양새 정보입니다 - 이 또한 누구든 바꾸고 싶어하지 않을 것 같습니다.
 * 키보드 그림을 그릴 때 프로그램에서 활용할 키보드의 실제 모양새 정보입니다 - 이 또한 누구든 바꾸고 싶어하지 않을 것 같습니다.


 * 여기 있는 파일은 "형식" 을 만듭니다. 키 선언에 활용하며, 어떤 Shift 키 조합 입력이 가능한지 지정합니다.
 * 여기 있는 파일은 "형식" 을 만듭니다. 키 선언에 활용하며, 어떤 Shift 키 조합 입력이 가능한지 지정합니다.


 * 이 파일은 실제 키 할당 여부를 지정합니다.
 * 이 파일은 실제 키 할당 여부를 지정합니다.


 * 이 파일은 "동작"(가상 터미널 전환 등), 명칭, 어떤 동작을 키에 할당할 수 있는지를 지정합니다.
 * 이 파일은 "동작"(가상 터미널 전환 등), 명칭, 어떤 동작을 키에 할당할 수 있는지를 지정합니다.


 * 이 파일은 키보드 형식, 언어, 같은 매개 변수를 지정하며, 다른 디렉터리의 적당한 명세를 활성화합니다.
 * 이 파일은 키보드 형식, 언어, 같은 매개 변수를 지정하며, 다른 디렉터리의 적당한 명세를 활성화합니다.

이 디렉터리의 완전한 설명은 Doug Palmer가 작성한 An Unreliable Guide to XKB Configuration에서 찾아볼 수 있습니다. 이름으로보다는 훨씬 더 많은 내용이 있습니다. 더 많은 문서는 freedesktop.org의 xkeyboard-config 홈페이지에서 찾아볼 수 있습니다.

xkb에서는 "" 같은 키 이름을 부여하는데 "영숫자(Alphanumeric) 영역 에서 아래에서 세번째(C)(CapsLock 을 켠 상태), 그리고 줄 왼쪽 으로부터 키 번호 01번을 의미합니다. 이 키는 영문 배치에서 입니다. 다른 영역의 키에는 다른 이름이 붙어 있으며, 키에는 ""가, 왼쪽  키에는 ""이 붙습니다.

키 할당 추가
예제에서 보신 바와 같이, 이 섹션에서는, , 를 입력하는 영국 영어 키보드 배치를 키를 활용하여 독일어 움라우트 문자 ä, ö, ü를 입력할 수 있게 개선하겠습니다. 대문자 버전으로도 올바로 동작할 수 있게 해야합니다. 동작을 개선할 키는  (),  (),  ()입니다(ß 문자는 이미 + 키에 할당했습니다).

xkb에서 움라우트 문자에는 "adiaeresis" 같은 이름이 붙습니다. 이 이름은 "XK_"가 붙는 부분은 이름을 가져오려면 빼야하겠지만, 파일에서 찾을 수 있습니다.

디렉터리에 올바른 파일을 식별 표시하십시오. 대부분의 파일은 영문자 2개를 지닌 국가 코드(대영 제국의 경우 )가 붙으며 어떤 키보드 배치를 X에서 선택했는지 짐작할 수 있습니다. 이 예제에서는 를 개선했습니다.

위 내용을 통해 의 기존 스킴을 복사하여 새 항목을 만들겠습니다. 이 예제에서 "basic" 섹션에 이 항목을 추가해야합니다. 이 설정 내용을 통해, 각 키에 있는 항목의 중괄호와 각괄호에 있는 네 항목은(다른 키와 함께 누르지 않는) 일반적인 각각의, , + 키임을 쉽게 짐작할 수 있습니다.

추가 설정을 넣고 나면, 섹션의 내용은 다음과 같습니다:

이 파일을 저장하고 나면 X 윈도우를 다시 시작하십시오. 보통 데스크톱 환경, XFCE 같은 경우는 시작할 때마다 위 설정 파일을 다시 읽습니다. 오류가 있으면 일반적인 에 오류 메시지를 기록합니다. X 윈도우를 명령행에서 시작하면 은 X 윈도우를 시작한 가상 터미널이 됩니다.

기능 키에 동작 할당
예제에서와 같이, , 키를 모두 선택했을 때  -  기능 키에 "터미널 n번으로 전환" (n > 12) 동작을 추가하겠습니다. 키와 키를 선택했을 때도 동일한 동작이 일어나야합니다.

우선 기능키에서 기존에 할당한 동작 설정이 있는 디렉터리에서 파일을 찾아보십시오. 여기서 찾을 파일은 입니다. 이 파일에서 키 동작에 대해 수정해보려는 항목은 다음과 같습니다:

이 항목에서 참고해야 할 두가지는 다음과 같습니다:
 * "CTRL+ALT" 형식입니다; 따라서, 키를 함께 누르는 네가지  표준 shift 키 설정에, 다섯번째에 + 설정을 넣었습니다. ++ 키를 사용하는게 목적이고 기존 입력에 적당한 항목이 없으니, 새 설정을 만들어야합니다.
 * "동작"은 xkb 시스템에서 정의한 심볼입니다. 디렉터리의  파일 안에 넣은 설정 항목에 이 부분이 있습니다.   (또는 그 이상)의 심볼이 없으므로, 대신 사용하지 않는 기존의 F13, F14, ..., F24 심볼을 빼돌려 쓰겠습니다.

새 CTRL+ALT+SHIFT 형식 만들기
에서 "CTRL+ALT" 부분을 보시면 복사하고, "CTRL+ALT+SHIFT"로 이름을 바꾼 후, 단축 키 조합 ++로 바꿀 수 있게 확장하기에 충분히 쉽습니다. 결과는 다음과 같습니다:

F13, ..., F24 심볼 활성화
심볼은 에 바로 들어있습니다. F13, ..., F24 심볼 할당 값을 만들 모양새를 복사하기에 간단한 구조를 갖추고 있습니다. 에서, 이 심볼 중 첫번째 F13에 대한 정의는 다음과 같습니다:

F14, ..., F24 키에 대한 유사 정의는 이 파일에 넣어야합니다.

, ..., 키 심볼 항목 수정
이제 새 CTRL+ALT+SHIFT 입력과 F13, ..., F24 심볼 정의를 넣었으니 의 기능키에 대한 키 정의를 수정하겠습니다. 기능키에 대한 내용을 아래에 보여드리는 바와 같이, 다른 기능키에도 유사한 정의를 넣어야합니다.

,, 설정을 바꾸고 나면 X 서버를 다시 시작하고 X 에서 13번 가상 터미널로 바로 전환하면 위의 설정대로 활용할 수 있습니다 -  물론 /etc/inittab(또는 systemd의 동급 항목)에서 설정한 대로 나타납니다.