지피지기 백전백퇴

나대신 F키좀 눌러주세요


요약

모 무료게임 하나가 F키를 마구 눌러주지 않으면 진행이 너무 느린데 그거 보면서 F키 눌러주고 있기엔 너무 인생이 아깝지 아니한가. 그러니 F키를 대신 눌러주는 프로그램을 만들어보자.

요구사항

윈도우 포커스가 없어도 F키 이벤트를 전달할 수 있어야 한다.

구현

원래 X windows를 쓸때는 아웃포커스 윈도우에 뭔가 이벤트를 전달하는 기능을 못찾았었는데, 이번에 Wayland 기반의 윈도우 매니저인 Hyprland로 이동하면서 이런저런 설정을 하다보니 키보드 관련 설정(이를테면 입력 딜레이나 반복 속도 등)을 Hyprland에서 직접 설정한다는 것을 알게 되었고, 이어서 키보드 이벤트를 Hyprland에서 직접 처리한다면 없는 이벤트를 만들어서 전달하는 것도 가능할 것 같다는 생각이 들었다.

말이 길었는데, 그냥 이거다:

while true; do (sleep 0.$((RANDOM % 5 + 4)); hyprctl dispatch sendshortcut ', F, class:^(an-anime-game.exe)$'); done

결론

이젠 엔비디아 GPU로도 Wayland를 쓰는데 큰 문제는 없는 것 같으니, X 기반의 구형 윈도우 매니저를 쓰시던 분들이라면 이번기회에 이전을 고민해보시는 것도 괜찮을 것 같습니다.