first commit

This commit is contained in:
trogloxene
2026-03-15 12:56:10 +08:00
commit 8c1c211e4b
12 changed files with 676 additions and 0 deletions

96
lisp/init-ui.el Normal file
View File

@@ -0,0 +1,96 @@
;;; init-ui.el
;;; -*- lexical-binding: t -*-
;; 设置系统编码
(when (fboundp 'set-charset-priority)
(set-charset-priority 'unicode))
(set-language-environment 'chinese-gbk)
(prefer-coding-system 'utf-8-auto)
;; 安装solarized dark
(use-package solarized-theme)
(load-theme 'solarized-dark t)
;; 安装smart-mode-line
(use-package smart-mode-line
:defer 0.5
:config
(setq sml/no-confirm-load-theme t
sml/theme 'respectful)
(sml/setup))
;; 高亮当前行
(global-hl-line-mode t)
;; 显示文件大小
(size-indication-mode t)
;; 显示行号列号
(column-number-mode t)
;; 配置字体
(defvar cn-fonts-list '("Sarasa Fixed TC" "STHeiti" "微软雅黑" "文泉译微米黑")
"定义使用的中文字体候选列表")
(defvar en-fonts-list '("Sarasa Fixed TC" "Courier New" "Monaco" "Ubuntu Mono")
"定义使用的英文字体候选列表")
(defvar emoji-fonts-list '("Apple Color Emoji" "Segoe UI Emoji" "Noto Color Emoji" "Symbola" "Symbol")
"定义使用Emoji字体候选列表")
(defun tenon--available-font (font-list)
"从 FONT-LIST 中寻找第一个系统中可用的字"
(catch 'found
(dolist (font font-list)
(when (member font (font-family-list))
(throw 'found font)))))
;; 设置字体大小和字重变量
(defvar tenon-font-size 125
"默认字体大小")
(defvar tenon-font-weight 'light
"默认字重选项有ultra-lightlightnormalmediumsemiboldbold")
;; 定义函数
;;;###autoload
(defun tenon--font-setup ()
"Font setup."
(interactive)
(let* ((cf (tenon--available-font cn-fonts-list))
(ef (tenon--available-font en-fonts-list))
(em (tenon--available-font emoji-fonts-list)))
(when ef
(dolist (face '(default fixed-pitch fixed-pitch-serif variable-pitch))
(set-face-attribute face nil
:family ef
:height tenon-font-size
:weight tenon-font-weight)))
(when em
(dolist (charset `(unicode unicode-bmp ,(if (> emacs-major-version 27) 'emoji 'symbol)))
(set-fontset-font t charset em nil 'prepend)))
(when cf
(dolist (charset '(kana han cjk-misc bopomofo))
(set-fontset-font t charset cf))
(setq face-font-rescale-alist
(mapcar (lambda (item) (cons item 1)) `(,cf ,em))))))
;; 延迟执行字体设置
(add-hook 'after-init-hook #'tenon--font-setup)
;; 添加个人字体到 cnfonts
(setq cnfonts-personal-fontnames
'(("Sarasa Fixed TC") ; 英文字体
("Sarasa Fixed TC") ; 中文字体
nil ; Ext-B 字体(可选)
nil ; Symbol 字体(可选)
nil)) ; 装饰字体(可选)
;; 安装cnfonts脚本用于修复中英文对齐
(use-package cnfonts
:defer 0
:config
(cnfonts-mode 1)
(cnfonts--select-profile "profile1"))
(provide 'init-ui)