ardggy's blog

Esc - Meta - Alt - Ctrl - Shift

フォーカスがあたったときの入力ソースを英数にする

Emacs にフォーカスがあたったときに日本語入力になっていて、M-x あたりを入力すると大変イライラする。

であれば、フォーカスがあたったときに、英数キー (キーコード102) を入力するような何かを実行すればいい。

こういうときは Applescript で調べるとだいたい解決するわけで、下のようなフックができた。

(when (eq system-type 'darwin)
  (add-hook 'focus-in-hook 'ns-input-source-us)
  (add-hook 'after-init-hook 'ns-input-source-us)

  (defun ns-input-source-us ()
    (interactive)
    (shell-command-to-string "osascript -e 'tell application \"System Events\" to key code 102'")))

shell-command で実行するとエコーエリアがうるさいので shell-command-to-string にしてある。