This commit is contained in:
Zelong Kuang
2026-04-10 18:21:13 +10:00
parent 3490e9daa9
commit b03af9e719
13 changed files with 117 additions and 74 deletions

1
.gitignore vendored
View File

@@ -68,3 +68,4 @@ history
/easysession /easysession
/tramp-rpc /tramp-rpc
/straight/ /straight/
/eaf/

View File

@@ -42,7 +42,7 @@
inhibit-startup-screen t inhibit-startup-screen t
inhibit-startup-echo-area-message user-login-name inhibit-startup-echo-area-message user-login-name
inhibit-default-init t inhibit-default-init t
initial-major-mode 'fundamental-mode ;; initial-major-mode 'l-mode
initial-scratch-message nil) initial-scratch-message nil)
;; Faster to disable these here (before they've been initialized) ;; Faster to disable these here (before they've been initialized)

View File

@@ -41,6 +41,7 @@
(require 'init-input) (require 'init-input)
(require 'init-utils) (require 'init-utils)
;; (require 'init-eaf)
(require 'init-coding) (require 'init-coding)
(require 'init-vcs) (require 'init-vcs)
@@ -59,7 +60,7 @@
(require 'init-haskell) (require 'init-haskell)
(require 'init-rust) (require 'init-rust)
(require 'init-ocaml) (require 'init-ocaml)
;; (require 'init-typst) (require 'init-typst)
(provide 'init) (provide 'init)

View File

@@ -93,11 +93,11 @@ If this is a daemon session, load them all immediately instead."
;; Start server ;; Start server
(use-package server (use-package server
:ensure nil :ensure nil
:autoload server-running-p
:hook (emacs-startup . (lambda () :hook (emacs-startup . (lambda ()
(unless server-mode (unless (server-running-p)
(server-mode 1))))) (server-mode 1)))))
;; Save place
(use-package saveplace (use-package saveplace
:ensure nil :ensure nil
:hook (elpaca-after-init . save-place-mode)) :hook (elpaca-after-init . save-place-mode))
@@ -201,14 +201,6 @@ If this is a daemon session, load them all immediately instead."
x-stretch-cursor t x-stretch-cursor t
window-combination-resize t) window-combination-resize t)
(define-key global-map (kbd "C-<wheel-up>") nil)
(define-key global-map (kbd "C-<wheel-down>") nil)
(global-set-key (kbd "s-a") 'mark-whole-buffer) ;;对应Windows上面的Ctrl-a 全选
(global-set-key (kbd "s-c") 'kill-ring-save) ;;对应Windows上面的Ctrl-c 复制
(global-set-key (kbd "s-s") 'save-buffer) ;; 对应Windows上面的Ctrl-s 保存
(global-set-key (kbd "s-v") 'yank) ;对应Windows上面的Ctrl-v 粘贴
(global-set-key (kbd "s-z") 'undo) ;对应Windows上面的Ctrol-z 撤销
(setq kill-ring-max 200) (setq kill-ring-max 200)
;; Save clipboard contents into kill-ring before replace them ;; Save clipboard contents into kill-ring before replace them
(setq save-interprogram-paste-before-kill t) (setq save-interprogram-paste-before-kill t)

View File

@@ -1,12 +1,13 @@
;; -*- lexical-binding: t -*- ;; -*- lexical-binding: t -*-
(define-prefix-command 'orgmode-map) (define-key global-map (kbd "C-<wheel-up>") nil)
(global-set-key (kbd "C-c n") 'orgmode-map) (define-key global-map (kbd "C-<wheel-down>") nil)
(global-set-key (kbd "s-a") 'mark-whole-buffer) ;;对应Windows上面的Ctrl-a 全选
(define-key orgmode-map (kbd "a") #'org-agenda) (global-set-key (kbd "s-c") 'kill-ring-save) ;;对应Windows上面的Ctrl-c 复制
(define-key orgmode-map (kbd "n") #'org-capture) (global-set-key (kbd "s-s") 'save-buffer) ;; 对应Windows上面的Ctrl-s 保存
(define-key orgmode-map (kbd "t") #'org-todo-list) (global-set-key (kbd "s-v") 'yank) ;对应Windows上面的Ctrl-v 粘贴
(global-set-key (kbd "s-x") 'execute-extended-command) ;对应Windows上面的Ctrol-z 撤销
(global-set-key (kbd "s-z") 'undo) ;对应Windows上面的Ctrol-z 撤销
(setq duplicate-line-final-position 1) (setq duplicate-line-final-position 1)
(global-set-key (kbd "M-p") #'duplicate-dwim) (global-set-key (kbd "M-p") #'duplicate-dwim)

View File

@@ -7,18 +7,22 @@
(eaf-browser-continue-where-left-off t) (eaf-browser-continue-where-left-off t)
(eaf-browser-enable-adblocker t) (eaf-browser-enable-adblocker t)
;; (browse-url-browser-function 'eaf-open-browser) ;; (browse-url-browser-function 'eaf-open-browser)
:defines eaf-pdf-viewer-keybinding
:config :config
(require 'eaf-pdf-viewer) (require 'eaf-pdf-viewer)
(require 'eaf-music-player) (require 'eaf-music-player)
;; (require 'eaf-jupyter)
(require 'eaf-mindmap)
(require 'eaf-markdown-previewer)
(require 'eaf-system-monitor)
(require 'eaf-js-video-player)
(require 'eaf-image-viewer) (require 'eaf-image-viewer)
;; (defalias 'browse-web #'eaf-open-browser) (eaf-bind-key scroll_up "C-n" eaf-pdf-viewer-keybinding)
;; (eaf-bind-key scroll_up "C-n" eaf-pdf-viewer-keybinding) (eaf-bind-key scroll_down "C-p" eaf-pdf-viewer-keybinding)
;; (eaf-bind-key scroll_down "C-p" eaf-pdf-viewer-keybinding)
;; (eaf-bind-key take_photo "p" eaf-camera-keybinding)
;; (eaf-bind-key nil "M-q" eaf-browser-keybinding)
) )
(provide 'init-eaf) (provide 'init-eaf)

View File

@@ -6,13 +6,24 @@
(use-package electric-pair-mode (use-package electric-pair-mode
:ensure nil :ensure nil
:hook elpaca-after-init) :hook elpaca-after-init
:config
(dolist (mode '(LaTeX-mode-hook org-mode-hook))
(add-hook mode
(lambda ()
(setq-local electric-pair-pairs
(append electric-pair-pairs '((?\\ . ?\\))))
(setq-local electric-pair-text-pairs electric-pair-pairs)))))
(use-package puni (use-package puni
:hook (elpaca-after-init . puni-global-mode) :hook (elpaca-after-init . puni-global-mode)
:custom
(puni-confirm-when-delete-unbalanced-active-region nil)
:bind (:map puni-mode-map :bind (:map puni-mode-map
("M-s" . puni-splice) ("M-s" . puni-splice)
("DEL" . my-backspace)) ("DEL" . my-backspace)
("C-=" . puni-expand-region)
)
:init :init
(defun my-backspace () (defun my-backspace ()
(interactive) (interactive)
@@ -20,14 +31,14 @@
(delete-region (line-beginning-position) (point)) (delete-region (line-beginning-position) (point))
(puni-backward-delete-char)))) (puni-backward-delete-char))))
;; ;; Hungry deletion ;; (use-package combobulate
;; (use-package hungry-delete ;; :ensure (:host github :repo "mickeynp/combobulate")
;; :diminish ;; :hook prog-mode
;; :hook (elpaca-after-init . global-hungry-delete-mode) ;; :config
;; :init (setq hungry-delete-chars-to-skip " \t\f\v" ;; ;; You can customize Combobulate's key prefix here.
;; backward-delete-char-untabify-method 'all ;; ;; Note that you may have to restart Emacs for this to take effect!
;; hungry-delete-except-modes ;; (setq combobulate-key-prefix "C-c o")
;; '(help-mode minibuffer-mode minibuffer-inactive-mode calc-mode))) ;; )
(use-package abbrev (use-package abbrev
:ensure nil :ensure nil
@@ -59,8 +70,8 @@
:map mc/keymap :map mc/keymap
("C-|" . mc/vertical-align-with-space))) ("C-|" . mc/vertical-align-with-space)))
(use-package expand-region ;; (use-package expand-region
:bind ("C-=" . er/expand-region)) ;; :bind ("C-=" . er/expand-region))
(use-package mwim (use-package mwim
:bind (([remap move-beginning-of-line] . mwim-beginning) :bind (([remap move-beginning-of-line] . mwim-beginning)
@@ -123,7 +134,7 @@
:custom :custom
(olivetti-style 'fancy) (olivetti-style 'fancy)
(olivetti-margin-width 5) (olivetti-margin-width 5)
(olivetti-body-width 90)) (olivetti-body-width 80))
(setq-default bidi-display-reordering 'left-to-right (setq-default bidi-display-reordering 'left-to-right
bidi-paragraph-direction 'left-to-right bidi-paragraph-direction 'left-to-right

View File

@@ -5,6 +5,13 @@
(default-input-method "rime") (default-input-method "rime")
(rime-librime-root "/opt/homebrew") (rime-librime-root "/opt/homebrew")
(rime-emacs-module-header-root "~/build-emacs-for-macos/builds/Emacs.app/Contents/Resources/include/") (rime-emacs-module-header-root "~/build-emacs-for-macos/builds/Emacs.app/Contents/Resources/include/")
(rime-show-candidate 'posframe)) (rime-show-candidate 'posframe)
(rime-posframe-properties nil))
;; (use-package sis
;; :hook ((elpaca-after-init . sis-global-respect-mode)
;; (elpaca-after-init . sis-global-context-mode)
;; (elpaca-after-init . sis-global-inline-mode)))
(provide 'init-input) (provide 'init-input)

View File

@@ -13,7 +13,7 @@
(unless (derived-mode-p (unless (derived-mode-p
'emacs-lisp-mode 'lisp-mode 'emacs-lisp-mode 'lisp-mode
'makefile-mode 'snippet-mode 'makefile-mode 'snippet-mode
'ron-mode) 'lisp-data-mode 'ron-mode)
(lsp-deferred)))) (lsp-deferred))))
((markdown-mode yaml-mode yaml-ts-mode) . lsp-deferred) ((markdown-mode yaml-mode yaml-ts-mode) . lsp-deferred)
(lsp-mode . (lambda () (lsp-mode . (lambda ()

View File

@@ -4,9 +4,9 @@
:defer :defer
:ensure (org :repo "https://code.tecosaur.net/tec/org-mode.git/" :ensure (org :repo "https://code.tecosaur.net/tec/org-mode.git/"
:branch "dev") :branch "dev")
:hook (org-mode . org-cdlatex-mode) :hook ((org-mode . org-cdlatex-mode)
:hook (org-mode . org-indent-mode) (org-mode . org-indent-mode)
:hook (org-mode . visual-line-mode) (org-mode . visual-line-mode))
:pretty-hydra :pretty-hydra
;; See `org-structure-template-alist' ;; See `org-structure-template-alist'
((:color blue :quit-key ("q" "C-g")) ((:color blue :quit-key ("q" "C-g"))
@@ -54,6 +54,9 @@
(self-insert-command 1)))) (self-insert-command 1))))
("M-<return>" . org-insert-subheading) ("M-<return>" . org-insert-subheading)
("C-'" . nil)) ("C-'" . nil))
:bind (("C-c n t" . org-todo-list)
("C-c n a" . org-agenda)
("C-c n n" . org-capture))
:config :config
(elemacs-load-packages-incrementally (elemacs-load-packages-incrementally
'(calendar find-func format-spec org-macs org-compat '(calendar find-func format-spec org-macs org-compat
@@ -96,7 +99,7 @@ the element after the #+HEADER: tag."
(setq org-pretty-entities t (setq org-pretty-entities t
org-pretty-entities-include-sub-superscripts nil) org-pretty-entities-include-sub-superscripts nil)
(setq org-default-note-file (expand-file-name "notes.org" org-directory) (setq org-default-note-file (expand-file-name "notes.org" org-directory)
org-capture-templates org-capture-templates
'(("t" "Personal todo" entry '(("t" "Personal todo" entry

View File

@@ -75,7 +75,14 @@
;; (with-eval-after-load 'eglot ;; (with-eval-after-load 'eglot
;; (add-to-list 'eglot-server-programs '((LaTeX-mode latex-mode) "texlab"))) ;; (add-to-list 'eglot-server-programs '((LaTeX-mode latex-mode) "texlab")))
(setq reftex-plug-into-AUCTeX t)) (setq reftex-plug-into-AUCTeX t)
(use-package texpresso
:ensure (:host github :repo "let-def/texpresso" :files ("emacs/*.el"))
:hook (texpresso-mode . texpresso-sync-mode)
:after auctex
:bind (:map LaTeX-mode-map
("C-c C-p" . texpresso)))
)
(use-package cdlatex (use-package cdlatex
:diminish :diminish
@@ -139,8 +146,4 @@ expansion, then cdlatex expansion."
(cdlatex-reset-mode) (cdlatex-reset-mode)
) )
;; (use-package texpresso
;; :defer nil
;; :load-path "~/.emacs.d/lisp/packages/")
(provide 'init-tex) (provide 'init-tex)

View File

@@ -60,6 +60,7 @@
(ef-themes-take-over-modus-themes-mode 1)) (ef-themes-take-over-modus-themes-mode 1))
(use-package auto-dark (use-package auto-dark
:when (and (eq system-type 'darwin) (display-graphic-p))
:ensure t :ensure t
;; :custom ;; :custom
;; (auto-dark-themes '((doric-beach) (leuven))) ;; (auto-dark-themes '((doric-beach) (leuven)))
@@ -80,6 +81,7 @@
)) ))
:hook elpaca-after-init) :hook elpaca-after-init)
(use-package rainbow-delimiters (use-package rainbow-delimiters
:hook ((prog-mode . rainbow-delimiters-mode) :hook ((prog-mode . rainbow-delimiters-mode)
(typst-ts-mode . rainbow-delimiters-mode) (typst-ts-mode . rainbow-delimiters-mode)
@@ -90,12 +92,14 @@
:hook prog-mode) :hook prog-mode)
(use-package mood-line (use-package mood-line
:hook emacs-startup) :hook emacs-startup
:custom (mood-line-glyph-alist mood-line-glyphs-fira-code))
;; (use-package doom-modeline ;; (use-package doom-modeline
;; :hook (elpaca-after-init . doom-modeline-mode) ;; :hook (elpaca-after-init . doom-modeline-mode)
;; :config ;; :config
;; (setq doom-modeline-support-imenu t ;; (setq doom-modeline-support-imenu t
;; doom-modeline-icons nil
;; doom-modeline-height 30 ;; doom-modeline-height 30
;; doom-modeline-buffer-file-name-style 'relative-from-project ;; doom-modeline-buffer-file-name-style 'relative-from-project
;; doom-modeline-enable-word-count t ;; doom-modeline-enable-word-count t
@@ -125,7 +129,7 @@
;; ('darwin ; macOS ;; ('darwin ; macOS
(set-face-attribute 'default nil :font "Sarasa Term SC-22") ; 20 * 1.5 (set-face-attribute 'default nil :font "Sarasa Term SC-22") ; 20 * 1.5
(set-face-attribute 'variable-pitch nil :font "Bookerly-20" :weight 'light) (set-face-attribute 'variable-pitch nil :font "Bookerly-20" :weight 'light)
(set-face-attribute 'fixed-pitch nil :font "Sarasa Term SC-22") (set-face-attribute 'fixed-pitch nil :font "Sarasa Mono TC Nerd Font-22")
(add-to-list 'default-frame-alist '(height . 53)) (add-to-list 'default-frame-alist '(height . 53))
(add-to-list 'default-frame-alist '(width . 90)) (add-to-list 'default-frame-alist '(width . 90))
@@ -169,24 +173,13 @@
:ensure (nerd-icons :ensure (nerd-icons
:type git :type git
:host github :host github
:repo "rainstormstudio/nerd-icons.el") :repo "rainstormstudio/nerd-icons.el"))
;; :files (:defaults "data")) ;; :files (:defaults "data"))
:custom ;; :custom
;; The Nerd Font you want to use in GUI ;; The Nerd Font you want to use in GUI
;; "Symbols Nerd Font Mono" is the default and is recommended ;; "Symbols Nerd Font Mono" is the default and is recommended
;; but you can use any other Nerd Font if you want ;; but you can use any other Nerd Font if you want
(nerd-icons-font-family "Symbols Nerd Font Mono")) ;; (nerd-icons-font-family "Symbols Nerd Font Mono"))
;; Display transient in child frame
;; (use-package transient-posframe
;; :diminish
;; :commands transient-posframe-mode
;; :custom-face
;; (transient-posframe-border ((t (:inherit posframe-border :background unspecified))))
;; :hook elpaca-after-init
;; :init (setq transient-mode-line-format nil
;; transient-posframe-parameters '((left-fringe . 8)
;; (right-fringe . 8))))
(with-no-warnings (with-no-warnings
(when (featurep 'ns) (when (featurep 'ns)
@@ -195,10 +188,6 @@
;; Don't open a file in a new frame ;; Don't open a file in a new frame
(setq ns-pop-up-frames nil))) (setq ns-pop-up-frames nil)))
;; (use-package beacon
;; :diminish
;; :hook elpaca-after-init)
;; hl current line ;; hl current line
(use-package hl-line (use-package hl-line
:ensure nil :ensure nil
@@ -206,8 +195,9 @@
((dashboard-mode eshell-mode shell-mode term-mode vterm-mode eat-mode) . ((dashboard-mode eshell-mode shell-mode term-mode vterm-mode eat-mode) .
(lambda () (setq-local global-hl-line-mode nil))))) (lambda () (setq-local global-hl-line-mode nil)))))
(use-package beacon ;; (use-package beacon
:hook elpaca-after-init) ;; :diminish
;; :hook elpaca-after-init)
(use-package spacious-padding (use-package spacious-padding
:diminish :diminish

View File

@@ -72,4 +72,34 @@
(use-package elcord) (use-package elcord)
;; (when (display-graphic-p)
;; (use-package pdf-view
;; :ensure pdf-tools
;; :diminish (pdf-view-themed-minor-mode
;; pdf-view-midnight-minor-mode
;; pdf-view-roll-minor-mode
;; pdf-view-printer-minor-mode)
;; :functions pdf-tools-install
;; :hook ((pdf-tools-enabled . pdf-view-auto-slice-minor-mode)
;; (pdf-tools-enabled . pdf-view-roll-minor-mode)
;; (pdf-tools-enabled . pdf-isearch-minor-mode))
;; ;; :mode ("\\.[pP][dD][fF]\\'" . pdf-view-mode)
;; :magic ("%PDF" . pdf-view-mode)
;; :bind (:map pdf-view-mode-map
;; ("C-s" . isearch-forward))
;; ;; :init (setq pdf-view-use-scaling t
;; ;; pdf-view-use-imagemagick nil)
;; :config
;; ;; Activate the package
;; (pdf-tools-install t nil t nil))
;; ;; Recover last viewed position
;; (use-package saveplace-pdf-view
;; :when (ignore-errors (pdf-info-check-epdfinfo) t)
;; :autoload (saveplace-pdf-view-find-file-advice saveplace-pdf-view-to-alist-advice)
;; :functions pdf-info-check-epdfinfo
;; :init
;; (advice-add 'save-place-find-file-hook :around #'saveplace-pdf-view-find-file-advice)
;; (advice-add 'save-place-to-alist :around #'saveplace-pdf-view-to-alist-advice)))
(provide 'init-utils) (provide 'init-utils)