refactor: moved org-agent to its own repository as a submodule
This commit is contained in:
21
projects/dotemacs/modules/emacs-ai.org
Normal file
21
projects/dotemacs/modules/emacs-ai.org
Normal file
@@ -0,0 +1,21 @@
|
||||
#+TITLE: Emacs AI Configuration
|
||||
#+property: header-args :tangle ~/.emacs.d/modules/ai.el
|
||||
|
||||
* ellama
|
||||
#+begin_src elisp
|
||||
(use-package ellama
|
||||
:ensure t
|
||||
:bind ("C-c e" . ellama)
|
||||
:hook (org-ctrl-c-ctrl-c-final . ellama-chat-send-last-message)
|
||||
:init (setopt ellama-auto-scroll t)
|
||||
:config
|
||||
(ellama-context-header-line-global-mode +1)
|
||||
(ellama-session-header-line-global-mode +1)
|
||||
)
|
||||
#+end_src
|
||||
|
||||
* Providers
|
||||
#+begin_src elisp
|
||||
(setq llm-debug t)
|
||||
;; Note: API keys should be handled via auth-source as seen in original config
|
||||
#+end_src
|
||||
55
projects/dotemacs/modules/emacs-core.org
Normal file
55
projects/dotemacs/modules/emacs-core.org
Normal file
@@ -0,0 +1,55 @@
|
||||
#+TITLE: Emacs Core Configuration
|
||||
#+property: header-args :tangle ~/.emacs.d/modules/core.el
|
||||
|
||||
* early-init.el
|
||||
For straight.el to pick up before package.el
|
||||
|
||||
#+begin_src elisp :tangle ~/.emacs.d/early-init.el
|
||||
(setq package-enable-at-startup nil)
|
||||
#+end_src
|
||||
|
||||
* Straight.el Bootstrap
|
||||
#+begin_src elisp :tangle ~/.emacs
|
||||
(setq straight-repository-branch "develop")
|
||||
(eval-and-compile
|
||||
(defvar bootstrap-version)
|
||||
(let ((bootstrap-file
|
||||
(expand-file-name "straight/repos/straight.el/bootstrap.el"
|
||||
(or (bound-and-true-p straight-base-dir)
|
||||
user-emacs-directory)))
|
||||
(bootstrap-version 7))
|
||||
(unless (file-exists-p bootstrap-file)
|
||||
(with-current-buffer
|
||||
(url-retrieve-synchronously "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el" 'silent 'inhibit-cookies)
|
||||
(goto-char (point-max))
|
||||
(eval-print-last-sexp)))
|
||||
(load bootstrap-file nil 'nomessage))
|
||||
|
||||
(straight-use-package 'use-package)
|
||||
)
|
||||
(setq straight-use-package-by-default t)
|
||||
#+end_src
|
||||
|
||||
* Server and Performance
|
||||
#+begin_src elisp :tangle ~/.emacs.d/early-init.el
|
||||
(require 'server)
|
||||
(unless (server-running-p) (server-start))
|
||||
(defvar server-max-buffers 100)
|
||||
#+end_src
|
||||
|
||||
#+begin_src elisp
|
||||
(setq gc-cons-threshold (* 500 1024 1024))
|
||||
(add-hook 'after-init-hook (lambda () (setq gc-cons-threshold (* 5 1024 1024))))
|
||||
#+end_src
|
||||
|
||||
* System Information
|
||||
#+begin_src elisp :tangle ~/.emacs.d/custom.el
|
||||
(defvar my-laptop-p (equal (system-name) "lilitop"))
|
||||
(defvar my-server-p (and (equal (system-name) "localhost") (equal user-login-name "root")))
|
||||
(defvar my-phone-p (not (null (getenv "ANDROID_ROOT")))
|
||||
"If non-nil, GNU Emacs is running on Termux.")
|
||||
(when my-phone-p (defvar gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3"))
|
||||
(global-auto-revert-mode)
|
||||
(savehist-mode)
|
||||
(desktop-save-mode t)
|
||||
#+end_src
|
||||
48
projects/dotemacs/modules/emacs-gtd.org
Normal file
48
projects/dotemacs/modules/emacs-gtd.org
Normal file
@@ -0,0 +1,48 @@
|
||||
#+TITLE: Emacs GTD Configuration
|
||||
#+property: header-args :tangle ~/.emacs.d/modules/gtd.el
|
||||
|
||||
* org-gtd
|
||||
#+begin_src elisp
|
||||
(use-package org-gtd
|
||||
:defer t
|
||||
:init (setq org-gtd-update-ack "3.0.0")
|
||||
:after org
|
||||
:config
|
||||
(setq org-edna-use-inheritance t)
|
||||
(org-edna-mode)
|
||||
:bind (
|
||||
("C-c d c" . org-gtd-capture)
|
||||
("C-c d e" . org-gtd-engage)
|
||||
("C-c d p" . org-gtd-process-inbox)
|
||||
:map org-gtd-clarify-map
|
||||
("C-c c" . org-gtd-organize)
|
||||
)
|
||||
)
|
||||
#+end_src
|
||||
|
||||
* GTD Directory and Areas
|
||||
#+begin_src elisp
|
||||
(defvar org-gtd-directory org-directory)
|
||||
(defvar org-gtd-organize-hooks '(org-gtd-set-area-of-focus))
|
||||
(defvar org-gtd-areas-of-focus '(
|
||||
"Atoms"
|
||||
"Bits"
|
||||
"Cells"
|
||||
"Flags"
|
||||
"Business"
|
||||
"Wealth"
|
||||
"Learning"
|
||||
"Skills"
|
||||
"Privacy"
|
||||
"Archive"
|
||||
"Library"
|
||||
"Writing"
|
||||
"Health"
|
||||
"Home"
|
||||
"Family"
|
||||
"Social"
|
||||
"Egypt"
|
||||
)
|
||||
)
|
||||
(defvar org-gtd-clarify-show-horizons 'right)
|
||||
#+end_src
|
||||
39
projects/dotemacs/modules/emacs-media.org
Normal file
39
projects/dotemacs/modules/emacs-media.org
Normal file
@@ -0,0 +1,39 @@
|
||||
#+TITLE: Emacs Media and E-books Configuration
|
||||
#+property: header-args :tangle ~/.emacs.d/modules/media.el
|
||||
|
||||
* calibredb
|
||||
#+begin_src elisp
|
||||
(use-package calibredb
|
||||
:defer t
|
||||
:config
|
||||
(setq calibredb-format-all-the-icons t)
|
||||
(setq calibredb-format-icons-in-terminal t)
|
||||
)
|
||||
|
||||
(defvar calibredb-root-dir (concat (getenv "HOME") "/library/books"))
|
||||
(defvar calibredb-db-dir (expand-file-name "metadata.db" calibredb-root-dir))
|
||||
(defvar calibredb-id-width 6)
|
||||
(defvar calibredb-title-width 100)
|
||||
(defvar calibredb-author-width 20)
|
||||
#+end_src
|
||||
|
||||
* nov.el (EPUB Viewer)
|
||||
#+begin_src elisp
|
||||
(use-package nov
|
||||
:config
|
||||
(add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode))
|
||||
)
|
||||
#+end_src
|
||||
|
||||
* org-noter and PDF Tools
|
||||
#+begin_src elisp
|
||||
(use-package org-noter)
|
||||
|
||||
(use-package org-noter-pdftools
|
||||
:after org-noter
|
||||
:config
|
||||
(with-eval-after-load 'pdf-annot
|
||||
(add-hook 'pdf-annot-activate-handler-functions #'org-noter-pdftools-jump-to-note)
|
||||
)
|
||||
)
|
||||
#+end_src
|
||||
69
projects/dotemacs/modules/emacs-org.org
Normal file
69
projects/dotemacs/modules/emacs-org.org
Normal file
@@ -0,0 +1,69 @@
|
||||
#+TITLE: Emacs Org-mode Configuration
|
||||
#+property: header-args :tangle ~/.emacs.d/modules/org.el
|
||||
|
||||
* Core Org Setup
|
||||
#+begin_src elisp
|
||||
(use-package org
|
||||
:config
|
||||
(defvar org-outline-path-complete-in-steps nil)
|
||||
:bind (("C-c l" . org-store-link)
|
||||
("C-c a" . org-agenda)
|
||||
("C-c c" . org-capture)
|
||||
:map org-mode-map)
|
||||
)
|
||||
(defvar org-directory (concat (getenv "HOME") "/org/"))
|
||||
#+end_src
|
||||
|
||||
* Agenda
|
||||
#+begin_src elisp
|
||||
(setq org-deadline-warning-days 7)
|
||||
(setq org-agenda-skip-additional-timestamps-same-entry t)
|
||||
(setq org-agenda-span 'fortnight)
|
||||
(setq org-agenda-tags-column 'auto)
|
||||
(setq org-agenda-skip-scheduled-if-deadline-is-shown t)
|
||||
(setq org-agenda-files (list
|
||||
(concat org-directory "/0_inbox/inbox.org")
|
||||
(concat org-directory "/0_inbox/org-gtd-tasks.org")
|
||||
)
|
||||
)
|
||||
#+end_src
|
||||
|
||||
* Capture and Protocol
|
||||
#+begin_src elisp
|
||||
(require 'org-protocol)
|
||||
(setq org-protocol-default-buffer-for-file-links "*scratch*")
|
||||
(defvar org-default-notes-file (concat org-directory "/0_inbox/inbox.org"))
|
||||
(setq org-protocol-default-template-key "L")
|
||||
#+end_src
|
||||
|
||||
#+begin_src elisp :tangle ~/.emacs.d/custom.el
|
||||
(defvar org-capture-templates '(
|
||||
("p" "Protocol"
|
||||
entry
|
||||
(file "0_inbox/inbox.org")
|
||||
"* %^{Title}\nSource: %u, %c\n #+BEGIN_QUOTE\n%i\n#+END_QUOTE\n\n\n%?"
|
||||
)
|
||||
("L" "Protocol Link"
|
||||
entry
|
||||
(file "0_inbox/inbox.org")
|
||||
"* %? [[%:link][%:description]]\n:PROPERTIES:\n:TITLE: %:description\n:URI: %:link\n:CREATED: %U\n:END:"
|
||||
:prepend nil
|
||||
:empty-lines 1
|
||||
:created t
|
||||
:kill-buffer t
|
||||
)
|
||||
)
|
||||
)
|
||||
#+end_src
|
||||
|
||||
* TODO Settings
|
||||
#+begin_src elisp
|
||||
(setq org-todo-keywords
|
||||
'(
|
||||
(sequence "TODO(t)" "NEXT(n)" "|" "DONE(d!)")
|
||||
(sequence "WAIT(w@/!)" "|" "CNCL(c@)")
|
||||
)
|
||||
)
|
||||
(setq org-enforce-todo-dependencies t)
|
||||
(setq org-log-into-drawer "LOGBOOK")
|
||||
#+end_src
|
||||
77
projects/dotemacs/modules/emacs-roam.org
Normal file
77
projects/dotemacs/modules/emacs-roam.org
Normal file
@@ -0,0 +1,77 @@
|
||||
#+TITLE: Emacs Org-roam Configuration
|
||||
#+property: header-args :tangle ~/.emacs.d/modules/roam.el
|
||||
|
||||
* org-roam Setup
|
||||
#+begin_src elisp
|
||||
(use-package org-roam
|
||||
:init (setq org-roam-v2-ack t)
|
||||
:after org
|
||||
:config
|
||||
(org-roam-db-autosync-enable)
|
||||
(require 'org-roam-dailies)
|
||||
(setq org-roam-mode-sections
|
||||
(list #'org-roam-backlinks-section
|
||||
#'org-roam-reflinks-section
|
||||
#'org-roam-unlinked-references-section
|
||||
)
|
||||
)
|
||||
:bind (
|
||||
("C-c n f" . org-roam-node-find)
|
||||
("C-c n g" . org-roam-graph)
|
||||
("C-c n r" . org-roam-node-random)
|
||||
("C-c n h" . org-roam-node-convert-headline)
|
||||
("C-c n i" . org-roam-node-insert)
|
||||
("C-c n o" . org-id-get-create)
|
||||
("C-c n t" . org-roam-tag-add)
|
||||
("C-c n a" . org-roam-alias-add)
|
||||
("C-c n l" . org-roam-buffer-display-dedicated)
|
||||
)
|
||||
)
|
||||
#+end_src
|
||||
|
||||
* Directories
|
||||
#+begin_src elisp
|
||||
(setq org-roam-directory (concat org-directory "/1_thinking"))
|
||||
(setq org-roam-dailies-directory (concat org-directory "/0_inbox/daily"))
|
||||
(setq org-roam-file-exclude-regexp "^[.][.]?/")
|
||||
#+end_src
|
||||
|
||||
* Capture Templates
|
||||
#+begin_src elisp
|
||||
(setq org-roam-capture-templates
|
||||
'(
|
||||
("L" "link" plain
|
||||
(function org-roam--capture-get-point)
|
||||
"%?"
|
||||
:file-name "web/%<%Y-%m-%dT%H%M%S>.org"
|
||||
:head "#+TITLE: ${title}\n#+CREATED: %<%Y-%m-%dT%H%M%S>"
|
||||
:immediate-finish t
|
||||
:unnarrowed t
|
||||
)
|
||||
("h" "hugo post" plain
|
||||
"%?"
|
||||
:target (file+head "posts/${slug}.org"
|
||||
"#+TITLE: ${title}\n#+DATE: %U\n#+HUGO_BASE_DIR: ~/gharbeia.net\n#+HUGO_SECTION: ./posts\n#+HUGO_AUTO_SET_LASTMOD: t\n#+HUGO_TAGS: article\n#+HUGO_DRAFT: true\n")
|
||||
:immediate-finish t
|
||||
:unnarrowed t
|
||||
)
|
||||
("p" "person" plain
|
||||
"%?"
|
||||
:if-new (file+head "people/${slug}.org"
|
||||
"#+TITLE: ${title}")
|
||||
:immediate-finish t
|
||||
:unnarrowed t
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(setq org-roam-dailies-capture-templates
|
||||
'(
|
||||
("d" "daily" plain
|
||||
""
|
||||
:target ("file+heaed %<%Y-%m-%d>.org" "#+title: %<%Y-%m-%d>\n\n")
|
||||
:immediate-finish t
|
||||
)
|
||||
)
|
||||
)
|
||||
#+end_src
|
||||
18
projects/dotemacs/modules/emacs-shell.org
Normal file
18
projects/dotemacs/modules/emacs-shell.org
Normal file
@@ -0,0 +1,18 @@
|
||||
#+TITLE: Emacs Shell Configuration
|
||||
#+property: header-args :tangle ~/.emacs.d/modules/shell.el
|
||||
|
||||
* Bash Completion
|
||||
#+begin_src elisp
|
||||
(use-package bash-completion
|
||||
:config
|
||||
(require 'bash-completion)
|
||||
(bash-completion-setup)
|
||||
)
|
||||
|
||||
(defvar shell-dynamic-complete-functions t)
|
||||
#+end_src
|
||||
|
||||
* Frame Management
|
||||
#+begin_src elisp
|
||||
(add-hook 'server-done-hook (lambda () (delete-frame)))
|
||||
#+end_src
|
||||
59
projects/dotemacs/modules/emacs-ui.org
Normal file
59
projects/dotemacs/modules/emacs-ui.org
Normal file
@@ -0,0 +1,59 @@
|
||||
#+TITLE: Emacs UI Configuration
|
||||
#+property: header-args :tangle ~/.emacs.d/modules/ui.el
|
||||
|
||||
* Appearance
|
||||
#+begin_src elisp
|
||||
(defvar org-pretty-entities t) ; Improve org mode looks
|
||||
(defvar org-hide-emphasis-markers t) ; Hide emphasis markup
|
||||
(defvar org-num-mode nil)
|
||||
(defvar org-startup-folded 'shw2levels)
|
||||
(defvar org-startup-indented t) ; Indent org heirarchy
|
||||
(defvar org-adapt-indentation t)
|
||||
(defvar org-hide-leading-stars t) ; Minimal Outline
|
||||
(defvar org-odd-levels-only nil)
|
||||
#+end_src
|
||||
|
||||
* Org-modern
|
||||
#+begin_src elisp
|
||||
(use-package org-modern
|
||||
:ensure t
|
||||
:config
|
||||
;; Choose some fonts
|
||||
(set-face-attribute 'default nil :family "sans-serif")
|
||||
(set-face-attribute 'variable-pitch nil :family "sans-serif")
|
||||
(set-face-attribute 'org-modern-symbol nil :family "Iosevka")
|
||||
|
||||
;; Edit settings
|
||||
(defvar org-auto-align-tags nil)
|
||||
(defvar org-tags-column 0)
|
||||
(defvar org-catch-invisible-edits 'show-and-error)
|
||||
(defvar org-special-ctrl-a/e t)
|
||||
(defvar org-insert-heading-respect-content t)
|
||||
|
||||
;; Org styling, hide markup etc.
|
||||
(defvar org-hide-emphasis-markers t)
|
||||
(defvar org-pretty-entities t)
|
||||
|
||||
;; Agenda styling
|
||||
(defvar org-agenda-tags-column 0)
|
||||
(defvar org-agenda-block-separator ?─)
|
||||
(defvar org-agenda-time-grid
|
||||
'((daily today require-timed)
|
||||
(800 1000 1200 1400 1600 1800 2000)
|
||||
" ┄┄┄┄┄ " "┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄"))
|
||||
(defvar org-agenda-current-time-string
|
||||
"◀── now ─────────────────────────────────────────────────")
|
||||
|
||||
;; Ellipsis styling
|
||||
(defvar org-ellipsis "…")
|
||||
(set-face-attribute 'org-ellipsis nil :inherit 'default :box nil)
|
||||
|
||||
(global-org-modern-mode)
|
||||
)
|
||||
#+end_src
|
||||
|
||||
* Syntax Highlighting
|
||||
#+begin_src elisp
|
||||
(setq org-src-fontify-natively t)
|
||||
(setq org-src-tab-acts-natively t)
|
||||
#+end_src
|
||||
48
projects/dotemacs/modules/emacs-writing.org
Normal file
48
projects/dotemacs/modules/emacs-writing.org
Normal file
@@ -0,0 +1,48 @@
|
||||
#+TITLE: Emacs Writing Configuration
|
||||
#+property: header-args :tangle ~/.emacs.d/modules/writing.el
|
||||
|
||||
* Spell Checking
|
||||
#+begin_src elisp
|
||||
(use-package flyspell
|
||||
:config (setq ispell-program-name "hunspell"
|
||||
ispell-default-dictionary "en_US"
|
||||
)
|
||||
:diminish (flyspell-mode . "φ")
|
||||
:hook (text-mode . flyspell-mode)
|
||||
:bind (
|
||||
("M-<f7>" . flyspell-buffer)
|
||||
("<f7>" . flyspell-word)
|
||||
("C-;" . flyspell-auto-correct-previous-word)
|
||||
)
|
||||
)
|
||||
#+end_src
|
||||
|
||||
* Syntax Checking
|
||||
#+begin_src elisp
|
||||
(use-package flycheck
|
||||
:init (global-flycheck-mode)
|
||||
:diminish (flycheck-mode . "")
|
||||
:config
|
||||
(add-hook 'after-init-hook #'global-flycheck-mode)
|
||||
(setq flycheck-emacs-lisp-load-path 'inherit)
|
||||
(setq flycheck-emacs-lisp-load-path (concat user-emacs-directory "straight/build"))
|
||||
)
|
||||
#+end_src
|
||||
|
||||
* Text Manipulation
|
||||
#+begin_src elisp
|
||||
(subword-mode)
|
||||
(setq sentence-end-double-space nil)
|
||||
|
||||
(defun my/fill-or-unfill-paragraph (&optional unfill region)
|
||||
"Fill paragraph (or REGION). With the prefix argument UNFILL, fill it instead."
|
||||
(interactive (progn
|
||||
(barf-if-buffer-read-only)
|
||||
(list (if current-prefix-arg 'fill) t)))
|
||||
(let ((fill-column (if unfill fill-column (point-max))))
|
||||
(fill-paragraph nil region)))
|
||||
|
||||
(bind-key "M-q" 'my/fill-or-unfill-paragraph)
|
||||
|
||||
(add-hook 'text-mode-hook 'turn-on-visual-line-mode)
|
||||
#+end_src
|
||||
Reference in New Issue
Block a user