8BitDo Retro Mechanical Keyboard — Linux 레이아웃 설정기

Alexandra Zaharia의 글(2023-12-30). 공식 소프트웨어가 Windows 전용인 8BitDo Retro Mechanical Keyboard(N 에디션)를 Linux에서 쓸 만한 레이아웃으로 만든 과정 정리. AI 도메인 밖이지만 xmodmap·pactl 기반 Linux 키 리매핑의 실전 레시피로 보관한다.

키보드 개요

레트로 게이밍 미학의 외관, PBT 키캡, Kailh box white 스위치, 볼륨 노브, 자석식 USB 동글, 두 개의 큰 빨간 버튼이 달린 “dual pad”가 특징. 유선 / 2.4GHz 동글 / 블루투스 연결을 지원한다.

아쉬운 점:

  • dual pad는 3.5mm 잭으로 키보드에 물리적으로 연결해야 함
  • 소프트웨어 품질이 나쁨
  • 블루투스 연결 시 일부 매크로가 제대로 동작하지 않음
  • 블루투스 모드에서는 한 번에 한 기기에만 페어링 가능

목표

기본 상태에서는 키보드의 A/B 추가 키와 dual pad의 큰 버튼이 어떤 키코드도 내보내지 않는다(xev로 확인). 하고 싶었던 것:

  • 키보드 B 버튼 → Menu(컨텍스트 메뉴) 키
  • 키보드 A 버튼 → Play/Pause (Spotify 등 연동)
  • dual pad 큰 B → 화면 잠금 매크로(Ctrl + Alt + L)
  • dual pad 큰 A → 사용자 비밀번호 + 줄바꿈 입력
  • 오른쪽으로 돌려도 동작하지 않던 볼륨 노브 “고치기”

소프트웨어

8BitDo Ultimate Software V2는 Windows 전용. wine/lutris로는 실행 실패해서 VirtualBox에 Windows를 설치해 사용. USB passthrough가 Windows 10 VM에서는 동작하지 않아 Windows 11을 설치(하드웨어 체크 우회용 레지스트리 편집 필요).

키 매핑

펌웨어 업데이트 후 새 프로파일에서 매핑 가능:

  • Super Button 1(키보드 “A”) → ShortcutPlay/Pause. 다른 화면에서 재생 중이어도 YouTube/Spotify에서 잘 동작.
  • Super Button 2(키보드 “B”) → ShortcutMail (나중에 Linux에서 재매핑하기 위한 트릭).
  • dual pad가 하나뿐이면 키보드의 X 포트에 꽂아야만 인식됨(포트는 A/B/X/Y 4개지만 단일 패드는 X만 동작).
  • dual pad 두 버튼에는 각각 화면 잠금 / 비밀번호 입력 매크로 할당.

Linux 측 조정

키 재매핑 (xmodmap)

소프트웨어가 Menu 키를 매핑 옵션으로 제공하지 않으므로, 절대 안 쓸 Mail 단축키로 매핑해 두고 나중에 xmodmap으로 바꾸는 우회법을 사용한다.

xmodmap -pke > ~/.xmod

생성된 ~/.xmod에서 XF86Mail의 키코드 163을 찾아 ~/.Xmodmap에 추가:

keycode 163 = Menu

로드:

xmodmap ~/.Xmodmap

이제 빨간 B 버튼이 Menu 키로 동작한다.

볼륨 업 노브 고치기

볼륨 다운은 정상인데 업이 동작하지 않던 문제는, 노브를 오른쪽으로 돌릴 때 pactl로 볼륨을 올리도록 Xfce 키보드 단축키에서 처리. XF86AudioRaiseVolume “키”에 다음 명령을 연결:

pactl set-sink-volume @DEFAULT_SINK@ +5%

자잘한 실패들

  • 공장 초기화: 소프트웨어가 중국어로 에러를 내며 프로파일조차 못 보게 잠겨버림(dual pad 매크로를 임의로 삭제). 문서화되지 않은 복구법 — 둥근 버튼 3개(pair, fast mapping, profile)를 몇 초간 함께 눌러 공장 초기화.
  • 블루투스 매크로 깨짐: 비밀번호 입력 매크로가 블루투스에서 일부 키 입력을 반복함. 유선/2.4GHz 동글에서는 완벽 — 키 입력 간 딜레이가 블루투스 딜레이와 안 맞는 것으로 추정.

결론

커스터마이즈 여지가 상당한 좋은 키보드지만 소프트웨어가 약점. 핵심 교훈은 소프트웨어에서 직접 못 하는 매핑은 안 쓰는 키코드로 우회한 뒤 Linux(xmodmap/pactl) 측에서 마무리한다는 패턴이다.