Compare commits

...

3 Commits

10 changed files with 107 additions and 26 deletions

View File

@@ -116,9 +116,17 @@
(mode . eww-bookmark-mode) (mode . eww-bookmark-mode)
(mode . eww-buffers-mode) (mode . eww-buffers-mode)
(mode . eww-history-mode))) (mode . eww-history-mode)))
("AI" (or
(name . "^\\*OpenCode")
(name . "\\*opencode-serve\\*")
(name . "^\\*gptel")))
("Calc" (or ("Calc" (or
(mode . calc-mode) (mode . calc-mode)
(mode . calc-trail-mode))) (mode . calc-trail-mode)))
("Text" (or
(mode . org-mode)
(mode . markdown-mode)
(name . "^\\*\\[D\\] FILE backlinks for")))
("Shell" (or ("Shell" (or
(mode . eshell-mode) (mode . eshell-mode)
(mode . eat-mode) (mode . eat-mode)
@@ -145,8 +153,6 @@
(mode . geiser-debug-mode) (mode . geiser-debug-mode)
(mode . geiser-doc-mode) (mode . geiser-doc-mode)
(mode . geiser-autodoc-mode))) (mode . geiser-autodoc-mode)))
("gptel" (or
(name . "^\\*gptel")))
("Common-lisp" (or ("Common-lisp" (or
(mode . common-lisp-mode) (mode . common-lisp-mode)
(mode . lisp-mode))) (mode . lisp-mode)))
@@ -156,10 +162,11 @@
(mode . sly-mrepl-mode) (mode . sly-mrepl-mode)
(name . "\\*sly-compilation\\*") (name . "\\*sly-compilation\\*")
(name . "^\\*img-cache\\*"))) (name . "^\\*img-cache\\*")))
("Text" (or ("Config" (or
(mode . org-mode) (mode . conf-mode)
(mode . markdown-mode) (mode . conf-toml-mode)
(name . "^\\*\\[D\\] FILE backlinks for"))) (mode . conf-unix-mode)
(mode . yaml-ts-mode)))
("Help" (or ("Help" (or
(mode . help-mode) (mode . help-mode)
(mode . helpful-mode))) (mode . helpful-mode)))
@@ -184,7 +191,10 @@
(mode . xref-edit-mode) (mode . xref-edit-mode)
(mode . occur-mode) (mode . occur-mode)
(mode . occur-edit-mode))) (mode . occur-edit-mode)))
("Diff" (name . "^*Diff")) ("Diff" (or
(name . "^*Diff")
(mode . ediff-mode)
(mode . vundo-diff-mode)))
("Emacs" (or ("Emacs" (or
(name . "^\\*Help\\*$") (name . "^\\*Help\\*$")
(name . "^\\*Custom.*") (name . "^\\*Custom.*")

View File

@@ -27,7 +27,7 @@
;; dirvish ;; dirvish
(use-package dirvish (use-package dirvish
:straight :straight
'(dirvish :fork (:host github :repo "latiagertrutis/dirvish")) (dirvish :fork (:host github :repo "latiagertrutis/dirvish"))
:init :init
(dirvish-override-dired-mode) (dirvish-override-dired-mode)
:config :config

View File

@@ -6,9 +6,6 @@
;; straight.el ;; straight.el
;; 使用ssh
(setq straight-vc-git-default-protocol 'ssh)
(defvar bootstrap-version) (defvar bootstrap-version)
(let ((bootstrap-file (let ((bootstrap-file
(expand-file-name (expand-file-name

View File

@@ -122,7 +122,7 @@ explanations, no quotes, no punctuation, no file extension."
(use-package gptel-magit (use-package gptel-magit
:straight :straight
'(gptel-magit :fork (:host github :repo "ArthurHeymans/gptel-magit")) (gptel-magit :fork (:host github :repo "ArthurHeymans/gptel-magit"))
:hook :hook
(magit-mode . gptel-magit-install) (magit-mode . gptel-magit-install)
:init :init
@@ -146,6 +146,41 @@ explanations, no quotes, no punctuation, no file extension."
(setq gptel-magit-model 'kimi-for-coding (setq gptel-magit-model 'kimi-for-coding
gptel-magit-backend (gptel-get-backend "gptel-Kimi-Code-magit")))) gptel-magit-backend (gptel-get-backend "gptel-Kimi-Code-magit"))))
(use-package plz
:straight
(plz :type git
:host github
:repo "alphapapa/plz.el"
:ref "v0.9.1"))
(use-package plz-media-type
:straight
(plz-media-type :type git
:host github
:repo "r0man/plz-media-type"
:ref "v0.2.4"))
(use-package plz-event-source
:straight
(plz-event-source :type git
:host github
:repo "r0man/plz-event-source"
:ref "v0.1.3"))
(use-package opencode
:straight
(opencode :type git
:host codeberg
:repo "sczi/opencode.el")
:hook
(opencode-session-control-mode . disable-truncate-lines))
(use-package eval-elisp-mcp
:straight
(eval-elisp-mcp :type git
:host codeberg
:repo "sczi/eval-elisp-mcp"))
(provide 'init-gptel) (provide 'init-gptel)
;;; init-gptel.el ends here ;;; init-gptel.el ends here

View File

@@ -115,7 +115,7 @@ otherwise toggle global-jinx-mode."
(defun my-denote-find-file () (defun my-denote-find-file ()
"Find file use denote-file-prompt." "Find file use denote-file-prompt."
(interactive) (interactive)
(let ((denote-excluded-files-regexp "=journal")) (let ((denote-excluded-files-regexp "=journal\\|=archive"))
(find-file (denote-file-prompt)))) (find-file (denote-file-prompt))))
(defun my-denote-find-backlink-with-location () (defun my-denote-find-backlink-with-location ()
@@ -272,6 +272,12 @@ argument)."
(let ((current-prefix-arg '-)) (let ((current-prefix-arg '-))
(call-interactively 'gptel-agent))) (call-interactively 'gptel-agent)))
(defun my-opencode ()
"Run `opencode' in project root."
(interactive)
(let ((default-directory (project-root (project-current t))))
(opencode)))
(defun my-consult-ripgrep-project () (defun my-consult-ripgrep-project ()
"Run `consult-ripgrep' in current project's root." "Run `consult-ripgrep' in current project's root."
(interactive) (interactive)

View File

@@ -19,16 +19,35 @@
;; g for gptel ;; g for gptel
(general-def (general-def
:prefix "C-c g" :prefix "C-c g"
"o" 'gptel "g" 'gptel
"m" 'gptel-menu "m" 'gptel-menu
"s" 'gptel-send "s" 'gptel-send
"a" 'gptel-agent "a" 'gptel-agent
"t" 'gptel-tools) "t" 'gptel-tools
"o" 'opencode
"p" 'opencode-select-project
"l" 'opencode-select-session
"n" 'opencode-new-session)
(general-def gptel-mode-map (general-def gptel-mode-map
"C-c C-s" 'my-gptel-save-session "C-c C-s" 'my-gptel-save-session
"C-c C-k" 'gptel-abort) "C-c C-k" 'gptel-abort)
;; opencode
(general-def opencode-session-mode-map
"C-c C-p" 'comint-previous-prompt
"C-c M-p" 'opencode-respond-permission
"C-c x" nil
"C-c C-k" 'opencode-abort-session
"C-c C-c" 'nil
"C-c n" 'nil
"C-c N" 'opencode-new-session)
(general-def opencode-session-control-mode-map
"n" 'next-line
"p" 'previous-line
"N" 'opencode-new-session)
;; u for ui ;; u for ui
(general-def (general-def
:prefix "C-c u" :prefix "C-c u"
@@ -68,7 +87,7 @@
"R" 'project-query-replace-regexp "R" 'project-query-replace-regexp
"v" 'magit-project-status "v" 'magit-project-status
"V" 'project-vc-dir "V" 'project-vc-dir
"a" 'my-gptel-agent-project "a" 'my-opencode
"i" 'project-ibuffer) "i" 'project-ibuffer)
;; v for version control ;; v for version control

View File

@@ -27,6 +27,8 @@
(0 (prog1 () (add-text-properties (match-beginning 1) (match-end 1) '(invisible t))))))) (0 (prog1 () (add-text-properties (match-beginning 1) (match-end 1) '(invisible t)))))))
(font-lock-add-keywords 'org-mode org-hide-space-keywords 'append) (font-lock-add-keywords 'org-mode org-hide-space-keywords 'append)
(add-to-list 'org-src-lang-modes '("yaml" . yaml-ts))
(if *is-windows* (if *is-windows*
(add-hook 'org-mode-hook 'font-lock-update)) (add-hook 'org-mode-hook 'font-lock-update))
@@ -97,9 +99,11 @@
;; denote-lint ;; denote-lint
(use-package denote-lint (use-package denote-lint
:straight '(denote-lint :type git :straight
(denote-lint :type git
:host github :host github
:repo "Andsy10/denote-lint") :repo "Andsy10/denote-lint"
:protocol ssh)
:config :config
(setq org-link-elisp-confirm-function nil)) (setq org-link-elisp-confirm-function nil))
@@ -152,18 +156,22 @@
:hook :hook
(org-agenda-finalize . disable-truncate-lines) (org-agenda-finalize . disable-truncate-lines)
:config :config
(setq org-agenda-prefix-format '((agenda . " %?-12t% s")
(todo . " ")
(tags . " ")
(search . " ")))
(setq org-agenda-custom-commands (setq org-agenda-custom-commands
'(("qd" "TODO entries sort by closed time" '(("qd" "TODO entries sort by closed time"
((org-ql-block '(closed) ((org-ql-block '(closed)
((org-ql-block-header "Closed TODOs") ((org-ql-block-header "Closed TODOs")
(org-super-agenda-groups (org-super-agenda-groups
'((:auto-ts t))))))) '((:auto-ts t)))))))
("qs" "SOMEDAYs" ("qS" "SOMEDAYs"
((org-ql-block '(todo "SOMEDAY") ((org-ql-block '(todo "SOMEDAY")
((org-ql-block-header "SOMEDAYs") ((org-ql-block-header "SOMEDAYs")
(org-super-agenda-groups (org-super-agenda-groups
'((:auto-ts t))))))) '((:auto-ts t)))))))
("qS" "STARTEDs" ("qs" "STARTEDs"
((org-ql-block '(todo "STARTED") ((org-ql-block '(todo "STARTED")
((org-ql-block-header "STARTEDs") ((org-ql-block-header "STARTEDs")
(org-super-agenda-groups (org-super-agenda-groups

View File

@@ -78,7 +78,8 @@ _a_ : all dwim
(consult-jinx (consult-jinx
:type git :type git
:host github :host github
:repo "Andsy10/consult-jinx"))) :repo "Andsy10/consult-jinx"
:protocol ssh)))
;; eat终端 ;; eat终端
(unless *is-windows* (unless *is-windows*
@@ -156,13 +157,15 @@ _a_ : all dwim
(project-query-replace-regexp "Query Replace" ?R) (project-query-replace-regexp "Query Replace" ?R)
(consult-ripgrep "Ripgrep" ?r) (consult-ripgrep "Ripgrep" ?r)
(consult-project-buffer "Buffers" ?b) (consult-project-buffer "Buffers" ?b)
(project-ibuffer "Ibuffer" ?i)))))) (project-ibuffer "Ibuffer" ?i)
(opencode "OpenCode" ?a))))))
(use-package project-ibuffer (use-package project-ibuffer
:straight :straight
(project-ibuffer :type git (project-ibuffer :type git
:host github :host github
:repo "Andsy10/project-ibuffer")) :repo "Andsy10/project-ibuffer"
:protocol ssh))
;; emms ;; emms
(use-package emms (use-package emms

View File

@@ -13,7 +13,9 @@
;; 安装solarized dark ;; 安装solarized dark
(use-package solarized-theme (use-package solarized-theme
:straight :straight
'(solarized-emacs :fork (:host github :repo "Andsy10/solarized-emacs")) (solarized-emacs
:fork
(:type git :host github :repo "Andsy10/solarized-emacs" :protocol ssh))
:init :init
;; 把主题加载延迟到frame创建之后防止daemon模式下宏不能正常展开 ;; 把主题加载延迟到frame创建之后防止daemon模式下宏不能正常展开
(if (and (daemonp) (not *is-android*)) (if (and (daemonp) (not *is-android*))

View File

@@ -42,8 +42,9 @@
"Buffers\\*$" "Buffers\\*$"
"^\\*Geiser" "^\\*Geiser"
"\\*gptel-Kimi-Code\\*" "\\*gptel-Kimi-Code\\*"
"^\\*sly"
"\\*gptel-agent:.*\\*" "\\*gptel-agent:.*\\*"
"^\\*OpenCode Sessions"
"^\\*sly"
"^magit" "^magit"
"\\*discomfort\\*" "\\*discomfort\\*"
"\\*eww bookmarks\\*" "\\*eww bookmarks\\*"