From 27dac8f3e9a2a45f6cb77d0efa90c05c7a40b654 Mon Sep 17 00:00:00 2001 From: Zelong Kuang Date: Sat, 14 Mar 2026 11:42:48 +1100 Subject: [PATCH] Update --- .gitignore | 1 + early-init.el | 2 +- init.el | 2 +- lisp/init-better-default.el | 8 ++ lisp/init-dashboard.el | 71 ++++++++-------- lisp/init-elpaca.el | 9 +-- lisp/init-tex.el | 3 + lisp/init-ui.el | 70 +++++++--------- lisp/init-workspace.el | 81 ++++++------------- snippets/latex-mode/cap | 7 ++ snippets/latex-mode/cup | 7 ++ snippets/latex-mode/template | 2 +- ...1f5c5ca4f89f6579617ee52f3b2944207a71e9.svg | 19 ----- ...6ff416ae1b0516c79cddbfeedd9438f485b226.svg | 19 ----- ...383807ec6e4760104b5e38e09b528bc5a840fe.svg | 20 ----- ...d6ecfa313c69fd5e9f4bb3a066d3593b0435de.svg | 20 ----- ...d6d7c683560465bb34f85228cf9eec682bee7c.svg | 21 ----- ...f3e9644e9d5322e84f9375ec3d1981a811f67e.svg | 18 ----- ...33e0f561b584df4c74d3c989b66c76f405291a.svg | 18 ----- ...549a9c12a3742be8e18b143c16dfd898504442.svg | 13 --- ...18ee540bd2b90407018b172941d3f8a030a41a.svg | 13 --- ...5fbfb4f24e87a98a570fd47c260cb2fcd684eb.svg | 25 ------ 22 files changed, 127 insertions(+), 322 deletions(-) create mode 100644 snippets/latex-mode/cap create mode 100644 snippets/latex-mode/cup delete mode 100644 xenops/cache/031f5c5ca4f89f6579617ee52f3b2944207a71e9.svg delete mode 100644 xenops/cache/0a6ff416ae1b0516c79cddbfeedd9438f485b226.svg delete mode 100644 xenops/cache/1a383807ec6e4760104b5e38e09b528bc5a840fe.svg delete mode 100644 xenops/cache/28d6ecfa313c69fd5e9f4bb3a066d3593b0435de.svg delete mode 100644 xenops/cache/2ad6d7c683560465bb34f85228cf9eec682bee7c.svg delete mode 100644 xenops/cache/a0f3e9644e9d5322e84f9375ec3d1981a811f67e.svg delete mode 100644 xenops/cache/c033e0f561b584df4c74d3c989b66c76f405291a.svg delete mode 100644 xenops/cache/c8549a9c12a3742be8e18b143c16dfd898504442.svg delete mode 100644 xenops/cache/e418ee540bd2b90407018b172941d3f8a030a41a.svg delete mode 100644 xenops/cache/f35fbfb4f24e87a98a570fd47c260cb2fcd684eb.svg diff --git a/.gitignore b/.gitignore index 0be3a75..4bef897 100644 --- a/.gitignore +++ b/.gitignore @@ -35,6 +35,7 @@ rime .yas-compiled-snippets.el flycheck_*.el tabsession.el +emacs.desktop # generated by elisp packages at root /.local/ diff --git a/early-init.el b/early-init.el index 6b26c1d..0fa62de 100644 --- a/early-init.el +++ b/early-init.el @@ -35,7 +35,7 @@ ;; Faster to disable these here (before they've been initialized) (push '(menu-bar-lines . 0) default-frame-alist) (push '(tool-bar-lines . 0) default-frame-alist) -(push '(vertical-scroll-bars) default-frame-alist) +(push '(vertical-scroll-bars . 0) default-frame-alist) (when (featurep 'ns) (push '(ns-transparent-titlebar . t) default-frame-alist)) ;; (push '(ns-appearance . light) default-frame-alist)) diff --git a/init.el b/init.el index b590a00..8199b29 100644 --- a/init.el +++ b/init.el @@ -5,6 +5,7 @@ (require 'init-elpaca) (require 'init-gc) (require 'init-better-default) +(require 'init-ui) (require 'init-hydra) @@ -16,7 +17,6 @@ (require 'init-edit) (require 'init-window) -(require 'init-ui) (require 'init-bindings) diff --git a/lisp/init-better-default.el b/lisp/init-better-default.el index de6cc63..d6dead2 100644 --- a/lisp/init-better-default.el +++ b/lisp/init-better-default.el @@ -135,6 +135,14 @@ ;; (setq auto-save-file-name-transforms ;; `((".*" ,(concat user-emacs-directory "auto-save/") t))) +(use-package tramp-hlo + :config + (tramp-hlo-setup)) +(use-package tramp-rpc + :ensure (tramp-rpc :host github :repo "ArthurHeymans/emacs-tramp-rpc") + :config + (tramp-rpc-magit-enable) + (tramp-rpc-projectile-enable)) (provide 'init-better-default) diff --git a/lisp/init-dashboard.el b/lisp/init-dashboard.el index 364599e..51f013a 100644 --- a/lisp/init-dashboard.el +++ b/lisp/init-dashboard.el @@ -1,39 +1,42 @@ ;; -*- lexical-binding: t; -*- -(use-package dashboard +(elpaca dashboard + (require 'dashboard)) + +(use-package doom-dashboard + :ensure (doom-dashboard :host github + :repo "emacs-dashboard/doom-dashboard") + :after dashboard :demand t - :bind ("" . dashboard-open) - :diminish dashboard-mode - :custom-face - (dashboard-heading ((t (:inherit (font-lock-string-face bold))))) - (dashboard-items-face ((t (:weight normal)))) - (dashboard-no-items-face ((t (:weight normal)))) - :hook (dashboard-mode . (lambda () (setq-local frame-title-format nil))) - :config - (add-hook 'elpaca-after-init-hook #'dashboard-insert-startupify-lists) - (add-hook 'elpaca-after-init-hook #'dashboard-initialize) - :init - (setq dashboard-banner-logo-title "ZEMACS - Enjoy Programming & Writing" - ;; dashboard-page-separator "\n\f\n" - dashboard-projects-backend 'project-el - dashboard-path-style 'truncate-middle - dashboard-path-max-length 60 - dashboard-center-content t - dashboard-vertically-center-content t - dashboard-show-shortcuts nil - dashboard-items '((recents . 10) - (projects . 5) - (bookmarks . 5)) - - dashboard-startupify-list '(dashboard-insert-banner - dashboard-insert-newline - dashboard-insert-banner-title - dashboard-insert-newline - dashboard-insert-navigator - dashboard-insert-newline - dashboard-insert-init-info - dashboard-insert-items - dashboard-insert-newline - dashboard-insert-footer))) + ;; Movement keys like doom. + :bind + (:map dashboard-mode-map + (" " . widget-backward) + (" " . widget-forward) + (" " . widget-backward) + (" " . widget-forward) + (" " . widget-forward) + (" " . widget-backward)) + :custom + (dashboard-banner-logo-title "E M A C S") + (dashboard-startup-banner + (concat doom-dashboard-banner-directory "bcc.txt")) ; Use banner you want + (dashboard-footer-icon + (nerd-icons-faicon "nf-fa-github_alt" :face 'success :height 1.5)) + (dashboard-page-separator "\n") + (dashboard-startupify-list `(dashboard-insert-banner + dashboard-insert-banner-title + dashboard-insert-newline + dashboard-insert-items + ,(dashboard-insert-newline 2) + dashboard-insert-init-info + ,(dashboard-insert-newline 2) + doom-dashboard-insert-homepage-footer)) + (dashboard-item-generators + '((recents . doom-dashboard-insert-recents-shortmenu) + (bookmarks . doom-dashboard-insert-bookmark-shortmenu) + (projects . doom-dashboard-insert-project-shortmenu) + (agenda . doom-dashboard-insert-org-agenda-shortmenu))) + (dashboard-items '(projects agenda bookmarks recents))) (provide 'init-dashboard) diff --git a/lisp/init-elpaca.el b/lisp/init-elpaca.el index 2df8ea9..e56581c 100644 --- a/lisp/init-elpaca.el +++ b/lisp/init-elpaca.el @@ -1,15 +1,15 @@ ;; -*- lexical-binding: t; -*- ;;;;;;;;;;;; elpaca initialise ;;;;;;;;;;;;;;;;;; -(defvar elpaca-installer-version 0.11) +(defvar elpaca-installer-version 0.12) (defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory)) (defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory)) -(defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory)) +(defvar elpaca-sources-directory (expand-file-name "sources/" elpaca-directory)) (defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git" :ref nil :depth 1 :inherit ignore :files (:defaults "elpaca-test.el" (:exclude "extensions")) - :build (:not elpaca--activate-package))) -(let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory)) + :build (:not elpaca-activate))) +(let* ((repo (expand-file-name "elpaca/" elpaca-sources-directory)) (build (expand-file-name "elpaca/" elpaca-builds-directory)) (order (cdr elpaca-order)) (default-directory repo)) @@ -39,7 +39,6 @@ (let ((load-source-file-function nil)) (load "./elpaca-autoloads")))) (add-hook 'after-init-hook #'elpaca-process-queues) (elpaca `(,@elpaca-order)) - ;; Install a package via the elpaca macro ;; See the "recipes" section of the manual for more details. diff --git a/lisp/init-tex.el b/lisp/init-tex.el index 250834b..e4199fe 100644 --- a/lisp/init-tex.el +++ b/lisp/init-tex.el @@ -45,6 +45,9 @@ calc-angle-mode rad))))))) ;; (setq TeX-view-program-selection '((output-pdf "PDF Tools"))) (add-hook 'TeX-after-compilation-finished-functions #'TeX-revert-document-buffer) + + (setq reftex-plug-into-AUCTeX t) + (with-eval-after-load 'eglot (add-to-list 'eglot-server-programs '((LaTeX-mode latex-mode) "texlab")))) diff --git a/lisp/init-ui.el b/lisp/init-ui.el index bd0639c..1d757d2 100644 --- a/lisp/init-ui.el +++ b/lisp/init-ui.el @@ -19,50 +19,34 @@ (use-package solaire-mode :hook (elpaca-after-init . solaire-global-mode)) -(use-package standard-themes :demand t) -(use-package ef-themes :demand t) -(use-package doric-themes - :demand t - :bind ("" . doric-load-random) - :init - (defun doric-load-random () - (interactive) - (mapc #'disable-theme custom-enabled-themes) - (let* ((themes '(doric-fire - doric-oak - doric-jade - doric-wind - doric-beach - doric-earth - doric-valley)) - (loaded (seq-random-elt themes))) - (load-theme loaded :no-confirm))) - (doric-load-random) - ) +(use-package standard-themes :demand t + :config + (modus-themes-load-theme 'standard-wombat)) -;; (use-package doom-themes +;; (use-package doric-themes ;; :demand t +;; :bind ("" . doric-load-random) ;; :init -;; (setq doom-themes-enable-bold t) -;; (setq doom-themes-enable-italic t)) +;; (defun doric-load-random () +;; (interactive) +;; (mapc #'disable-theme custom-enabled-themes) +;; (let* ((themes '(doric-fire +;; doric-oak +;; doric-jade +;; doric-wind +;; doric-beach +;; doric-earth +;; doric-valley)) +;; (loaded (seq-random-elt themes))) +;; (load-theme loaded :no-confirm))) +;; (doric-load-random) +;; ) - -;; (require 'modus-summer-time) (use-package modus-themes :init (setq modus-themes-italic-constructs t modus-themes-bold-constructs t - modus-themes-mixed-fonts t) - (setq modus-themes-headings ; read the manual's entry or the doc string - '((0 . (regular 1)) - (1 . (regular 1)) - (2 . (regular 1)) - (3 . (regular 1)) - (4 . (regular 1)) - (5 . (regular 1)) ; absence of weight means `bold' - (6 . (regular 1)) - (7 . (regular 1)) - (t . (regular 1))))) + modus-themes-mixed-fonts t)) (use-package rainbow-delimiters :hook ((prog-mode . rainbow-delimiters-mode) @@ -72,6 +56,12 @@ (use-package rainbow-mode :hook elpaca-after-init) +;; (use-package nano-theme +;; :ensure (nano-theme :type git :host github +;; :repo "rougier/nano-theme") +;; :init +;; (modus-themes-load-theme 'nano-dark)) + (use-package doom-modeline :hook (elpaca-after-init . doom-modeline-mode) :config @@ -107,7 +97,7 @@ (pcase system-type ('darwin ; macOS - (set-face-attribute 'default nil :font "Sarasa Term SC-22") ; 20 * 1.5 + (set-face-attribute 'default nil :font "Sarasa Mono TC Nerd Font-22") ; 20 * 1.5 (set-face-attribute 'variable-pitch nil :font "Bookerly-22" :weight 'light) (set-face-attribute 'fixed-pitch nil :font "Sarasa Term SC-22") @@ -115,7 +105,7 @@ (add-to-list 'default-frame-alist '(width . 120))) ('gnu/linux ; Linux (including Debian) - (set-face-attribute 'variable-pitch nil :font "Sarasa Term SC-14") ; 20 * 1.5 + (set-face-attribute 'variable-pitch nil :font "Sarasa Mono TC Nerd Font-14") ; 20 * 1.5 (add-to-list 'default-frame-alist '(height . 40)) (add-to-list 'default-frame-alist '(width . 90)))) @@ -124,7 +114,9 @@ :hook LaTeX-mode) (use-package diff-hl - :init (global-diff-hl-mode)) + :hook (elpaca-after-init global-diff-hl-mode) + :hook (elpaca-after-init diff-hl-dired-mode) + :hook (elpaca-after-init diff-hl-flydiff-mode)) ;; Easily adjust the font size in all frames (use-package default-text-scale diff --git a/lisp/init-workspace.el b/lisp/init-workspace.el index 764c435..ea001ef 100644 --- a/lisp/init-workspace.el +++ b/lisp/init-workspace.el @@ -1,64 +1,17 @@ ;; -*- lexical-binding: t; -*- -(use-package project) +;; (use-package project) +(use-package projectile + :hook elpaca-after-init + :config + ;; Recommended keymap prefix on macOS + (define-key projectile-mode-map (kbd "s-p") 'projectile-command-map) + ;; Recommended keymap prefix on Windows/Linux + (define-key projectile-mode-map (kbd "C-x p") 'projectile-command-map)) (global-set-key (kbd "C-x C-b") #'ibuffer) -;; (use-package tab-bar -;; :ensure nil -;; :init -;; (tab-bar-mode t) -;; (setq tab-bar-new-tab-choice "*scratch*") ;; buffer to show in new tabs -;; (setq tab-bar-close-button-show nil) ;; hide tab close / X button -;; (setq tab-bar-show t) ;; hide bar if <= 1 tabs open -;; (setq tab-bar-format '(tab-bar-format-tabs tab-bar-separator)) - -;; (setq tab-bar-tab-hints t)) - -;; (use-package tabspaces -;; :functions tabspaces-mode -;; :commands (tabspaces-switch-or-create-workspace -;; tabspaces-open-or-create-project-and-workspace) -;; :hook (elpaca-after-init . tabspaces-mode) -;; :bind (:map tabspaces-mode-map -;; ([remap project-switch-project] . tabspaces-project-switch-project-open-file)) -;; :bind (:map tabspaces-command-map -;; ("l" . tabspaces-restore-session) -;; ("s" . tabspaces-save-session) -;; ("TAB" . tabspaces-switch-or-create-workspace)) - -;; :custom -;; (tabspaces-use-filtered-buffers-as-default t) -;; (tabspaces-default-tab "Default") -;; (tabspaces-remove-to-default t) -;; (tabspaces-include-buffers '("*scratch*" "*Messages*")) -;; (tabspaces-exclude-buffers '("*eat*" "*vterm*" "*shell*" "*eshell*")) -;; ;; sessions -;; (tabspaces-session t) -;; (tabspaces-session-auto-restore t) -;; (tabspaces-keymap-prefix "C-c o") -;; (tab-bar-new-tab-choice "default") - -;; (with-eval-after-load 'consult -;; ;; hide full buffer list (still available with "b" prefix) -;; (consult-customize consult--source-buffer :hidden nil :default nil) -;; ;; set consult-workspace buffer list -;; (defvar consult--source-workspace -;; (list :name "Workspace Buffers" -;; :narrow ?w -;; :history 'buffer-name-history -;; :category 'buffer -;; :state #'consult--buffer-state -;; :default t -;; :items (lambda () (consult--buffer-query -;; :predicate #'tabspaces--local-buffer-p -;; :sort 'visibility -;; :as #'buffer-name))) - -;; "Set workspace buffer list for consult-buffer.") -;; (add-to-list 'consult-buffer-sources 'consult--source-workspace))) - (use-package beframe :hook elpaca-after-init :bind (("C-x b" . beframe-switch-buffer) @@ -67,4 +20,22 @@ :config (define-key global-map (kbd "C-c b") #'beframe-prefix-map)) +(use-package desktop + :ensure nil + :demand t + :init + (setq desktop-dirname (expand-file-name user-emacs-directory) + desktop-path (list desktop-dirname) + desktop-save t + desktop-files-not-to-save "^$" ;reload tramp paths + desktop-load-locked-desktop nil + desktop-restore-eager 4) + :config + (desktop-save-mode 1)) + +(use-package eyebrowse + :hook elpaca-after-init + :custom + (eyebrowse-new-workspace t)) + (provide 'init-workspace) diff --git a/snippets/latex-mode/cap b/snippets/latex-mode/cap new file mode 100644 index 0000000..e245108 --- /dev/null +++ b/snippets/latex-mode/cap @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: cap +# key: cap +# group: math +# condition: (and (texmathp) 'auto) +# -- +\\cap \ No newline at end of file diff --git a/snippets/latex-mode/cup b/snippets/latex-mode/cup new file mode 100644 index 0000000..8984137 --- /dev/null +++ b/snippets/latex-mode/cup @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: cup +# key: cup +# group: math +# condition: (and (texmathp) 'auto) +# -- +\\cup \ No newline at end of file diff --git a/snippets/latex-mode/template b/snippets/latex-mode/template index 181e76d..cf8252d 100644 --- a/snippets/latex-mode/template +++ b/snippets/latex-mode/template @@ -2,7 +2,7 @@ # name: template # key: template # -- -\documentclass[12pt]{/Users/zelongk/Documents/latex/elegantbook} +\documentclass[12pt,black,pad,en,chinese,section]{/Users/zelongk/Documents/latex/elegantbook} \title{$1} diff --git a/xenops/cache/031f5c5ca4f89f6579617ee52f3b2944207a71e9.svg b/xenops/cache/031f5c5ca4f89f6579617ee52f3b2944207a71e9.svg deleted file mode 100644 index ec0fdad..0000000 --- a/xenops/cache/031f5c5ca4f89f6579617ee52f3b2944207a71e9.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/xenops/cache/0a6ff416ae1b0516c79cddbfeedd9438f485b226.svg b/xenops/cache/0a6ff416ae1b0516c79cddbfeedd9438f485b226.svg deleted file mode 100644 index da8be62..0000000 --- a/xenops/cache/0a6ff416ae1b0516c79cddbfeedd9438f485b226.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/xenops/cache/1a383807ec6e4760104b5e38e09b528bc5a840fe.svg b/xenops/cache/1a383807ec6e4760104b5e38e09b528bc5a840fe.svg deleted file mode 100644 index 47e0ddc..0000000 --- a/xenops/cache/1a383807ec6e4760104b5e38e09b528bc5a840fe.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/xenops/cache/28d6ecfa313c69fd5e9f4bb3a066d3593b0435de.svg b/xenops/cache/28d6ecfa313c69fd5e9f4bb3a066d3593b0435de.svg deleted file mode 100644 index 1b1bd55..0000000 --- a/xenops/cache/28d6ecfa313c69fd5e9f4bb3a066d3593b0435de.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/xenops/cache/2ad6d7c683560465bb34f85228cf9eec682bee7c.svg b/xenops/cache/2ad6d7c683560465bb34f85228cf9eec682bee7c.svg deleted file mode 100644 index da995fb..0000000 --- a/xenops/cache/2ad6d7c683560465bb34f85228cf9eec682bee7c.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/xenops/cache/a0f3e9644e9d5322e84f9375ec3d1981a811f67e.svg b/xenops/cache/a0f3e9644e9d5322e84f9375ec3d1981a811f67e.svg deleted file mode 100644 index f3e215b..0000000 --- a/xenops/cache/a0f3e9644e9d5322e84f9375ec3d1981a811f67e.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/xenops/cache/c033e0f561b584df4c74d3c989b66c76f405291a.svg b/xenops/cache/c033e0f561b584df4c74d3c989b66c76f405291a.svg deleted file mode 100644 index f3e215b..0000000 --- a/xenops/cache/c033e0f561b584df4c74d3c989b66c76f405291a.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/xenops/cache/c8549a9c12a3742be8e18b143c16dfd898504442.svg b/xenops/cache/c8549a9c12a3742be8e18b143c16dfd898504442.svg deleted file mode 100644 index 63cff9e..0000000 --- a/xenops/cache/c8549a9c12a3742be8e18b143c16dfd898504442.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/xenops/cache/e418ee540bd2b90407018b172941d3f8a030a41a.svg b/xenops/cache/e418ee540bd2b90407018b172941d3f8a030a41a.svg deleted file mode 100644 index ff4a34a..0000000 --- a/xenops/cache/e418ee540bd2b90407018b172941d3f8a030a41a.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/xenops/cache/f35fbfb4f24e87a98a570fd47c260cb2fcd684eb.svg b/xenops/cache/f35fbfb4f24e87a98a570fd47c260cb2fcd684eb.svg deleted file mode 100644 index b75e653..0000000 --- a/xenops/cache/f35fbfb4f24e87a98a570fd47c260cb2fcd684eb.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file