- 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.
|
;; Your init file should contain only one such instance.
|
||||||
;; If there is more than one, they won't work right.
|
;; If there is more than one, they won't work right.
|
||||||
'(package-selected-packages
|
'(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
|
'(sql-connection-alist
|
||||||
'(("postgres" (sql-product 'postgres) (sql-user "myuser")
|
'(("postgres" (sql-product 'postgres) (sql-user "myuser")
|
||||||
(sql-database "mydatabase") (sql-server "localhost") (sql-port 5433)))))
|
(sql-database "mydatabase") (sql-server "localhost") (sql-port 5433)))))
|
||||||
@ -77,3 +77,46 @@
|
|||||||
:leader
|
:leader
|
||||||
(:prefix ("g c a" . "file-checkout")
|
(:prefix ("g c a" . "file-checkout")
|
||||||
:desc "file checkout from branch" "c" #'magit-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)
|
;; (unpin! pinned-package another-pinned-package)
|
||||||
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
|
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
|
||||||
;; (unpin! t)
|
;; (unpin! t)
|
||||||
|
(package! anki-editor)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user