일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 알고리즘특강
- spaghetti code
- docker
- 현대자동차
- open(0)
- 소프티어부트캠프
- 비트집합
- 대학생알고리즘특강
- 윈도우클린설치
- 데이터엔지니어링
- 에라토스테네스의채
- 실전sql퀵스타트
- 백준
- Python
- 도커
- 표준입력
- 우분투22.04
- 피보나치수
- 현대자동차그룹
- 파이썬
- IDA*
- code golf
- boj
- zshrc
- 소프티어
- hmg소프티어부트캠프
- 데이터엔지니어
- ucpc
- Short Coding
- 그리디알고리즘
- Today
- Total
Neo Ground
[Ubuntu 22.04] 텐키 없는 키보드로 마우스 조작하기 본문
구매한 mini PC에 우분투를 설치했다.
공부하는 과정에서 윈도우 랩탑을 번갈아 만지게 된다.
가지고 있는 무선 마우스는 멀티페어링을 지원한다.
하지만 페어링 전환 버튼이 바닥에 있어 윈도우 노트북과 함께 사용하면서 페어링을 전환해야 할 때 매번 누르는 게 여간 귀찮은 일이 아니다.
때문에 키보드로 마우스를 제어할 수 있으면 좋겠다 생각했다.
대충 ChatGPT에게 물어보니 설정을 좀 만져주면 텐키로 제어할 수가 있다고 한다.
근데 나는 텐키가 없는 키보드를 사용한다… ㅎㅎ
그래서 다른 방법을 찾아보았고, 아래와 같은 해결책이 존재했다.
xdotool, xbindkeys 설치
sudo apt install xdotool xbindkeys
xdotool은 키보드 입력과 마우스 이벤트를 시뮬레이트 하는 커맨드라인 도구이고
xbindkeys는 키보드와 마우스 입력을 사용자가 지정한 명령어로 매핑하는 도구이다.
xdotool 테스트
xdotool getmouselocation
위 명령어를 입력해 마우스의 위치가 나오는지 확인해 보자.
마우스를 옮겨가며 바뀐 위치에 따라 출력도 달라진다면 오케이. 아래는 넘기고 다음 단계로 넘어가자.
만약 마우스 위치가 어떤 고정된 위치가 나온다면 다음 명령어를 입력해보자.
xdotool getwindowfocus
아마 에러가 뜰 것이다. 내가 그랬다.
이유는 (아마) Wayland라는 디스플레이 서버 프로토콜을 사용하기 때문일 것이다.
일단 우분투 22.04에서는 Wayland를 기본값으로 사용한다.
하지만 xdotool은 X11프로토콜을 사용하며, 자체 프로토콜을 사용하는 Wayland 환경을 지원하지 않는다고 한다.
그래서 X11 프로토콜을 사용하는 다른 디스플레이 서버 프로토콜인 Xrog를 사용해야 한다.
방법은 간단하다.
sudo vim /etc/gdm3/custom.conf
위 명령어를 입력 후 파일 중간에 있는 주석을 지워
WaylandEnable=false
을 활성화 시켜준 후 파일을 저장하자.
이후 재부팅하면 내용이 반영될 것이다.
xdotool getmouselocation
다시 위 명령어를 사용해 보자. 이제 잘 작동할 것이다.
.xbindkeysrc 작성
아래 명령을 입력해 홈 디렉터리에 .xbindkeysrc
파일을 만들어 편집하자.
vim ~/.xbindkeysrc
그리고 아래와 같이 파일을 작성한 후 저장.
# clicks
"xdotool click 1"
alt+Shift+Return
"xdotool click 3"
alt+Shift+backslash
# slow move
"xdotool mousemove_relative -- -10 0"
alt+Shift+Left
"xdotool mousemove_relative -- 10 0"
alt+Shift+Right
"xdotool mousemove_relative -- 0 -10"
alt+Shift+Up
"xdotool mousemove_relative -- 0 10"
alt+Shift+Down
# fast move
"xdotool mousemove_relative -- -50 0"
Control+Shift+alt+Left
"xdotool mousemove_relative -- 50 0"
Control+Shift+alt+Right
"xdotool mousemove_relative -- 0 -50"
Control+Shift+alt+Up
"xdotool mousemove_relative -- 0 50"
Control+Shift+alt+Down
그리고 아래의 명령을 입력해 변경 사항 반영
killall xbindkeys
xbindkeys
키보드로 마우스 제어
이제 키보드로 마우스를 제어할 수 있다.
alt+shift+방향키
로 마우스를 천천히 움직일 수 있고
ctrl+alt+shift+방향키
로 마우스를 빠르게 움직일 수 있다.
alt+shift+엔터
로 좌클릭
alt+shift+\(backslash)
로 우클릭을 할 수 있다.
일단 나는 위와 같이 지정해 뒀지만 불편하다면 .xbindkeysrc
파일을 직접 변경해 수정하자.
필요한 키의 이름을 모르겠다면 xev
명령을 실행해 원하는 키의 이름을 확인하자.
완벽하진 않고 약간의 버그가 있다...
게다가 단축키 충돌이 좀 발생해 다른 키 조합을 사용하는 것이 좋을 것 같다.
임시방편이니 나중에 더 공부해 보는걸로
끝!
References
xdotool - How to get current active window in Ubuntu 22.04? - Ask Ubuntu
Ubuntu 22.04 Fresh installation Firefox will no load - Ask Ubuntu
'Mini PC' 카테고리의 다른 글
윈도우 클린 설치하기 (N100 미니 PC / SOYO M2 Plus) (18) | 2024.07.28 |
---|