(when *is-a-linux* (setq fcitx-remote-command "fcitx5-remote") (when (gx/maybe-require-package 'fcitx) (add-hook 'after-init-hook 'fcitx-aggressive-setup 'append))) (when *is-a-mac* (setq sis-external-ism "/usr/local/bin/macism") (setq sis-english-source "com.apple.keylayout.ABC" sis-other-source "com.apple.inputmethod.SCIM.ITABC") (setq sis-do-get (lambda () (string-trim (shell-command-to-string sis-external-ism)))) (setq sis-do-set (lambda (source) (start-process "set-input-source" nil sis-external-ism source))) (setq gx/input-method--insert-state-source sis-english-source) (when (gx/maybe-require-package 'sis) (add-hook 'evil-insert-state-exit-hook (lambda () (setq gx/input-method--insert-state-source (sis-get)) (sis-set-english))) (add-hook 'evil-insert-state-entry-hook (lambda () (unless (minibufferp) (when (string= gx/input-method--insert-state-source sis-other-source) (sis-set-other))))))) (provide 'init-input-method)