터미널이라든지 어도비 제품들을 쓸 때처럼 입력기가 영문이 편한(또는 입력기가 영문이어야하는) 경우가 있다. 앱을 변경해서 이런 앱에 포커스가 맞춰졌을 때 자동으로 입력기가 바뀌면 편하겠다는 생각에 이런저런 방법들을 강구했던 적이 있다. 스크립트 폴더를 정리하다보니 그 흔적들이 남아있어 지우기 전에 적어두면 좋겠다는 생각이 들었다.

저 기능은 두 부분으로 나눌 수 있다. 앱 포커스가 바뀌었는지 확인하는 부분과 포커스된 윈도우가 조건에 일치할 경우 사전에 설정한 입력기로 입력기를 변경하는 부분. 이번에 정리한 코드들은 후자에 해당하는 부분이었다.

swim, keyboardSwitcher 두 가지 정도가 있었는데 기억이 맞다면 swim은 빌드된 바이너리가 없었고, keyboardSwitcher의 경우에는 homebrew로 설치할 수 있었던 걸로 기억한다. swim은 빌드에 실패했고 keyboardSwitcher는 설치하고 ks로 단축어를 설정해서 사용할 수 있었다.

비슷한 기능으로 kawa라는 패키지가 있었는데 이건 사전 설정한 키보드 단축키를 눌러서 중간 과정 없이 입력언어를 변경하는 것으로 내가 필요로 하는 기능과는 살짝 달랐다. 하지만 많은 사람들이 필요로 하는 기능이라고 생각한다.

아이러니하게도 결국에는 Keyboard Pilot 으로 정착하게 되었다. 매 초 최전면 앱을 확인하는 건 리소스 점유율 측면에서도 좋지 않았고 최대 1초를 기다려야 하는 것도 사용성 측면에서 별로였기 때문이다.