Config: replace smart-mode-line by simple-modeline, optimize org-ql config, add basic guile support

This commit is contained in:
2026-04-15 03:11:12 +08:00
parent 1af78f99b7
commit a47205eef4
13 changed files with 163 additions and 80 deletions

View File

@@ -21,6 +21,7 @@
(require 'init-org-refile)
(require 'init-completion)
(require 'init-window)
(require 'init-exwm)
(require 'init-dired)
(require 'init-workspace)
(require 'init-ui)

View File

@@ -6,10 +6,12 @@
;; eglot
(use-package eglot
:hook ((python-mode . eglot-ensure))
:hook ((python-mode . eglot-ensure)
(scheme-mode . eglot-ensure))
:config
(setq eglot-send-changes-idle-time 0.25))
(setq eglot-send-changes-idle-time 0.25)
(add-to-list 'eglot-server-programs
'(scheme-mode . ("guile-lsp-server"))))
;; corfu
(use-package corfu
@@ -117,6 +119,13 @@
(global-treesit-auto-mode)
(setq treesit-font-lock-level 4))
(use-package geiser)
(use-package geiser-guile)
(with-eval-after-load 'geiser
(setq geiser-default-implementation 'guile))
(provide 'init-completion)
;;; init-completion.el ends here

View File

@@ -27,31 +27,45 @@
(use-package dirvish
:init
(dirvish-override-dired-mode)
:config
(if *is-mac*
(setq dirvish-hide-details t)
(setq dirvish-hide-details '(dirvish-side)))
(setq dirvish-use-mode-line 'global)
(unless *is-windows*
(setq dirvish-attributes '(file-time file-size)))
(setq dirvish-default-layout '(1 0.15 0.45))
:custom
(dirvish-quick-access-entries
(cond
(*is-windows*
'(("h" "~/" "Home")
("e" "~/.emacs.d/")
'(("h" "~/" "Home")
("e" "~/.emacs.d/" "Emacs config")
("p" "c:/Users/gaozh/Pictures/Screenshots/" "Pictures")
("d" "f:/下载25-2-10/" "Download")
("v" "f:/luping26-1-11/" "Videos")
("n" "h:/emacs/my-org-note/" "Notes")))
("d" "f:/下载25-2-10/" "Download")
("v" "f:/luping26-1-11/" "Videos")
("n" "h:/emacs/my-org-note/" "Notes")))
(*is-mac*
'(("h" "~/" "Home")
("e" "~/.emacs.d/")
("p" "~/Pictures/" "Pictures")
("d" "~/Downloads/" "Download")
("v" "~/Movies/" "Videos")
("n" "~/org/my-org-note/")))
("e" "~/.emacs.d/" "Emacs config")
("p" "~/Pictures/" "Pictures")
("d" "~/Downloads/" "Download")
("v" "~/Movies/" "Videos")
("n" "~/org/my-org-note/" "Notes")))
(*is-linux*
'(("h" "~/" "Home")
("e" "~/.emacs.d/" "Emacs config")
("s" "~/.config/guix/" "System config")
("p" "~/图片/" "Pictures")
("d" "~/downloads/" "Downloads")
("v" "~/视频/" "Videos")
("n" "~/org/my-org-note/" "Notes")))
(t nil))))
(use-package trashed

View File

@@ -5,13 +5,25 @@
;;; Code:
;; Clash 代理配置
(setq url-proxy-services
'(("http" . "127.0.0.1:7890")
("https" . "127.0.0.1:7890")
("no_proxy" . "\\(localhost\\|127\\.0\\.0\\.1\\|192\\.168\\.*\\)")))
(if *is-linux*
(progn
(setq url-proxy-services
'(("http" . "192.168.31.121:7890")
("https" . "192.168.31.121:7890")
("no_proxy" . "\\(localhost\\|127\\.0\\.0\\.1\\|192\\.168\\.*\\)")))
(setenv "http_proxy" "127.0.0.1:7890")
(setenv "https_proxy" "127.0.0.1:7890")
(setenv "http_proxy" "192.168.31.121:7890")
(setenv "https_proxy" "192.168.31.121:7890"))
(progn
(setq url-proxy-services
'(("http" . "127.0.0.1:7890")
("https" . "127.0.0.1:7890")
("no_proxy" . "\\(localhost\\|127\\.0\\.0\\.1\\|192\\.168\\.*\\)")))
(setenv "http_proxy" "127.0.0.1:7890")
(setenv "https_proxy" "127.0.0.1:7890"))
)
;; straight.el
(defvar bootstrap-version)

11
lisp/init-exwm.el Normal file
View File

@@ -0,0 +1,11 @@
;;; init-exwm.el --- exwm config -*- lexical-binding: t -*-
;;; Commentary:
;;; Code:
(use-package exwm)
(provide 'init-exwm)
;;; init-exwm.el ends here

View File

@@ -443,6 +443,8 @@ Disable jinx-mode if it's enable and global-jinx-mode is disable , otherwise tog
;; perspective
(global-set-key (kbd "C-M-<left>") 'persp-prev)
(global-set-key (kbd "C-M-<right>") 'persp-next)
(define-key persp-mode-map (kbd "C-c p c") nil)
(global-set-key (kbd "C-c p d") 'persp-kill)
(provide 'init-kbd)

View File

@@ -107,10 +107,11 @@
;; 文件头
(insert (format "#+title: %s\n" user-filename))
(insert (format "#+date: %s\n" (format-time-string "[%Y-%m-%d %a %H:%M]")))
(insert (format "#+category: %s\n\n" category))
(insert (format "#+category: %s\n" category))
(insert "#+STARTUP: content\n\n")
;; 插入标题和tag
(insert (format "* STARTED %s %s\n"
(insert (format "* STARTED %s :root%s\n"
;; (if todo (concat todo " ") "")
user-filename
formatted-tags))

View File

@@ -44,10 +44,8 @@
(format-time-string "%Y-%m-%d %a" time)))
org-journal-carryover-items "TODO=\"TODO\"|TODO=\"STARTED\"|TODO=\"WAITING\"|TODO=\"SOMEDAY\"")
(when *is-windows*
(setq org-journal-dir "h:/emacs/my-org-daily/"))
(when *is-mac*
(if *is-windows*
(setq org-journal-dir "h:/emacs/my-org-daily/")
(setq org-journal-dir "~/org/my-org-daily/"))
(add-hook 'org-journal-mode-hook 'font-lock-update)
@@ -111,7 +109,6 @@
(lambda ()
(global-cns-mode-enable-in-buffer)))
;; 一些随org-mode加载的基础配置
(add-hook 'org-mode-hook
(lambda ()
@@ -163,34 +160,53 @@
(setq org-agenda-files '("~/org/my-org-daily"
"~/org/my-org-note/")))
(when *is-linux*
(setq org-agenda-files '("~/org/my-org-daily/"
"~/org/my-org-note/")))
(setq org-agenda-span 'day)
(setq org-default-priority ?D)
(setq org-default-priority ?C)
(setq org-agenda-skip-function-global
'(org-agenda-skip-entry-if 'todo '("COMMENT")))
;; org-ql
(use-package org-ql)
(use-package org-ql
:config
(with-eval-after-load 'org-ql-view
(keymap-set org-ql-view-map (kbd "q") 'org-agenda-Quit))
(setq org-ql-views
'(("tags: emacs category:note"
:buffers-files org-agenda-files
:query (and (tags "emacs") (category "note"))
:sort date)
(setq org-ql-views
'(("tags: emacs category:note"
:buffers-files org-agenda-files
:query (and (tags "emacs") (category "note"))
:sort date)
("tags: org"
:buffers-files org-agenda-files
:query (tags "org"))
("tags: org"
:buffers-files org-agenda-files
:query (tags "org")
:super-groups ((:auto-property "CATEGORY")))
("all important todos"
:buffers-files org-agenda-files
:query (and (not (done)) (todo))
:super-groups
((:name "priority = A" :priority "A")
(:name "priority = B" :priority "B")
(:name "started" :todo "STARTED")
(:name "someday" :todo "SOMEDAY")))))
("group by time"
:buffers-files org-agenda-files
:query (and (ts :to "today") (tags "root"))
:sort date
:super-groups ((:auto-ts t)))
("group by category"
:buffers-files org-agenda-files
:query (tags "root")
:super-groups ((:auto-property "CATEGORY")))
("all important todos"
:buffers-files org-agenda-files
:query (and (not (done)) (todo))
:super-groups
((:name "started" :todo "STARTED")
(:name "priority = A" :priority "A")
(:name "priority = B" :priority "B")
(:name "someday" :todo "SOMEDAY"))))))
;; org-super-agenda 配置
(use-package org-super-agenda
@@ -258,11 +274,13 @@
"~/org/my-org-note/"
(format-time-string "%Y%m%d")
my-org-capture-temp-title)))))
"#+title: %(symbol-value 'my-org-capture-temp-title)
"
#+title: %(symbol-value 'my-org-capture-temp-title)
#+date: %U
#+category: %^{Category|none|project|book|article|note|insight|fun}
#+category: %^{Category|none|project|book|article|note|wisdom|fun|data}
#+STARTUP: content
* %(symbol-value 'my-org-capture-temp-title) %^g
* %(symbol-value 'my-org-capture-temp-title) :root%^g
:PROPERTIES:
:END:
%U
@@ -276,6 +294,8 @@
"
:jump-to-captured t)))
(setq org-bookmark-names-plist nil)
(global-set-key (kbd "C-c o c") 'org-capture)
;; 批量调整表格

View File

@@ -191,7 +191,7 @@ targets."
;; 启用savehist保存命令顺序
(use-package savehist
:hook (after-init . savehist-mode)
;; :hook (after-init . savehist-mode)
:init (setq enable-recursive-minibuffers t
history-length 50
savehist-additional-variables '(mark-ring
@@ -199,11 +199,12 @@ targets."
search-ring
regexp-search-ring
extended-command-history)
savehist-autosave-interval 300))
savehist-autosave-interval 300)
(savehist-mode))
;; saveplace保存光标位置
(use-package saveplace
:hook (after-init . save-place-mode))
:init (save-place-mode))
;; undo增强
(use-package undo-fu)
@@ -253,7 +254,7 @@ targets."
("M-Z" . avy-zap-up-to-char-dwim)))
;; jinx拼写检查
(unless *is-windows*
(if *is-mac*
(use-package jinx
:hook (org-mode-hook . jinx-mode)
:bind ([remap ispell-word] . jinx-correct)
@@ -276,6 +277,10 @@ targets."
:init
(add-hook 'after-init-hook #'global-flycheck-mode))
(use-package flycheck-guile
:hook (scheme-mode . (lambda ()
(require 'flycheck-guile))))
;; consult-flycheck
(use-package consult-flycheck)

View File

@@ -4,8 +4,9 @@
;;; Code:
;; emacs-chinese-word-segmentation 配置
(when *is-windows*
;; emacs-chinese-word-segmentation
(cond
(*is-windows*
(add-to-list 'load-path "h:/emacs/emacs-chinese-word-segmentation/")
;; 设置为进程调用方式
(setq cns-process-type 'shell)
@@ -15,22 +16,22 @@
(setq cns-dict-directory "h:/emacs/emacs-chinese-word-segmentation/cppjieba/dict")
;; 直接设置进程命令,绕过 Windows shell 检测
(setq cns-process-shell-command
(format "%s %s %s %s %s %s"
cns-prog
(concat (file-name-as-directory cns-dict-directory) "jieba.dict.utf8")
(concat (file-name-as-directory cns-dict-directory) "hmm_model.utf8")
(concat (file-name-as-directory cns-dict-directory) "user.dict.utf8")
(concat (file-name-as-directory cns-dict-directory) "idf.utf8")
(concat (file-name-as-directory cns-dict-directory) "stop_words.utf8"))))
(format "%s %s %s %s %s %s"
cns-prog
(concat (file-name-as-directory cns-dict-directory) "jieba.dict.utf8")
(concat (file-name-as-directory cns-dict-directory) "hmm_model.utf8")
(concat (file-name-as-directory cns-dict-directory) "user.dict.utf8")
(concat (file-name-as-directory cns-dict-directory) "idf.utf8")
(concat (file-name-as-directory cns-dict-directory) "stop_words.utf8"))))
(when *is-mac*
(t
(add-to-list 'load-path "~/emacs-stuff/emacs-chinese-word-segmentation/")
;; 设置为进程调用方式
(setq cns-process-type 'shell)
;; 设置可执行文件路径
(setq cns-prog "~/emacs-stuff/emacs-chinese-word-segmentation/cnws")
;; 设置字典目录
(setq cns-dict-directory "~/emacs-stuff/emacs-chinese-word-segmentation/cppjieba/dict/"))
(setq cns-dict-directory "~/emacs-stuff/emacs-chinese-word-segmentation/cppjieba/dict/")))
;; 其他配置
(setq cns-recent-segmentation-limit 40)

View File

@@ -5,7 +5,7 @@
;;; Code:
;; mac自动全屏
(when *is-mac*
(unless *is-windows*
(toggle-frame-fullscreen)
(global-unset-key (kbd "<f12>"))
(global-set-key (kbd "<f12>") 'toggle-frame-fullscreen))

View File

@@ -56,17 +56,24 @@
(load-theme 'my-base16-dark t))
;; 很多主题
(use-package doom-themes)
(use-package color-theme-modern)
;; (use-package doom-themes)
;; (use-package color-theme-modern)
(use-package naysayer-theme)
;; 安装smart-mode-line
(use-package smart-mode-line
:defer 0.5
;; (use-package smart-mode-line
;; :config
;; (setq sml/no-confirm-load-theme t)
;; ;; sml/theme 'respectful)
;; (sml/setup))
(use-package simple-modeline
:init (simple-modeline-mode)
:config
(setq sml/no-confirm-load-theme t)
;; sml/theme 'respectful)
(sml/setup))
;; (defun simple-modeline-segment-buffer-name ()
;; "Displays the full path of current file in the mode-line."
;; (propertize " %f" 'face 'mode-line-buffer-id))
)
;; eshell高亮
(use-package eshell-syntax-highlighting