Alt와 Super를 교환하세요

Alt와 Super를 교환하세요

Linux를 실행하는 Macbook Air가 있습니다. alt키보드 양쪽의 키와 키를 바꾸고 싶습니다 .super

cli 도구를 사용하여 이 작업을 어떻게 수행할 수 있습니까?

고쳐 쓰다

Drav Sloan의 답변을 바탕으로 다음을 사용했습니다.

keycode 64 = Alt_L
keycode 133 = Super_L
remove Mod1 = Alt_L
remove Mod4 = Super_L
add Mod1 = Super_L
add Mod4 = Alt_L

keycode 108 = Alt_R
keycode 134 = Super_R
remove Mod1 = Alt_R
remove Mod4 = Super_R
add Mod1 = Super_R
add Mod4 = Alt_R

답변1

왼쪽 Alt 키와 Super 키만 바꾸려면 터미널에서 다음 명령을 실행하세요.

setxkbmap -option altwin:swap_alt_win

기본 동작을 복원하려면 다음을 사용하세요.

setxkbmap -option

참고: 이는 일시적입니다. 효과를 영구적으로 유지하려면 시작 파일에 추가하세요.

답변2

Apple 키보드에서 이 작업을 수행하려면 다음을 시도해 보십시오.

echo 1|sudo tee /sys/module/hid_apple/parameters/swap_opt_cmd

낮은 버전의 Linux에서 작동하게 하려면 다음을 시도해 보세요. http://blog.chaselambda.com/2014/10/09/apple-keyboard-on-linux-3.8.html

답변3

이를 달성하는 한 가지 방법은 를 xmodmap실행하여 xev주요 이벤트를 얻는 것입니다. 실행할 때 xev초점을 맞추고 바꾸고 싶은 키를 누를 수 있는 상자가 나타나야 합니다. Alt키와 유사한 세부정보가 출력되어야 합니다 .

KeyPress event, serial 28, synthetic NO, window 0x8800001,
  root 0x25, subw 0x0, time 2213877115, (126,91), root:(1639,475),
  state 0x0, keycode 14 (keysym 0xffe9, Alt_L), same_screen YES,
  XLookupString gives 0 bytes: 
  XmbLookupString gives 0 bytes: 
  XFilterEvent returns: False

나는 "명령 키"는 없지만 이에 상응하는 "Windows 키"가 있는 PC를 사용하고 있으며 xev는 다음을 제공합니다.

KeyPress event, serial 28, synthetic NO, window 0x8000001,
  root 0x25, subw 0x0, time 2213687746, (111,74), root:(1624,98),
  state 0x0, keycode 93 (keysym 0xffeb, Super_L), same_screen YES,
  XLookupString gives 0 bytes: 
  XmbLookupString gives 0 bytes: 
  XFilterEvent returns: False

statexmodmap은 키맵을 모르고 쉽게 깨뜨릴 수 있으므로 다음을 수행하는 것이 좋습니다.

xmodmap -pke > defaults

그런 다음 xmodmap 파일을 만듭니다.

keycode 14 = Alt_L
keycode 93 = Super_L
remove Mod1 = Alt_L
remove Mod4 = Super_L
add Mod1 = Super_L
add Mod4 = Alt_L

반환된 키코드를 어떻게 사용하는지 주목하세요 xev. 또한 여기에서는 왼쪽의 super 및 alt 키만 교체합니다(그리고 오른쪽의 키는 이전 동작으로 그대로 둡니다). 그런 다음 간단히 를 실행하여 xmodmap다음 키를 설정할 수 있습니다 .

$ xmodmap -v modmap.file
! modmap:
! 1:  keycode 14 = Alt_L
        keycode 0xe = Alt_L
! 2:  keycode 93 = Super_L
        keycode 0x5d = Super_L
! 3:  remove Mod1 = Alt_L
! Keysym Alt_L (0xffe9) corresponds to keycode(s) 0xe
        remove mod1 =  0xe
! 4:  remove Mod4 = Super_L
! Keysym Super_L (0xffeb) corresponds to keycode(s) 0x5d
        remove mod4 =  0x5d
! 5:  add Mod1 = Super_L
        add mod1 = Super_L
! 6:  add Mod4 = Alt_L
        add mod4 = Alt_L
!
! executing work queue
!
        keycode 0xe = Alt_L
        keycode 0x5d = Super_L
        remove mod1 =  0xe
        remove mod4 =  0x5d
        add mod1 = Super_L
        add mod4 = Alt_L

(verbose) 스위치 없이 자동으로 실행할 수 있지만 -vmodmap 파일에서 실수를 한 경우 유용하다고 생각합니다. 상황이 복잡해지면 기본값을 다시 적용하세요.

xmodmap defaults

Modmap은 일반적으로 X가 시작될 때 실행되므로 modmap 명령을 ~/.xmodmaprc.

답변4

또한콜리안코프답변. 다른 서비스 키 조합(Ctrl, Alt 등)으로 바꿔야 하는 경우 setxkbmap의 다른 많은 옵션을 사용할 수 있습니다. 필수 옵션과 해당 설명을 보려면 다음 명령을 실행하십시오("alt" 및/또는 "win"을 다른 키로 바꾸십시오).

$ grep -E "(alt|win):" /usr/share/X11/xkb/rules/base.lst

그런 다음 setxkbmap을 통해 선택한 옵션을 설정합니다.

$ setxkbmap -option *chosen option*

방법에 대한 전체 설명은 다음 위치에 있습니다.아치리눅스 위키.

관련 정보