F1마우스 클릭을 매핑 하는 방법을 알고 있습니다 F2( F3각각 왼쪽 클릭, 가운데 클릭, 오른쪽 클릭).
xkbset m # required, but disable keypad
xmodmap -e "keycode 67 = Pointer_Button1 Pointer_Button1"
xmodmap -e "keycode 68 = Pointer_Button2"
xmodmap -e "keycode 69 = Pointer_Button3"
하지만 이를 위해서는 다음을 xkbset m
사용해야 합니다.느린 키모델:
키보드를 누르면 4커서가 왼쪽으로 이동합니다. 이 기능은 필요하지 않으며 위의 매핑만 필요합니다.
이 문제를 해결하려고 노력 중이지만 xdotool
누른 키/놓인 키(드래그 앤 드롭의 경우)를 처리하는 방법을 모르겠습니다.
xdotool mousedown 1
xdotool mouseup 1
내가 어떻게 할 수있는아니요이 모드를 사용하거나 모든 키보드 키를 다시 매핑하는 방법은 무엇입니까?
키보드의 숫자와 산술 기호는 어떻습니까?
다른 해결책이 있나요?
Debian(cinnamon) 및 Archlinux(xfce)에 필요한 정보, 가능하다면 비창 관리자 기반 솔루션을 원합니다.
편집하다:
시험을 마친이 솔루션하지만 끌어서 놓을 수는 없습니다 F1.
존재하다 ~/.xbindkeysrc
:
"xdotool mousedown 1"
F1
"xdotool mouseup 1"
F1 + Release
또는:
"xdotool mousedown 1"
m:0x10 + c:67
"xdotool mouseup 1"
m:0x10 + c:67 + Release
그 다음에:
xset -r 67
편집 2
시험을 마친모바일 지식 기반
# actkbd configuration file
<keycode ("67")> :key : :xdotool mousedown 1
<keycode ("67")> :rel : :xdotool mouseup 1
시가는 안돼요 :/
에서 적응여기
답변1
와우!
먼저: 스크립트를 작성하십시오 click
.
#!/bin/bash
id=$(
xinput list |
awk '/Dell USB Keyboard/{print gensub(/.*id=([0-9]+).*/, "\\1", "1")}'
)
xdotool mousedown $1
while IFS= read -r event; do
if [[ $event == *release* ]]; then
xdotool mouseup $1
exit
fi
done < <(xinput test $id)
그런 다음 창 관리자에 새 키보드 단축키를 추가하고 이를 F1실행하도록 매핑합니다 /path/to/mouse <1|3>
(왼쪽또는마우스 오른쪽 버튼으로 클릭).
바라보다 ;)
이는 xbindkeys
WM과 독립적으로 실행될 수 있습니다.
편집하다:
왜 이것이 Archlinux + xfce 4.12에서는 작동하지 않지만 Debian9 + Cinnamon에서는 작동하지 않는지 잘 모르겠습니다.
편집하다:
이 솔루션이 더 잘 작동합니다.
존재하다 .bashrc
:
xmodmap -e "keycode 67 = Pointer_Button1 Pointer_Button1"
xmodmap -e "keycode 68 = Pointer_Button2"
xmodmap -e "keycode 69 = Pointer_Button3"
키보드 단축키:
#!/bin/bash
id=$(
xinput list |
awk '/Dell USB Keyboard/{print gensub(/.*id=([0-9]+).*/, "\\1", "1")}'
)
(
while read event; do
if [[ $event == *release* ]]; then
xkbset -m
exit
fi
done < <(xinput test $id)
) &
xkbset m
답변2
다음 명령을 사용하여 "마우스 전환" 작업을 수행할 수 있습니다 .xbindkeysrc
(첫 번째 편집에는 오타가 있었지만 오타는 아니었습니다 .xbindkeys
).
"if [ ! -e /tmp/mouse_token ] ; then touch /tmp/mouse_token ; xdotool mousedown 1 ; else rm -f /tmp/mouse_token ; xdotool mouseup 1 ; fi"
some_key
/tmp/mouse_token
마우스 버튼의 상태를 추적하기 위해 빈 파일을 생성합니다 . some_key
를 사용할 수 있기 때문에 F1
클릭을 하려면 두 번 누르거나 다른 키(예 F4
: )를 사용해야 합니다.
참고: 내 시스템에서는 알 수 없는 이유로 F 키 누르기 이벤트가 xbindkeys 바인딩을 트리거하지 않고 릴리스 이벤트만 트리거합니다. 같은 상황이 발생하면 release+F1
for 를 사용하세요 some_key
.
참고 2: 이는 기본적으로 선택되어 있지 않으므로 xbindkeys
rc 파일에 수정자를 설정하지 않은 경우 제거할 수 있습니다 NumLock
.m:0x10
keystate_numlock = enable