키보드의 숫자 부분에서 Ctrl+Alt+Plus 또는 Minus 키보드 단축키를 사용하고 싶지만 시도한 Linux(Manjaro 및 Debian, Gnome 및 KDE)에서는 전혀 작동하지 않습니다.
내 설정:
- 표준 풀사이즈 키보드
- 숫자 잠금 키 켜짐
- 영어 레이아웃 세트
LANG=en_US.UTF-8
잘 작동하는 것:
- Ctrl + 더하기 기호
- Alt + 더하기 기호
- Shift + 더하기 기호
그러나 Ctrl+Alt+Plus는 이 조합을 할당한 프로그램(예: Krusader, Dolphin 등)에서는 아무 작업도 수행하지 않습니다.
내가 무엇을 찾았나요(문제일 수도 있음)
나는 달리기를 시도했고 xev
Ctrl+Alt+Plus 또는 Minus를 누르면 다음과 같은 결과가 나왔습니다.
# For Ctrl+Alt+Plus
KeyRelease event, serial 28, synthetic NO, window 0x6c00001,
root 0x532, subw 0x0, time 3273638, (977,484), root:(1591,1348),
state 0x1c, keycode 86 (keysym 0x1008fe22, XF86Next_VMode), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
# For Ctrl+Alt+Minus
KeyRelease event, serial 28, synthetic NO, window 0x6c00001,
root 0x532, subw 0x0, time 3307298, (904,548), root:(1518,1412),
state 0x1c, keycode 82 (keysym 0x1008fe23, XF86Prev_VMode), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
XF86Next_VMode/XF86Prev_VMode
따라서 Ctrl+Alt 수정자를 누르면 더하기/빼기 키가 기호에 매핑되는 것처럼 보이고, 다른 수정자를 사용하거나 전혀 사용하지 않으면 에 매핑됩니다 KP_Add/KP_Subtract
.
그래서 제 질문은 왜 그런 일이 일어나고 이것이 무엇을 XF86Next_VMode/XF86Prev_VMode
의미하는가입니다.
저는 아직 리눅스 초보이지만 윈도우에서 이런 단축키를 사용하는데 익숙해서 리눅스에서도 써보고 싶었습니다. 키코드를 다른 기호로 다시 매핑하는 데 사용할 수 있다는 내용을 어딘가에서 읽었으며 xmodmap
이것이 내 문제를 해결할 것이라고 생각했습니다.
하지만 Arch Wiki에서 xmodmap에 대해 읽었을 때 여전히 혼란스러웠습니다. 그들은 말했다
테이블의 각 키 기호 열은 특정 수정자 키 조합에 해당합니다.
Key Shift+Key Mode_switch+Key Mode_switch+Shift+Key ISO_Level3_Shift+Key ISO_Level3_Shift+Shift+Key
하지만 위 목록에서 어느 열이 Ctrl+Alt 조합을 나타내야 할까요? 또한 이 문제를 해결하려면 xmodmap을 사용하는 것이 좋습니다.
답변1
결국 이 xmodmap
유틸리티를 사용하여 바로 가기가 작동하도록 했습니다.
1.xmodmap -pke
각 키코드에 대한 현재 매핑을 보기 위해 실행합니다 .
$ xmodmap -pke
...
keycode 82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode
keycode 86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode
...
우리는 이미 문제를 볼 수 있습니다. 마지막 열에는 다음 기호가 포함되어 있습니다 XF86Next_VMode, XF86Prev_VMode
. 열 7은 Ctr+Alt 조합에 속하는 것으로 보입니다. 어떤 문서에서도 일곱 번째 열의 의미를 찾을 수 없습니다.
2..xmodmaprc
일곱 번째 열을 수정하려면 홈 디렉터리에 다음 내용으로 파일을 만듭니다 .
keycode 82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract
keycode 86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add
삼.터미널에서 명령을 실행 xmodmap ~/.xmodmaprc
하면 바로 가기가 즉시 작동하기 시작합니다(다음에 로그인할 때까지).
4.분명히 나는 로그인할 때마다 이 수정 사항이 작동하기를 원합니다.
.profile
먼저 로그인할 때마다 로드해야 하는 파일에 추가해 보았습니다 .
if [ -f $HOME/.xmodmaprc ]; then
sleep 5 && xmodmap $HOME/.xmodmaprc &
fi
참고로 해당 명령을 추가해야 했습니다 sleep 5
. 그렇지 않으면 작동하지 않았습니다. 그러나 X11 디스플레이 서버의 KDE 및 Gnome에서만 작동하는 것으로 나타났습니다. Wayland에서 Gnome을 시도했을 때 어떤 이유로 작동하지 않았습니다(.profile이 로드되었다고 생각하지만 xmodmap 명령이 실행되지 않았습니다. 이유는 무엇입니까?).
그래서 다른 솔루션을 시도하고 path 로 이동하여 ~/.config/autostart/
다음 내용이 포함된 파일을 만들었습니다.
$ cat ~/.config/autostart/xmodmap.desktop
[Desktop Entry]
Name=Xmodmap
Type=Application
Exec=bash -c "sleep 5 && [[ -f $HOME/.xmodmaprc ]] && xmodmap $HOME/.xmodmaprc"
Terminal=false
Hidden=false
마지막으로 데스크톱 자동 시작 파일을 사용하여 지금까지 시도한 모든 Linux 세션에 필요한 키보드 단축키를 수정할 수 있었습니다.