~cytrogen/.emacs.d

5ef2ffca6bde1e7a3b3e998449e6848a1d05c03a — HallowDem 3 months ago 504e008
feat: 更新快捷键和 Dashboard 界面

快捷键新增:
- C-c f: 打开 elfeed (RSS 阅读器)
- C-c e: 打开 mu4e (邮件客户端)
- C-c b m: 导出月刊 (别名)
- C-c b i: 插入博客图片

Dashboard 重构:
- 分类整理快捷键速查表
- 添加 GTD 工作流程说明
- 添加博客写作流程指南
- 添加常用 M-x 命令参考
2 files changed, 101 insertions(+), 39 deletions(-)

M config/keybindings.el
M config/utils.el
M config/keybindings.el => config/keybindings.el +4 -1
@@ 25,6 25,8 @@
;; Application Shortcuts
;; Quick access to frequently used functions
(global-set-key (kbd "C-c m") 'mastodon)
(global-set-key (kbd "C-c f") 'elfeed)        ; RSS feeds
(global-set-key (kbd "C-c e") 'mu4e)          ; Email

;; File and Navigation Shortcuts
;; File operations and navigation


@@ 35,12 37,13 @@
;; Shortcuts for custom utility functions

;; Blog Workflow Shortcuts
;; Monthly blog post management
(global-set-key (kbd "C-c b c") 'my/blog-create-monthly)
(global-set-key (kbd "C-c b o") 'my/blog-open-current-monthly)
(global-set-key (kbd "C-c b e") 'my/blog-export-monthly)
(global-set-key (kbd "C-c b m") 'my/blog-export-monthly)  ; alias
(global-set-key (kbd "C-c b p") 'my/blog-export-post)
(global-set-key (kbd "C-c b n") 'my/blog-create-post-from-entry)
(global-set-key (kbd "C-c b i") 'my/blog-insert-image)

(provide 'keybindings)
;;; keybindings.el ends here
\ No newline at end of file

M config/utils.el => config/utils.el +97 -38
@@ 38,44 38,103 @@
      (let ((inhibit-read-only t))
        (erase-buffer)

	      ;; Header
        (insert "#+TITLE: Cytrogen 的个人领地\n")
        ;; Header
        (insert "#+TITLE: Emacs 使用指南\n")
        (insert "#+STARTUP: showall\n\n")

        (insert "\n")
        (insert "Welcome back, Cytrogen.\n")
        (insert "------------------------------------\n\n")
            
        ;; GTD Intro
        (insert "* GTD 工作流指南\n\n")
        (insert "1. Capture(收集): 大脑用来思考,不是用来记事的。\n")
        (insert "   任何想法、任务、灵感,第一时间通过 Capture 放入 Inbox。\n")
        (insert "   - [C-c c] 唤起 Capture 面板\n")
        (insert "   - [C-c C-c] 确认保存\n")
        (insert "   - [C-c C-k] Abort (放弃/取消)\n\n")
        
        (insert "2. Process(整理): 清空 Inbox。\n")
        (insert "   每天/每周定期检查 Inbox,将任务移动到具体的项目或归档。\n")
        (insert "   - [C-c w] Quick Refile (快速移动条目)\n\n")
        
        (insert "3. Do(执行): 专注当下。\n")
        (insert "   通过 Agenda 查看今日待办。\n")
        (insert "   - [C-c a] 打开 Agenda 视图\n\n")

        ;; Keybindings Cheatsheet
        (insert "* 常用命令\n\n")
        (insert "| 快捷键 | 描述 | 命令 |\n")
        (insert "|---|---|---|\n")
        (insert "| C-c c | 快速记录 | org-capture |\n")
        (insert "| C-c a | 日程/代办 | org-agenda |\n")
        (insert "| C-c w | 快速归档 | my/quick-refile |\n")
        (insert "| C-c o | 打开笔记 | my/open-org-file |\n")
        (insert "| C-c m | 长毛象 | mastodon |\n")
        (insert "| C-c i | 编辑配置 | my/open-init-file |\n")
        (insert "| C-c r | 重载配置 | my/reload-init-file |\n")
        
        (insert "Welcome back, Cytrogen.\n\n")

        ;; ══════════════════════════════════════════════════════════════
        ;; Quick Reference - 快捷键速查
        ;; ══════════════════════════════════════════════════════════════
        (insert "* 快捷键速查\n\n")

        (insert "** 笔记与任务 (Org-mode)\n\n")
        (insert "| 快捷键    | 功能         | 说明                           |\n")
        (insert "|-----------+--------------+--------------------------------|\n")
        (insert "| =C-c c=   | 快速记录     | 打开 Capture 面板,选择模板    |\n")
        (insert "| =C-c a=   | 日程视图     | 查看待办事项和日历             |\n")
        (insert "| =C-c w=   | 快速归档     | 将当前条目移动到指定位置       |\n")
        (insert "| =C-c o=   | 打开笔记     | 浏览并打开 Org 文件            |\n")
        (insert "| =C-c C-c= | 确认         | 在 Capture 中保存条目          |\n")
        (insert "| =C-c C-k= | 取消         | 在 Capture 中放弃当前编辑      |\n\n")

        (insert "** 博客发布\n\n")
        (insert "| 快捷键      | 功能       | 说明                           |\n")
        (insert "|-------------+------------+--------------------------------|\n")
        (insert "| =C-c b c=   | 创建月刊   | 创建新的月刊文件               |\n")
        (insert "| =C-c b o=   | 打开月刊   | 打开当前月刊                   |\n")
        (insert "| =C-c b m=   | 导出月刊   | 将当前月刊导出为 Markdown      |\n")
        (insert "| =C-c b p=   | 导出文章   | 导出 posts/ 目录下的单篇文章   |\n")
        (insert "| =C-c b n=   | 条目转文章 | 将笔记条目转为独立博客文章     |\n")
        (insert "| =C-c b i=   | 插入图片   | 插入博客图片链接               |\n\n")

        (insert "** 阅读与订阅\n\n")
        (insert "| 快捷键    | 功能       | 说明                           |\n")
        (insert "|-----------+------------+--------------------------------|\n")
        (insert "| =C-c f=   | RSS 阅读器 | 打开 elfeed 查看订阅           |\n")
        (insert "| =C-c e=   | 邮件       | 打开 mu4e 邮件客户端           |\n\n")
        (insert "OPDS 浏览器: =M-x my/opds-browse= 浏览 Calibre 书库\n\n")

        (insert "** 社交\n\n")
        (insert "| 快捷键    | 功能       | 说明                           |\n")
        (insert "|-----------+------------+--------------------------------|\n")
        (insert "| =C-c m=   | Mastodon   | 打开长毛象客户端               |\n\n")

        (insert "** 系统管理\n\n")
        (insert "| 快捷键    | 功能       | 说明                           |\n")
        (insert "|-----------+------------+--------------------------------|\n")
        (insert "| =C-c i=   | 编辑配置   | 打开 init.el 配置文件          |\n")
        (insert "| =C-c r=   | 重载配置   | 重新加载 Emacs 配置            |\n\n")

        ;; ══════════════════════════════════════════════════════════════
        ;; Workflows - 工作流程
        ;; ══════════════════════════════════════════════════════════════
        (insert "* 工作流程\n\n")

        (insert "** GTD 三步法\n\n")
        (insert "#+begin_quote\n")
        (insert "大脑用来思考,不是用来记事的。\n")
        (insert "#+end_quote\n\n")
        (insert "1. *Capture(收集)* → =C-c c=\n")
        (insert "   任何想法、任务、灵感,第一时间放入 Inbox。\n\n")
        (insert "2. *Process(整理)* → =C-c w=\n")
        (insert "   定期清空 Inbox,将条目归档到具体项目。\n\n")
        (insert "3. *Do(执行)* → =C-c a=\n")
        (insert "   通过 Agenda 查看今日待办,专注当下。\n\n")

        (insert "** 博客写作流程\n\n")
        (insert "*** 记录灵感\n")
        (insert "=C-c c= → =m= (Monthly 子菜单) → 选择分类:\n")
        (insert "- =ma= 商业与社会\n")
        (insert "- =mb= 心理与关系\n")
        (insert "- =mc= 技术与创造\n")
        (insert "- =md= 生活与文娱\n\n")

        (insert "*** 发布内容\n")
        (insert "- 月刊: 在月刊文件中按 =C-c b m= 导出\n")
        (insert "- 单篇: 在 posts/ 文章中按 =C-c b p= 导出\n")
        (insert "- 转换: 光标在条目上按 =C-c b n= 创建独立文章\n\n")

        ;; ══════════════════════════════════════════════════════════════
        ;; Useful Commands - 常用命令
        ;; ══════════════════════════════════════════════════════════════
        (insert "* 常用命令 (M-x)\n\n")
        (insert "** 博客\n")
        (insert "- =my/blog-create-monthly= - 创建新月刊\n")
        (insert "- =my/blog-open-current-monthly= - 打开当前月刊\n\n")
        (insert "** 阅读\n")
        (insert "- =my/opds-browse= - 浏览 Calibre OPDS 书库\n")
        (insert "- =elfeed-update= - 更新 RSS 订阅\n\n")
        (insert "** 系统\n")
        (insert "- =my/show-dashboard= - 显示此帮助页面\n")
        (insert "- =my/reload-org-structure= - 重载 Org 结构配置\n")
        (insert "- =my/check-gpg-status= - 检查 GPG 状态\n")
        (insert "- =my/fix-epa-issues= - 修复 GPG/EPA 问题\n\n")

        ;; Footer
        (insert "\n「保持简单,保持流动。」\n")
        (insert "-----\n")
        (insert "/保持简单,保持流动。/\n")

        (org-mode)
        (when (fboundp 'my/org-mode-visual-setup)


@@ 88,14 147,14 @@
          (forward-line 1))))

    (switch-to-buffer buf)
    

    ;; 延迟定位到第一行可见内容
    (run-with-idle-timer 0.1 nil 
    (run-with-idle-timer 0.1 nil
      (lambda ()
        (when (and (get-buffer "*Cytrogen's Home*")
                   (string= (buffer-name (current-buffer)) "*Cytrogen's Home*"))
          (goto-char (point-min))
          (while (and (not (eobp)) 
          (while (and (not (eobp))
                      (get-char-property (point) 'invisible))
            (forward-line 1)))))))