나는 나 자신을 사용하고 있음을 발견비꼬는 표시⸮ 유니코드 U+2E2E(또는 ß 유니코드 U+061F)는 mcabber와 vim 모두에 풍부합니다. 오래된 복사-붙여넣기 방지 패턴은 지루해서 인쇄해야 하는 쓸모 없는 키보드 키 중 하나의 이름을 바꿔야겠다고 생각했습니다. 그래서 제 질문은 세 가지입니다(하지만 실제로는 같은 질문입니다).
- 수행하는 방법맥베스?
- 수행하는 방법놀라운? 제가 사용하는 창 관리자이기 때문에 모든 응용 프로그램에서 작동해야겠죠?
- xmodmap이나 다른 신비한 X11 주문을 사용하여 이 작업을 어떻게 수행합니까?
map! ;; ⸮
vim에서는 파일에 추가하는 것만큼 간단하므로 ~/.vimrc
삽입 모드에서는 ";;"만 입력하면 됩니다.
답변1
Compose저는 Compose 키 시스템을 사용하는 것을 선호합니다. 방금 확인한 결과 - /- ?(및 Compose- ?- /)가 한동안 U+2E2E를 출력하도록 설정된 것 같습니다 (? /에 반영됨).
내 .XCompose
파일은 다음과 같습니다.
#
# add in the original stuff (what's usually there)
include "%L"
#
# Compose key sequences
#
# generate PI char
<Multi_key> <p> <i> : U03C0 # U03C0 PI
<Multi_key> <P> <I> : U03C0 # U03C0 PI
#
<Multi_key> <i> <n> <f> : U221E # U221E infinity
<Multi_key> <I> <N> <F> : U221E # U221E infinity
#
<Multi_key> </> <?> : U2E2E # U2E2E irony punctuation (reversed ?)
<Multi_key> <?> </> : U2E2E # U2E2E irony punctuation (reversed ?)
#
<Multi_key> <3> <*> : U2042 # U2042 asterism
#
#
include "%L"
여기서는 올바른 "사전 설정" 키 입력 조합을 입력한 다음 내 사용자 정의 설정을 추가하기 위해 해당 행을 사용합니다 ...
Capslock내 키에 다시 매핑했습니다 . Compose창 관리자가 이 작업을 수행하는 방법을 확인하거나 setxkbmap
명령에 대해 읽어보세요. 하지만 이건 내꺼야:
setxkbmap -model pc101 -layout us -option -option compose:caps -option shift:both_capslock
Capslock로 설정하고 + ( Compose도 설정합니다 .ShiftShift둘 다) 키를 눌러 Caps Lock을 전환할 수 있습니다. (그런 분들을 위해희귀한기회). 더 많은 옵션이 있습니다 -option
. 간결성을 위해 몇 가지를 제거했습니다. 주로 X Windows입니다.잽( Ctrl- Alt- Backspace) 키 입력 및 Left-Win존재 여부Meta
답변2
이는 다양한 방법으로 달성될 수 있습니다. X11에서 Xmodmap은 아마도 이와 같은 간단한 변경을 위한 가장 쉬운 방법 중 하나일 것입니다.
이 문자는 유니코드에서 U+2E2E로 역방향 물음표(⸮)를 사용하여 표시할 수 있습니다. 또 다른 대략적인 문자는 아랍어 물음표(Ù), U+061F입니다.
가능한 모든 유니코드 문자에 대해 유니코드 문자와 일치하는 키 기호는 "U0020" - "U007E" 및 "U00A0" - "U10FFFF"로 지정할 수 있습니다.
방금 해봤는데
xmodmap -e "keysym F8 = U061F"
문제를 해결하는 것 같습니다. 위 명령은 F8keyym을 통해 기호를 키에 바인딩합니다. 물론 기호를 원하는 키에 바인딩할 수 있습니다. 가능한 모든 키심(현재 매핑되어 있지 않더라도)은 일반적으로 파일에서 찾을 수 있습니다 /usr/include/X11/{keysymdef,XF86keysym}.h
. 키코드를 통해 매핑할 수도 있습니다. 다음과 같은 도구를 사용하세요.시프시스템의 키코드와 매핑된 키 기호를 확인할 수 있습니다.
좀 괜찮은 것 좀 봐xmodmap 튜토리얼인터넷에서.
답변3
가장 좋은 방법은 키보드 구성에 있습니다.
Jabber 클라이언트에서 문자를 인쇄하기 위해 사용자 정의 바로가기를 설정할 수 있는지는 모르겠지만 해당 애플리케이션에서만 작동합니다. Awesome의 경우 창 관리자이므로 해당 작업이 아닙니다.
일부(적어도 GTK) 애플리케이션에서 해당 문자(또는 유니코드 문자)를 입력하는 방법:
Ctrl+ Shift+ U그러면 2E2E(16진수 코드)가 됩니다.
다른 장소에도 사용할 수 있도록 키보드를 구성하는 방법:
xmodmap
한 가지 방법이었지만 Xkb 구성이 더 복잡해 보이더라도 Xkb를 선호하여 더 이상 사용되지 않습니다. 그런데 당신은 신비한 주문을 요구했어요 :D
setxkbmap -print
사용 중인 키맵을 인쇄합니다. 이를 파일로 보내 새 키맵의 기초로 사용할 수 있습니다. ("방법"에 대한 빠른 버전을 보려면 아래 예시로 이동하세요.).
xkbcomp
키맵을 컴파일하여 X 서버로 보내는 데 사용할 수 있는 유틸리티입니다.
xkbcomp $DISPLAY keymap.dump
현재 구성을 파일에 덤프합니다 keymap.dump
. 이전과 동일하지만 include
d개의 요소를 결합한 값을 가지고 있기 때문에 깁니다 . 키에 할당된 이름을 검색하는 것이 유용할 수 있습니다. 키에 다른 기호를 할당하려면 이름이 필요합니다. 직접 수정하여 사용할 수도 있지만, 원하는 것을 포함하고 재정의할 수도 있습니다. 이러한 파일은 각 섹션에 해당하는 디렉터리에 include
있습니다 ./usr/share/X11/xkb/
키맵 파일에는 여러 섹션이 있습니다.
xkb_keycodes
: 키보드 X 키 코드를 다른 섹션에서 사용되는 키 이름에 매핑하는 섹션입니다. 이 섹션에서는 X 키 코드를 얻고xev
관련 이름을 찾을 수 있습니다.xkb_types
: 유형과 키보드 수정자(Shift, Control, Alt, 이들의 조합 등...)에 해당하는 수준을 설명하는 섹션입니다.xkb_compatibility
: "Xkb를 인식하지 못하는 응용 프로그램"에 관해 내가 읽은 내용에 따르면.. 여기서 무슨 일이 일어나고 있는지 잘 모르겠습니다.xkb_symbols
: 키 이름을 키 기호에 매핑하는 부분과 해당 유니코드 문자를 추가하기 위해 정의 중 하나를 재정의하는 부분입니다. 사용할 키의 현재 정의를 볼 수 있습니다.xkb_geometry
:물리적인 키보드 모양..무슨 용도인지 모르겠습니다.
덤프된 키맵의 키 정의를 살펴보면 관련 유형이 있음을 알 수 있습니다. 키 유형에 따라 사용 가능한 수정자와 해당 레벨이 결정됩니다. 키와 레벨의 조합은 키 기호에 해당합니다. 이 유형은 xkb_types
이 섹션에 정의된 유형입니다. 키를 재정의할 때 다른 유형을 지정하지 않으면 xkb_symbols
포함 맵에 정의된 유형이 됩니다 .
키를 예로 들면 Just Key, Key+ , Key+ , Key ++ I에 해당하는 4가지 레벨이 있습니다 .ShiftAltGrShiftAltGr
이 그룹의 경우 키보드 구성에서 여러 레이아웃을 사용하지 않는 경우 아마도 하나의 레이아웃만 있으므로 이를 지정할 필요가 없을 것입니다. (여러 그룹을 사용하여 그룹과 연결된 키 정의 간에 전환할 수 있습니다).
다음은 수정된 키맵 파일의 예입니다.
xkb_keymap {
xkb_keycodes { include "evdev+aliases(azerty)"};
xkb_types { include "complete"};
xkb_compatibility {include "complete"};
xkb_symbols {
include "pc+fr+inet(evdev)"
key <AD08> {[ i, I, U2E2E, idotless]};
key <AD09> {[ o, O, oslash, U262F]};
};
xkb_geometry { include "pc(pc104)"};
};
이 키를 사용하여 매핑 AltGr+ I는 ⸮를 제공하고 Shift+ AltGr+는 O ☯를 제공합니다.
키맵 설정:
xkbcomp mykeymap.xkb $DISPLAY
이것아치리눅스 위키마지막에 더 자세한 내용과 다른 링크가 있습니다.