- commit changes

This commit is contained in:
tuong 2025-07-16 02:25:32 +07:00
parent f4d2a7fcbc
commit 70b8b52e5a
2 changed files with 45 additions and 1 deletions

View File

@ -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)

View File

@ -47,3 +47,4 @@
;; (unpin! pinned-package another-pinned-package)
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
;; (unpin! t)
(package! anki-editor)