터미널(데스크톱 환경 없음)에서 작성 키를 정의하는 방법은 무엇입니까?

터미널(데스크톱 환경 없음)에서 작성 키를 정의하는 방법은 무엇입니까?

compose내 시스템(Debian Sid "Wheezy")에 키를 정의 하고 싶습니다 . 저는 Xorg가 없습니다(데스크탑 환경도 필요하지 않습니다). 터미널에서만 가능합니다.

내 키에 설정하고 싶습니다 Alt-Gr(오른쪽 Alt). 한동안 시도해 보았지만 설정 방법을 모르겠습니다.

나는 조사를 했고 몇 가지 지침을 찾았습니다.

  • $ showkey내 열쇠의 키 코드를 알려주세요 Alt-Gr(#100)

  • $ dumpkeys그리고 페이지에 $ dumpkeys --compose-only지정된 형식에 따라 "키보드 드라이버 현재 콘텐츠"를 출력합니다.keymapsman

  • $ loadkeys키보드 번역 테이블 로드

어렵지는 않을 것 같은데 어떻게 처리해야 할지 모르겠네요...

답변1

/etc/default/keyboard최신 Debian 및 Ubuntu 시스템에서는 키보드 설정이 X와 콘솔 간에 배치되고 공유됩니다. 빨리 달려

sudo dpkg-reconfigure keyboard-configuration

그리고 Compose key: Right Alt (AltGr)적절한 화면에서 선택하세요.

XKBOPTIONS=compose:ralt입력 하고 /etc/default/keyboard실행할 수도 있습니다.

sudo dpkg-reconfigure console-setup

기본적으로 이전 시스템의 콘솔에는 Compose 키가 있습니다. us레이아웃 에서둘 다 Alt키 조합은 1Compose 과 같이 작동합니다 .

예: Alt+ AltGr, ", A=> ä

그냥 AltGr이렇게 되고 싶다면 Compose변해야 해

alt keycode 100 = Compose

활성 키맵에서

keycode 100 = Compose

가장 쉬운 방법은 에 있습니다 /lib/kbd/keymaps/i386/include/linux-with-alt-and-altgr.inc.

/lib/kbd/keymaps/i386/include/altgr-is-compose.inc더 나은 접근 방식은 위의 줄로 호출되는 새 파일을 만들고 이를 포함하는 새 키맵을 만든 다음 기본 키맵으로 설정하는 것입니다.

  1. PrtScn또한 Compose기본값으로.

답변2

콘솔의 "compose"는 두 문자의 입력을 허용하지만 세 번째 문자를 출력합니다.

문제는 Compose가 다음을 사용하여 정의된다는 것입니다.바이트, 입력(즉, 입력된 키를 기반으로 작성을 정의할 수 없으며 입력된 기호만 정의할 수 있음) 및 출력으로 사용됩니다.

멀티바이트(최소 1~4바이트) UTF-8로 작동하려면 콘솔 입력 처리 방법을 크게 변경하고 현재 사용되는 간단한 문자 배열을 더 복잡한 배열로 교체해야 합니다. 이를 수행할 계획은 없는 것 같습니다. (커널 개발자들 사이의 합의는 콘솔이 콘솔로 남아 있어야 하며, 단순한 것, 최후의 수단으로만 사용되어야 한다는 것입니다. 정말로 유니코드가 필요한 경우에는 bidi, 재형성, 등; 그래픽 터미널을 실행하는 것이 가장 좋습니다(X11에서는 전체 화면 xterm이지만 다른 가능성도 있습니다).

따라서 실제로는 작동하지 않으며 콘솔의 멀티바이트 문자에는 작동하지 않습니다. 그러나 작성 정의를 순수 ASCII로 제한하면 여전히 작동합니다.

또한 출력이 iso-8859-1(최대 0x00ff의 유니코드 값에 해당)에 있으면 작동한다는 것을 알았습니다. 이를 위해 일부 시작 스크립트를 한 줄에 넣을 수 있습니다.

    로드키 /somepath/somefile

원하는 작성 정의를 해당 파일에 넣으십시오(파일을 ISO-8859-1 인코딩으로 저장하도록 주의하십시오. 출력으로 0x7f보다 큰 문자만 사용하십시오). 이러한 파일의 구문은 매우 간단하며 다음과 같습니다.

    'somechar' 'somotherchar'를 '원하는 출력'으로 결합

예를 들어:

    'a' 'a'를 'å'로 만들어 보세요
    'a' 'e'를 'æ'로 결합

아포스트로피는 이스케이프되어야 합니다.

데드 움라우트 키의 효과도 이 파일에 정의되어 있습니다. dead_acute + a에 대해 다음 줄을 정의합니다.

    '\'' 'a'를 'á'로 결합

dead_grave는 백틱(`)을 사용하고, dead_diaeresis는 큰따옴표(")를 사용하고, dead_circumflex는 곡절(^)을 사용하고, dead_tilde는 물결표(~)를 사용합니다.

관련 정보