icewm에 발음 구별 부호를 입력하기 위한 단축키를 등록하는 방법은 무엇입니까?

icewm에 발음 구별 부호를 입력하기 위한 단축키를 등록하는 방법은 무엇입니까?

공통 발음 구별 부호를 입력하기 위한 단축키를 설정하려고 합니다. xdotool이 터미널이나 icewm 명령 모음(또는 심지어 gmrun)에서 발음 구별 부호를 입력하도록 할 수 있습니다.

xdotool key Aacute

그러나 다음 키 매핑(icewm 키 파일)은 작동하지 않습니다.

key "Ctrl+Alt+a"                  xdotool key Aacute
key "Ctrl+Alt+a"                  xdotool --delay 1000 key Aacute

대신 단축키를 입력할 때(터미널이나 텍스트 편집기에서) 커서가 한 번만 깜박이는 것을 볼 수 있지만 그 외에는 아무 일도 일어나지 않습니다. 다음은 팝업을 표시하므로 키 코드 자체는 정확합니다.

key "Ctrl+Alt+a"                  zenity --info --text="shortcut works"

키 바인딩을 등록하여 활성 응용 프로그램에 발음 구별 부호가 실제로 입력되도록 하는 방법이 있는 사람이 있습니까?

답변1

setxkbmapor 을 사용하는 xmodmap것이 옳은 것 같지만 FWIW 및 FTR 이 질문을 접한 후 다음이 나에게 효과적이라는 것을 알았습니다. 를 사용하려는 다른 사람들에게 도움이 되기를 바랍니다 xdotool.

내 키보드에는 이 키가 없기 때문에 xdotool에서 이 키를 에뮬레이트합니다. &IceWM이 단축키 처리에서 복귀하고 xdotool을 방해하지 않도록 백그라운드에서 명령을 실행하려면 를 사용하십시오 .

200ms는 제가 사용할 수 있는 가장 짧은 지연 시간이며 여전히 안정적으로 작동합니다. --clearmodifiers귀하의 사용 사례에 적합한지 여부가 확실하지 않습니다 .

key "Ctrl+Up"          xdotool sleep 0.2 key --clearmodifiers Page_Up &
key "Ctrl+Down"        xdotool sleep 0.2 key --clearmodifiers Page_Down &
key "Ctrl+Shift+Up"    xdotool sleep 0.2 key --clearmodifiers Home &
key "Ctrl+Shift+Down"  xdotool sleep 0.2 key --clearmodifiers End &

또한 이 키를 누르고 있으면 예상되는 반복 동작이 발생하지 않지만(IceWM 단축키가 최선의 선택이 아니기 때문에) 제 목적에는 괜찮습니다.

답변2

원래 솔루션이 작동하지 않아서 대신 키보드 매핑을 변경했습니다. 기본 미국 키보드 매핑에는 필요한 분음 부호가 없지만 국제 버전에는 있습니다. 사용해 보려면 다음 단계를 따르세요.

setxkbmap -layout 'us(intl)'

그러나 국제 버전에서는 기본적으로 특정 키에 대해 작성을 사용합니다. 예를 들어 ' 문자는 더 이상 즉시 응답하지 않습니다. 그래서 대신 미국 키보드를 기반으로 나만의 키보드 매핑을 만들기로 결정했습니다.

새 파일을 만들었습니다./usr/share/X11/xkb/symbols/erik

partial default alphanumeric_keys
xkb_symbols "basic" {
  include "us"
  include "eurosign(5)"

    key <AC01> { [         a,          A,        aacute,           Aacute ] };
    key <AD03> { [         e,          E,        eacute,           Eacute ] };
    key <AD08> { [         i,          I,        iacute,           Iacute ] };
    key <AD09> { [         o,          O,        oacute,           Oacute ] };
    key <AD07> { [         u,          U,        uacute,           Uacute ] };

    key <RALT>  { type[Group1]="TWO_LEVEL", [ ISO_Level3_Shift, Multi_key ]   };  

    modifier_map Mod5   { <RALT> };
};

xkb가 변경 사항을 선택하도록 하려면:

sudo dpkg-reconfigure xkb-data

키보드 매핑을 시도하려면 다음을 수행하십시오.

setxkbmap -layout erik

이제 alt_gr + [aeiou]는 [áéíóú]를 입력해야 합니다.

icewm 시작 파일을 사용하여 시작 시 위 명령을 호출하여 변경 사항을 영구적으로 적용했습니다. 배포판 키보드 전환기를 사용하여 레이아웃을 선택하는 것이 가능해야 한다고 생각하지만 이를 테스트하지는 않았습니다. 내 이름을 따서 키보드 매핑의 이름을 지정하는 엄청난 영광을 원하지 않는 한 파일 이름을 다른 것으로 자유롭게 지정하십시오. 모든 기본 국가 매핑에는 그렇게 이름이 지정되므로 2자리 코드는 피하십시오.

참고 사항:
기호 디렉터리의 다른 매핑 파일에서 예를 확인할 수 있습니다.
파일 형식을 이해하기 위한 일부 리소스는 여기에서 찾을 수 있습니다.
https://www.x.org/wiki/XKB/

관련 정보