- commit changes
This commit is contained in:
parent
f4d2a7fcbc
commit
70b8b52e5a
45
custom.el
45
custom.el
@ -5,7 +5,7 @@
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
'(package-selected-packages
|
||||
'(anki-editor docker docker-compose-mode docker-tramp ejc-sql))
|
||||
'(anki-editor docker docker-compose-mode docker-tramp ejc-sql fcitx))
|
||||
'(sql-connection-alist
|
||||
'(("postgres" (sql-product 'postgres) (sql-user "myuser")
|
||||
(sql-database "mydatabase") (sql-server "localhost") (sql-port 5433)))))
|
||||
@ -77,3 +77,46 @@
|
||||
:leader
|
||||
(:prefix ("g c a" . "file-checkout")
|
||||
:desc "file checkout from branch" "c" #'magit-file-checkout))
|
||||
(defun my/fcitx5-disable ()
|
||||
"Disable fcitx5 input method."
|
||||
(interactive)
|
||||
(call-process "fcitx5-remote" nil nil nil "-c"))
|
||||
|
||||
(defun my/fcitx5-enable ()
|
||||
"Enable fcitx5 input method."
|
||||
(interactive)
|
||||
(call-process "fcitx5-remote" nil nil nil "-o"))
|
||||
|
||||
(global-set-key (kbd "<f12>") 'my/fcitx5-disable)
|
||||
(global-set-key (kbd "<f11>") 'my/fcitx5-enable)
|
||||
(defun my/org-in-src-block-p ()
|
||||
"Return t if point is inside an Org src block."
|
||||
(when (derived-mode-p 'org-mode)
|
||||
(let ((element (org-element-at-point)))
|
||||
(and (eq (car element) 'src-block)
|
||||
(<= (org-element-property :begin element) (point))
|
||||
(< (point) (org-element-property :end element))))))
|
||||
|
||||
(defun my/update-fcitx5-based-on-context ()
|
||||
"Enable or disable Fcitx5 based on whether point is in org-mode and not in a src block."
|
||||
(when (and (bound-and-true-p evil-insert-state-minor-mode)
|
||||
(derived-mode-p 'org-mode))
|
||||
(if (my/org-in-src-block-p)
|
||||
(call-process "fcitx5-remote" nil nil nil "-c") ; Disable
|
||||
(call-process "fcitx5-remote" nil nil nil "-o")))) ; Enable
|
||||
|
||||
(defun my/disable-fcitx5-on-esc ()
|
||||
"Always disable Fcitx5 on exiting insert state."
|
||||
(call-process "fcitx5-remote" nil nil nil "-c"))
|
||||
|
||||
(defun my/start-fcitx5-monitor ()
|
||||
"Start monitoring cursor movement during insert state in org-mode."
|
||||
(add-hook 'post-command-hook #'my/update-fcitx5-based-on-context nil t))
|
||||
|
||||
(defun my/stop-fcitx5-monitor ()
|
||||
"Stop monitoring when leaving insert state."
|
||||
(remove-hook 'post-command-hook #'my/update-fcitx5-based-on-context t))
|
||||
|
||||
(add-hook 'evil-insert-state-entry-hook #'my/start-fcitx5-monitor)
|
||||
(add-hook 'evil-insert-state-exit-hook #'my/stop-fcitx5-monitor)
|
||||
(add-hook 'evil-insert-state-exit-hook #'my/disable-fcitx5-on-esc)
|
||||
|
||||
@ -47,3 +47,4 @@
|
||||
;; (unpin! pinned-package another-pinned-package)
|
||||
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
|
||||
;; (unpin! t)
|
||||
(package! anki-editor)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user