묶는 방법. 탭만 = 탭이지만 다른 키가 있는 탭 = WinKey + 다른 키

묶는 방법. 탭만 = 탭이지만 다른 키가 있는 탭 = WinKey + 다른 키

Tab추가 키 없이 단독으로 클릭하면 평소처럼 Tab처럼 작동하지만 Tab+와 같은 다른 키와 결합 하면 j처럼 작동 하도록 키를 다시 매핑하고 싶습니다 Win.

TAB = TAB (pressed solely)
TAB + (any_key) = WIN_KEY + (any_key)

이를 달성하려면 어떤 도구를 사용해야 합니까?

답변1

두 개의 명령줄 기반 도구가 필요합니다.시프그리고xmodmap.

이를 사용하여 키를 다시 매핑할 수 있습니다 xev. 터미널 창을 실행하고 실행 xev한 다음 동작을 변경하려는 키를 누르십시오. 귀하의 경우에는 이것이 Tab핵심입니다.

xevTab키에 대한 정보 가 표시됩니다 . 예를 들어:

 KeyRelease event, serial 37, synthetic NO, window 0x4000001,
    root 0x75, subw 0x0, time 4090453521, (461,542), root:(468,620),
    state 0x10, keycode 23 (keysym 0xff09, Tab), same_screen YES,
    XLookupString gives 1 bytes: (09) " "
    XFilterEvent returns: False

세 번째 줄이 가장 중요합니다. 여기서 는 Tab이때 키가 할당된 동작의 이름이고, 숫자 키코드는 23Tab 키를 식별하는 내부 ID입니다.

또는 키에 대한 정보 Windows:

KeyPress event, serial 37, synthetic NO, window 0x4000001,
    root 0x75, subw 0x0, time 4090816069, (681,389), root:(688,467),
    state 0x10, keycode 115 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

다시 말하지만, 세 번째 줄이 가장 중요합니다. 여기서 는 Super_L현재 키가 할당된 동작의 이름이고 숫자 키코드는 115Windwos 키를 식별하는 내부 ID입니다.

를 사용하여 두 개의 키를 교환 할 수 있습니다 xmodmap. 여기 하나 있어요지도 시간. 예를 들어:

xmodmap -e "keycode 115 = Tab"

이렇게 하면 Windows 키의 동작이 변경되어 Tab 키와 똑같이 동작하게 됩니다. 또는

xmodmap -e "keycode 115 = Tab j"

이렇게 하면 Tab+ 키의 동작이 변경되어 키 j처럼 작동하게 됩니다 .Tab

답변2

@Goro의 답변에는 키 입력을 식별하는 데 유용한 도구가 나열되어 있습니다.시프. 그러나 그의 대답의 두 번째 부분은 내가 원하는 것이 아닙니다.

Tabnot key 의 동작을 변경하고 싶습니다 Windows. 예를 들어 i3 창 관리자에서 창을 변경하는 스크립트를 활성화하려면 Tab+ 1을 눌러 첫 번째 화면으로 전환할 수 있습니다. Win+ 1(기본값). 하지만 단독으로 누르면 여전히 Tab들여쓰기에 사용할 수 있습니다.

그것을 작동시키기 위해 내가 한 일은 다음과 같습니다.xmodmap그리고X 각도.

spare_modifier="Super_L"
echo $spare_modifier
xmodmap -e "keycode 23 = $spare_modifier"
xmodmap -e "remove mod4 = $spare_modifier"
xmodmap -e "add Win = $spare_modifier"
xmodmap -e "add mod4 = $spare_modifier"
xmodmap -e "keycode any = Tab"
xcape -e "$spare_modifier=Tab"

관련 정보