From 7cc3708c0628fb03bd2e853d8775643a4e8a70a9 Mon Sep 17 00:00:00 2001 From: lemyx Date: Sun, 29 Dec 2024 15:39:27 +0800 Subject: [PATCH] Add TsangerJinKai03-6763 as Chinese Font --- .gitignore | 1 + init.el | 1 + lisp/init-ai.el | 9 ++++- lisp/init-font.el | 101 +++++++++++++++++++++++++--------------------- lisp/init-tex.el | 4 +- lisp/init-ui.el | 4 -- 6 files changed, 65 insertions(+), 55 deletions(-) diff --git a/.gitignore b/.gitignore index 350b76c..4f6ebce 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,4 @@ eln-cache/ .cache/ history .aider* +.env diff --git a/init.el b/init.el index ba10a68..26a8da9 100644 --- a/init.el +++ b/init.el @@ -13,6 +13,7 @@ ;; Generic (require 'init-package) (require 'init-onekey) +(require 'init-font) (require 'init-ui) (require 'init-treemacs) (require 'init-save) diff --git a/lisp/init-ai.el b/lisp/init-ai.el index c2d1f6f..ed2f342 100644 --- a/lisp/init-ai.el +++ b/lisp/init-ai.el @@ -25,13 +25,18 @@ :endpoint "/chat/completions" :stream t :key (read-llm-api-key (deepseek-api-key-path)) - :models '("deepseek-chat" "deepseek-coder")))) + :models '("deepseek-chat" "deepseek-coder"))) + ; Let window scroll automatically as the response is inserted + (add-hook 'gptel-post-stream-hook 'gptel-auto-scroll) + ; Let cursor move to the next prompt after the response is inserted + (add-hook 'gptel-post-response-functions 'gptel-end-of-response) + ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; aider.el (add-to-list 'load-path "~/.emacs.d/site-lisp/aider/") (require 'aider) -(setq aider-args '("--model" "deepseek/deepseek-coder")) +(setq aider-args '("--no-auto-commits" "--model" "deepseek/deepseek-coder")) (setenv "DEEPSEEK_API_KEY" (read-llm-api-key (deepseek-api-key-path))) (provide 'init-ai) diff --git a/lisp/init-font.el b/lisp/init-font.el index 5d3e3b4..ba9fa7b 100644 --- a/lisp/init-font.el +++ b/lisp/init-font.el @@ -4,57 +4,64 @@ ;;; Code: -(defun load-font-setup () - (let* ((emacs-font-size 25) - (chinese-font-name "TsangerJinKai03-6763") - (english-font-name "Sarasa Term SC Nerd") - (font-spec-english (font-spec :family english-font-name :size emacs-font-size)) - (font-spec-chinese (font-spec :family chinese-font-name :size emacs-font-size))) - (set-fontset-font (frame-parameter nil 'font) 'unicode-bmp font-spec-english) - (dolist (charset '(kana han symbol cjk-misc bopomofo)) - (set-fontset-font (frame-parameter nil 'font) charset font-spec-chinese)) - (set-frame-font font-spec-english))) +(defun font-installed-p (font-name) + "Check if font with FONT-NAME is available." + (find-font (font-spec :name font-name))) -(add-hook 'after-init-hook #'load-font-setup) +(defconst sys/macp + (eq system-type 'darwin) + "Are we running on a Mac system?") -;; This is hacking to fix Emacs 29 will decrease font after standby. -(add-function :after after-focus-change-function #'load-font-setup) +(defconst sys/win32p + (eq system-type 'windows-nt) + "Are we running on a WinTel system?") +(defun centaur-setup-fonts () + "Setup fonts." + (when (display-graphic-p) + ;; Set default font + (cl-loop for font in '("Sarasa Term SC Nerd" "Cascadia Code" "Fira Code" "Jetbrains Mono" + "SF Mono" "Hack" "Source Code Pro" "Menlo" + "Monaco" "DejaVu Sans Mono" "Consolas" + ) + when (font-installed-p font) + return (set-face-attribute 'default nil + :family font + :height (cond (sys/macp 130) + (sys/win32p 110) + (t 100)))) -(dolist (hook (list - 'c-mode-common-hook - 'c-mode-hook - 'c++-mode-hook - 'java-mode-hook - 'haskell-mode-hook - 'emacs-lisp-mode-hook - 'lisp-interaction-mode-hook - 'lisp-mode-hook - 'maxima-mode-hook - 'ielm-mode-hook - 'sh-mode-hook - 'makefile-gmake-mode-hook - 'php-mode-hook - 'python-mode-hook - 'js-mode-hook - 'go-mode-hook - 'qml-mode-hook - 'jade-mode-hook - 'css-mode-hook - 'ruby-mode-hook - 'coffee-mode-hook - 'rust-mode-hook - 'qmake-mode-hook - 'lua-mode-hook - 'swift-mode-hook - 'web-mode-hook - 'markdown-ts-mode-hook - 'llvm-mode-hook - 'conf-toml-mode-hook - 'nim-mode-hook - 'typescript-mode-hook - )) - (add-hook hook #'(lambda () (load-font-setup)))) + ;; Set mode-line font + ;; (cl-loop for font in '("Menlo" "SF Pro Display" "Helvetica") + ;; when (font-installed-p font) + ;; return (progn + ;; (set-face-attribute 'mode-line nil :family font :height 120) + ;; (when (facep 'mode-line-active) + ;; (set-face-attribute 'mode-line-active nil :family font :height 120)) + ;; (set-face-attribute 'mode-line-inactive nil :family font :height 120))) + + ;; Specify font for all unicode characters + (cl-loop for font in '("Apple Symbols" "Segoe UI Symbol" "Symbola" "Symbol") + when (font-installed-p font) + return (set-fontset-font t 'symbol (font-spec :family font) nil 'prepend)) + + ;; Emoji + (cl-loop for font in '("Noto Color Emoji" "Apple Color Emoji" "Segoe UI Emoji") + when (font-installed-p font) + return (set-fontset-font t + (if (< emacs-major-version 28)'symbol 'emoji) + (font-spec :family font) nil 'prepend)) + + ;; Specify font for Chinese characters + (cl-loop for font in '("TsangerJinKai03-6763 W05" "LXGW Neo Xihei" "WenQuanYi Micro Hei Mono" "LXGW WenKai Screen" + "LXGW WenKai Mono" "PingFang SC" "Microsoft Yahei UI" "Simhei") + when (font-installed-p font) + return (progn + (setq face-font-rescale-alist `((,font . 1.3))) + (set-fontset-font t 'han (font-spec :family font)))))) +(centaur-setup-fonts) +(add-hook 'window-setup-hook #'centaur-setup-fonts) +(add-hook 'server-after-make-frame-hook #'centaur-setup-fonts) (provide 'init-font) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/lisp/init-tex.el b/lisp/init-tex.el index 5364dbe..20566a8 100644 --- a/lisp/init-tex.el +++ b/lisp/init-tex.el @@ -31,8 +31,8 @@ (cdlatex-mode) (reftex-mode) (prettify-symbols-mode t) - (outline-minor-mode) - (outline-hide-body) + ;; (outline-minor-mode) + ;; (outline-hide-body) (add-to-list 'TeX-command-list '("XeLaTeX" "%`xelatex --synctex=1%(mode)%' %t" TeX-run-TeX nil t)) ))) diff --git a/lisp/init-ui.el b/lisp/init-ui.el index 2c061d3..2eef376 100644 --- a/lisp/init-ui.el +++ b/lisp/init-ui.el @@ -21,10 +21,6 @@ )) ))) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Font -(set-face-attribute 'default nil :font (font-spec :family "Sarasa Term SC Nerd" :size 14)) - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Tab Bar (use-package tab-bar