사이드프로젝트 slecs

키 리매퍼에 GUI와 매크로 타이머 기능 추가

목차

키 리매퍼에 GUI를 붙였음. 기존엔 cfg 파일을 손으로 편집하고 재기동했는데, 매크로 타이머 기능 추가하면서 더는 못 버티겠더라.

빌드 환경부터 정리

처음엔 단순 Makefile 하나로 굴렸는데, GUI 라이브러리 링크가 늘어나면서 CMake로 갈아탐. 윈도우 타겟이라 build.bat 한 줄로 묶어둠.

cmake -S . -B build -G "MinGW Makefiles"
cmake --build build --config Release

.gitignore에 build/, *.exe, *.o 추가. 처음에 빌드 산출물을 커밋해버려서 한 번 갈아엎었음. 이런 건 첫 커밋부터 잡아두는 게 맞음.

핵심 기능 3종

기능 동작 비고
키 캡처 누른 키 후킹해서 코드 표시 매핑 등록할 때 편함
GUI 리매핑 드롭다운으로 매핑 편집 cfg 자동 저장
매크로 타이머 일정 간격으로 키 반복 ms 단위 설정

키 캡처가 의외로 골치였음. 후킹 콜백에서 GUI 스레드를 직접 건드리니 데드락. 메시지 큐 거쳐 메인 스레드로 넘기니 해결.

cfg 포맷 다시 짠 이유

기존 포맷은 한 줄에 source=target 만 있었는데, 매크로 타이머 들어가면서 정보가 늘어남.

  • 타이머 간격(ms)
  • 토글/홀드 모드
  • 매크로 시퀀스(여러 키)

그래서 섹션 기반으로 바꿈.

[remap]
capslock=esc

[macro]
key=f1
interval=50
sequence=q,w,e,r

이전 cfg는 마이그레이션 스크립트로 한 번에 변환. 손으로 편집하던 시절보다 훨씬 깔끔.

막힌 지점

  • MinGW 빌드 바이너리에서 위젯 폰트가 깨져 매니페스트 추가
  • 매크로 타이머 정밀도 — 일반 슬립으론 ±15ms 흔들림. 시스템 타이머 해상도 1ms로 박아서 잡음
  • 캡처 중 alt+tab 가로채면 OS가 이상해짐 → 시스템 키는 화이트리스트로 통과

GUI 붙이고 나니 cfg 직접 만지던 시절로 못 돌아갈 듯. 다음 단계는 프로파일 전환(게임용/타이핑용)이랑 트레이 아이콘 상주.

다음

댓글 0

첫 댓글 달아줘.