making everything configurable, and turned off by default

This commit is contained in:
Mike 'Fuzzy' Partin 2024-07-06 08:43:51 -07:00
parent 46f7a9350a
commit 91215a0ae3
13 changed files with 502 additions and 194 deletions

View File

@ -40,3 +40,8 @@
;; Set up straight.el to use use-package ;; Set up straight.el to use use-package
(straight-use-package 'use-package) (straight-use-package 'use-package)
(defun thwap/add-key-binding (key command help-text)
"Add a key binding to the T.H.W.A.P. keymap"
(define-key thwap-map (kbd key) command)
(add-to-list 'thwap-help-lines (format "%-12s: %s" (concat "C-c t " key) help-text)))

26
init.el
View File

@ -4,7 +4,10 @@
;; If you edit it by hand, you could mess it up, so be careful. ;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance. ;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right. ;; If there is more than one, they won't work right.
'(tool-bar-mode nil)) '(terraform-format-on-save t)
'(terraform-indent-level 2)
'(tool-bar-mode nil)
'(visible-bell 1))
(custom-set-faces (custom-set-faces
;; custom-set-faces was added by Custom. ;; custom-set-faces was added by Custom.
@ -13,25 +16,8 @@
;; If there is more than one, they won't work right. ;; If there is more than one, they won't work right.
'(default ((t (:family "Noto Sans Mono" :foundry "GOOG" :slant normal :weight regular :height 90 :width normal))))) '(default ((t (:family "Noto Sans Mono" :foundry "GOOG" :slant normal :weight regular :height 90 :width normal)))))
(global-auto-revert-mode t) ;; thwap config
(global-display-line-numbers-mode 1) (require 'thwap-config)
(setq warning-minimum-level :error)
(setq-default tab-width 2
mode-line-format
'("%e"
mode-line-buffer-identification " "
mode-line-modified " "
mode-line-frame-identification " "
mode-line-mode))
(setq tab-width 2)
(setq indent-tabs-mode 1)
;; Set the default help lines
(setq thwap-help-lines '("--------------"
"All T.H.W.A.P. commands will start with 'C-c t'"
""
"Welcome to the T.H.W.A.P. Emacs Dashboard"))
;; thwap defaults ;; thwap defaults
(require 'thwap-defaults) (require 'thwap-defaults)
;; theme configuration ;; theme configuration

View File

@ -1,5 +1,18 @@
(straight-use-package 'company) ;; Company and auto-complete configuration
(add-hook 'after-init-hook 'global-company-mode) (when (and thwap-comp-enable-company (not thwap-comp-enable-auto-complete))
(straight-use-package 'company)
(add-hook 'after-init-hook 'global-company-mode))
;; If auto-complete is enabled, enable it
(when (and thwap-comp-enable-auto-complete (not thwap-comp-enable-company))
(straight-use-package 'auto-complete)
(ac-config-default))
;; If both are enabled, disable auto-complete
(when (and thwap-comp-enable-auto-complete thwap-comp-enable-company)
(message "Both company and auto-complete are enabled. These are mutually exclusive. Disabling auto-complete.")
(straight-use-package 'company)
(add-hook 'after-init-hook 'global-company-mode))
(provide 'thwap-co) (provide 'thwap-co)

194
lib/thwap-config.el Normal file
View File

@ -0,0 +1,194 @@
;;
;; Define the custom variables for the T.H.W.A.P. Emacs configuration.
;;
;; define the group
(defgroup thwap-config-group nil
"T.H.W.A.P. Emacs configuration group."
:group 'convenience
:prefix "thwap-")
;;
;; Theme and appearance settings
;;
;; modus themes toggle
(defcustom thwap-ui-enable-modus-themes nil
"Whether or not to install the modus themes."
:type 'boolean
:group 'thwap-config-group)
;; doom themes toggle
(defcustom thwap-ui-enable-doom-themes nil
"Whether or not to install the doom themes."
:type 'boolean
:group 'thwap-config-group)
;; sublime themes toggle
(defcustom thwap-ui-enable-sublime-themes nil
"Whether or not to install the sublime themes."
:type 'boolean
:group 'thwap-config-group)
;; kaolin themes toggle
(defcustom thwap-ui-enable-kaolin-themes nil
"Whether or not to install the kaolin themes."
:type 'boolean
:group 'thwap-config-group)
;; alect themes toggle
(defcustom thwap-ui-enable-alect-themes nil
"Whether or not to install the alect themes."
:type 'boolean
:group 'thwap-config-group)
;; theme to load
(defcustom thwap-ui-theme 'wombat ;; 'modus-vivendi-tinted
"Name of the theme to load."
:type 'string
:group 'thwap-config-group)
;; all-the-icons toggle
(defcustom thwap-ui-enable-all-the-icons nil
"Whether or not to enable all-the-icons."
:type 'boolean
:group 'thwap-config-group)
;; nerd-icons toggle
(defcustom thwap-ui-enable-nerd-icons nil
"Whether or not to enable nerd-icons."
:type 'boolean
:group 'thwap-config-group)
;;
;; Tree browser packages
;;
;; treemacs toggle
(defcustom thwap-fm-enable-treemacs nil
"Whether or not to enable treemacs."
:type 'boolean
:group 'thwap-config-group)
;; neotree toggle
(defcustom thwap-fm-enable-neotree nil
"Whether or not to enable neotree."
:type 'boolean'
:group 'thwap-config-group)
;;
;; Completion packages
;;
;; company toggle
(defcustom thwap-comp-enable-company nil
"Whether or not to enable company."
:type 'boolean
:group 'thwap-config-group)
;; auto-complete toggle
(defcustom thwap-comp-enable-auto-complete nil
"Whether or not to enable auto-complete."
:type 'boolean
:group 'thwap-config-group)
;;
;; Language server packages
;;
;; lsp toggle
(defcustom thwap-comp-enable-lsp nil
"Whether or not to enable lsp."
:type 'boolean
:group 'thwap-config-group)
;;
;; development assistance packages
;;
;; projectile toggle
(defcustom thwap-dev-enable-projectile nil
"Whether or not to enable projectile."
:type 'boolean
:group 'thwap-config-group)
;; magit toggle
(defcustom thwap-dev-enable-magit nil
"Whether or not to enable magit."
:type 'boolean
:group 'thwap-config-group)
;;
;; Org mode settings
;;
(defcustom thwap-org-enable-org nil
"Whether or not to enable org-mode."
:type 'boolean
:group 'thwap-config-group)
(defcustom thwap-org-enable-org-bullets nil
"Whether or not to enable org-bullets."
:type 'boolean
:group 'thwap-config-group)
(defcustom thwap-org-enable-org-super-agenda nil
"Whether or not to enable org-super-agenda."
:type 'boolean
:group 'thwap-config-group)
(defcustom thwap-org-enable-org-modern nil
"Whether or not to enable org-modern."
:type 'boolean
:group 'thwap-config-group)
(defcustom thwap-org-enable-org-timeblock nil
"Whether or not to enable org-timeblock."
:type 'boolean
:group 'thwap-config-group)
(defcustom thwap-org-enable-org-download nil
"Whether or not to enable org-download."
:type 'boolean
:group 'thwap-config-group)
(defcustom thwap-org-enable-org-roam nil
"Whether or not to enable org-roam."
:type 'boolean
:group 'thwap-config-group)
(defcustom thwap-org-enable-org-roam-ui nil
"Whether or not to enable org-roam-ui."
:type 'boolean
:group 'thwap-config-group)
(defcustom thwap-org-enable-ob-mermaid nil
"Whether or not to enable ob-mermaid."
:type 'boolean
:group 'thwap-config-group)
(defcustom thwap-org-enable-org-transclusion nil
"Whether or not to enable org-transclusion."
:type 'boolean
:group 'thwap-config-group)
;;
;; Example usage
;;
;; Example usage
(defun my-custom-function ()
"Function that uses the custom variables."
(message "Custom variable 1: %s" thwap-config-enable-modus-themes)
(message "Custom variable 2: %s" thwap-config-theme)
(message "Custom variable 3: %s" thwap-config-enable-alltheicons))
;; our provide statement
(provide 'thwap-config)

View File

@ -34,9 +34,7 @@
(setq dashboard-center-content t) (setq dashboard-center-content t)
(setq dashboard-vertically-center-content t) (setq dashboard-vertically-center-content t)
(setq dashboard-show-shortcuts t) (setq dashboard-show-shortcuts t)
(setq dashboard-items '((recents . 7) (setq dashboard-items '((agenda . 7)))
(projects . 7)
(agenda . 7)))
(setq dashboard-startupify-list '(dashboard-insert-banner (setq dashboard-startupify-list '(dashboard-insert-banner
dashboard-insert-newline dashboard-insert-newline
dashboard-insert-banner-title dashboard-insert-banner-title

View File

@ -1,21 +1,56 @@
;;
;; Set some defaults
;;
;; automatically revert buffers when they change on disk
(global-auto-revert-mode t)
;; display line numbers, TODO make this a config option for line number style
(global-display-line-numbers-mode 1)
;; set our default warning level to error
(setq warning-minimum-level :error)
;; set the default tab width to 2 spaces
(setq-default tab-width 2)
(setq tab-width 2)
(setq indent-tabs-mode 1)
;; Set the default help lines
(setq thwap-help-lines '("--------------"
"All T.H.W.A.P. commands will start with 'C-c t'"
""
"Welcome to the T.H.W.A.P. Emacs Dashboard"))
;;
;; Golden Ratio Mode helps with window sizing, and is a default feature
;;
;; golden-ratio ;; golden-ratio
(straight-use-package 'golden-ratio) (straight-use-package 'golden-ratio)
(golden-ratio-mode 1) (golden-ratio-mode 1)
(setq golden-ratio-auto-scale t) (setq golden-ratio-auto-scale t)
;;
;; Set up the T.H.W.A.P. keybindings
;;
;; The T.H.W.A.P. Map ;; The T.H.W.A.P. Map
;; This is the base starting point for the T.H.W.A.P. keybindings ;; This is the base starting point for the T.H.W.A.P. keybindings
(define-prefix-command 'thwap-map) (define-prefix-command 'thwap-map)
(global-set-key (kbd "C-c t") 'thwap-map) (global-set-key (kbd "C-c t") 'thwap-map)
;; General emacs stuff ;; Add a command to customize the T.H.W.A.P. group
(define-key thwap-map (kbd "C-c") (lambda () (interactive) (customize-group 'thwap-config-group)))
(add-to-list 'thwap-help-lines "C-c t C-c : Customize this T.H.W.A.P. Emacs Installation")
;; quick commenting/uncommenting of a region is just too useful
(define-key thwap-map (kbd "c") 'comment-or-uncomment-region) (define-key thwap-map (kbd "c") 'comment-or-uncomment-region)
(add-to-list 'thwap-help-lines "C-c t c : Comment or uncomment region") (add-to-list 'thwap-help-lines "C-c t c : Comment or uncomment region")
;; eval buffer is also very useful
(define-key thwap-map (kbd "e b") 'eval-buffer) (define-key thwap-map (kbd "e b") 'eval-buffer)
(add-to-list 'thwap-help-lines "C-c t e b : Eval buffer") (add-to-list 'thwap-help-lines "C-c t e b : Eval buffer")
;; our provide statement
(provide 'thwap-defaults) (provide 'thwap-defaults)

View File

@ -1,14 +1,41 @@
(use-package all-the-icons
:ensure t
:straight t)
;; :if (display-graphic-p))
(use-package all-the-icons-completion (when (and thwap-ui-enable-all-the-icons (not thwap-ui-enable-nerd-icons))
:ensure t (use-package all-the-icons
:straight t :ensure t
:defer :straight t
;; :if (display-graphic-p) :hook (dired-mode . all-the-icons-dired-mode))
:init (use-package all-the-icons-completion
(all-the-icons-completion-mode 1)) :ensure t
:straight t
:defer
:init
(all-the-icons-completion-mode 1)))
(when (and thwap-ui-enable-nerd-icons (not thwap-ui-enable-all-the-icons))
(use-package nerd-icons
:straight (nerd-icons
:type git
:host github
:repo "rainstormstudio/nerd-icons.el"
:files (:defaults "data"))
:custom
;; The Nerd Font you want to use in GUI
;; "Symbols Nerd Font Mono" is the default and is recommended
;; but you can use any other Nerd Font if you want
(nerd-icons-font-family "Symbols Nerd Font Mono")
))
(when (and thwap-ui-enable-nerd-icons thwap-ui-enable-all-the-icons)
(message "Both all-the-icons and nerd-icons are enabled. Disabling nerd-icons.")
(use-package all-the-icons-dired
:ensure t
:straight t
:hook (dired-mode . all-the-icons-dired-mode))
(use-package all-the-icons-completion
:ensure t
:straight t
:defer
:init
(all-the-icons-completion-mode 1)))
(provide 'thwap-icons) (provide 'thwap-icons)

View File

@ -1,11 +1,11 @@
(straight-use-package 'lsp-mode) (when thwap-comp-enable-lsp
(straight-use-package 'lsp-mode)
(setq gc-cons-threshold 100000000) (straight-use-package 'lsp-ui)
(setq read-process-output-max (* 1024 1024)) (straight-use-package 'lsp-treemacs)
(setq gc-cons-threshold 100000000)
(define-key thwap-map (kbd "l") 'lsp-keymap-prefix) (setq read-process-output-max (* 1024 1024))
(add-to-list 'thwap-help-lines "C-c t l : lsp-keymap-prefix") (define-key thwap-map (kbd "l") 'lsp-keymap-prefix)
;; (lsp-enable-which-key-integration t) (add-to-list 'thwap-help-lines "C-c t l : lsp-keymap-prefix"))
(provide 'thwap-lsp) (provide 'thwap-lsp)

View File

@ -1,14 +1,9 @@
(straight-use-package 'magit) (when thwap-dev-enable-magit
(straight-use-package 'magit)
;; Enable magit forge (straight-use-package 'forge)
(straight-use-package 'forge) (straight-use-package 'magit-todos)
(define-key thwap-map (kbd "g s") 'magit-status)
;; Enable magit-todos (add-to-list 'thwap-help-lines "C-c t g s : magit-status"))
(straight-use-package 'magit-todos)
;; Magit stuff
(define-key thwap-map (kbd "g s") 'magit-status)
(add-to-list 'thwap-help-lines "C-c t g s : magit-status")
(provide 'thwap-magit) (provide 'thwap-magit)

View File

@ -1,30 +1,37 @@
(use-package neotree
:demand t
:straight t
:config
(global-set-key [f8] 'neotree-toggle))
(define-key thwap-map (kbd "C-n") 'neotree-toggle) (when (and thwap-fm-enable-neotree (not thwap-fm-enable-treemacs))
(add-to-list 'thwap-help-lines "C-c t C-n : Toggle Neotree") (use-package neotree
:straight t
:config
(global-set-key [f8] 'neotree-toggle)
(define-key thwap-map (kbd "C-n") 'neotree-toggle)
(add-to-list 'thwap-help-lines "C-c t C-n : Toggle Neotree")))
;; (use-package treemacs
;; :straight t (when (and thwap-fm-enable-treemacs (not thwap-fm-enable-neotree))
;; :ensure t (use-package treemacs
;; :demand t :straight t
;; :config :ensure t
;; (global-set-key [f8] 'treemacs) :demand t
;; (progn :config
;; (setq treemacs-follow-after-init t (global-set-key [f8] 'treemacs)
;; treemacs-width 35 (progn
;; treemacs-indentation 2 (setq treemacs-follow-after-init t
;; treemacs-git-integration t treemacs-width 35
;; treemacs-collapse-dirs 3 treemacs-indentation 2
;; treemacs-silent-refresh t treemacs-git-integration t
;; treemacs-change-root-without-asking t treemacs-collapse-dirs 3
;; treemacs-sorting 'alphabetic-desc treemacs-silent-refresh t
;; treemacs-show-hidden-files t treemacs-change-root-without-asking t
;; treemacs-never-persist nil treemacs-sorting 'alphabetic-desc
;; treemacs-is-never-other-window t treemacs-show-hidden-files t
;; treemacs-goto-tag-strategy 'refetch-index))) treemacs-never-persist nil
treemacs-is-never-other-window t
treemacs-goto-tag-strategy 'refetch-index)))
(define-key thwap-map (kbd "C-n") 'treemacs)
(add-to-list 'thwap-help-lines "C-c t C-n : Toggle Treemacs"))
(when (and thwap-fm-enable-treemacs thwap-ui-enable-kaolin-themes (not thwap-fm-enable-neotree))
(kaolin-treemacs-theme))
(provide 'thwap-nerdtree) (provide 'thwap-nerdtree)

View File

@ -1,23 +1,3 @@
;;
;; Ensure Org mode is installed and loaded
;;
;; base
(straight-use-package 'org)
;; functionality / configuration
(straight-use-package 'org-bullets)
(straight-use-package 'org-modern)
(straight-use-package 'org-super-agenda)
(straight-use-package 'org-timeblock)
;; content related packages
(straight-use-package 'org-download)
(straight-use-package 'ob-mermaid)
;; org-roam stuff
(straight-use-package 'org-roam)
(straight-use-package 'org-roam-ui)
(straight-use-package 'org-transclusion)
;; ;;
;; Helper functions ;; Helper functions
;; ;;
@ -42,92 +22,141 @@
(setq org-timeblock-files (thwap/list-files-with-extension "~/.org-agenda" "org")) (setq org-timeblock-files (thwap/list-files-with-extension "~/.org-agenda" "org"))
(setq org-timeblock-inbox-file "~/.org-agenda/tasks.org")) (setq org-timeblock-inbox-file "~/.org-agenda/tasks.org"))
;;
;; Ensure Org mode is installed and loaded
;;
;; base
(when thwap-org-enable-org
(straight-use-package 'org)
(setq browse-url-browser-function 'browse-url-generic
browse-url-generic-program "firefox-esr"
org-log-done 'time
org-startup-indented t
org-hide-leading-stars t
org-support-shift-select t
org-directory "~/.org-agenda"
org-default-notes-file "~/.org-agenda/notes.org"
org-export-with-sub-superscripts t
org-export-with-toc t)
(thwap/org-agenda-files-update)
(setq org-todo-keywords
'((sequence "TODO" "IN-PROGRESS" "EPIC" "WAITING" "WONTDO" "DONE")))
(setq org-capture-templates
`(("T" "THWAP TODO" entry (file+headline "~/.org-agenda/tasks.org" "THWAP Tasks")
"* TODO %?\n %i\n %a")
("A" "APFM TODO" entry (file+headline "~/.org-agenda/tasks.org" "APFM Tasks")
"* TODO %?\n %i\n %a")
("L" "LIFE TODO" entry (file+headline "~/.org-agenda/tasks.org" "LIFE Tasks")
"* TODO %?\n %i\n %a")
("a" "Appointment" entry (file+headline "~/.org-agenda/events.org" "Appointments")
"* %?\n %i\n %a" :clock-in t :clock-resume t)
("e" "Schedule Event" entry (file+headline "~/.org-agenda/events.org" "Events")
"* %?\n %i\n %a" :clock-in t :clock-resume t)
("m" "Schedule Meeting" entry (file+headline "~/.org-agenda/events.org" "Meetings")
"* %?\n %i\n %a" :clock-in t :clock-resume t)
("n" "Note" entry (file "~/.org-agenda/notes.org")
"* %?\n %i\n %a" :clock-in t :clock-resume t)
("i" "Idea" entry (file "~/.org-agenda/ideas.org")
"* %? :IDEA: \n%t" :clock-in t :clock-resume t)))
(org-babel-do-load-languages
'org-babel-load-languages
'((emacs-lisp . t)
(python . t)
(org . t)
(ruby . t)
(shell . t)))
(add-hook 'org-mode-hook 'thwap/org-agenda-files-update)
(add-hook 'org-mode-hook 'visual-line-mode)
;; Org mode stuff
(thwap/add-key-binding "o l" 'org-store-link "Store a link to the current location in the kill ring.")
;; (define-key thwap-map (kbd "o l") 'org-store-link)
;; (add-to-list 'thwap-help-lines "C-c t o l : Store a link to the current location in the kill ring.")
(thwap/add-key-binding "o C-l" 'org-toggle-link-display "Toggle the display of links.")
;; (define-key thwap-map (kbd "o C-l") 'org-toggle-link-display)
;; (add-to-list 'thwap-help-lines "C-c t o C-l : Toggle the display of links.")
(thwap/add-key-binding "o a" 'org-agenda "Open the Org agenda.")
;; (define-key thwap-map (kbd "o a") 'org-agenda)
;; (add-to-list 'thwap-help-lines "C-c t o a : Open the Org agenda.")
(thwap/add-key-binding "o n" 'org-capture "Capture a new task.")
;; (define-key thwap-map (kbd "o n") 'org-capture)
;; (add-to-list 'thwap-help-lines "C-c t o n : Capture a new task.")
(thwap/add-key-binding "o t" 'org-todo-list "Open the Org TODO list.")
;; (define-key thwap-map (kbd "o t") 'org-todo-list)
;; (add-to-list 'thwap-help-lines "C-c t o t : Open the Org TODO list.")
(thwap/add-key-binding "o c i" 'org-clock-in "Clock in to the current task.")
;; (define-key thwap-map (kbd "o c i") 'org-clock-in)
;; (add-to-list 'thwap-help-lines "C-c t o c i : Clock in to the current task.")
(thwap/add-key-binding "o c o" 'org-clock-out "Clock out of the current task.")
;; (define-key thwap-map (kbd "o c o") 'org-clock-out)
;; (add-to-list 'thwap-help-lines "C-c t o c o : Clock out of the current task.")
(thwap/add-key-binding "o c r" 'org-clock-report "Generate a clock report.")
;; (define-key thwap-map (kbd "o c r") 'org-clock-report)
;; (add-to-list 'thwap-help-lines "C-c t o c r : Generate a clock report.")
(thwap/add-key-binding "o r" 'org-refile "Refile the current task.")
;; (define-key thwap-map (kbd "o r") 'org-refile)
;; (add-to-list 'thwap-help-lines "C-c t o r : Refile the current task.")
(thwap/add-key-binding "o e" 'org-export-dispatch "Export the current buffer."))
;; (define-key thwap-map (kbd "o e") 'org-export-dispatch)
;; (add-to-list 'thwap-help-lines "C-c t o e : Export the current buffer."))
;; org-bullets
(when (and thwap-org-enable-org thwap-org-enable-org-bullets)
(straight-use-package 'org-bullets)
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
;; org-super-agenda
(when (and thwap-org-enable-org thwap-org-enable-org-super-agenda)
(straight-use-package 'org-super-agenda)
(add-hook 'org-agenda-mode-hook 'org-super-agenda-mode))
;; org-modern
(when (and thwap-org-enable-org thwap-org-enable-org-modern)
(straight-use-package 'org-modern))
;; org-timeblock
(when (and thwap-org-enable-org thwap-org-enable-org-timeblock)
(straight-use-package 'org-timeblock))
;; org-download
(when (and thwap-org-enable-org thwap-org-enable-org-download)
(add-hook 'dired-mode-hook 'org-download-enable))
;; ob-mermaid
(when (and thwap-org-enable-org thwap-org-enable-ob-mermaid)
(straight-use-package 'ob-mermaid)
(add-to-list 'org-src-lang-modes '("mermaid" . mermaid))
(add-to-list 'org-babel-load-languages '(mermaid . t)))
;; org-roam
(when (and thwap-org-enable-org thwap-org-enable-org-roam)
(setq org-roam-directory "~/.org-agenda")
(setq org-roam-db-location "~/.org-agenda/org-roam.db")
(setq org-roam-completion-everywhere t)
(setq org-roam-capture-templates
'(("d" "default" plain "%?"
:if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n")
:unnarrowed t)))
(add-hook 'after-init-hook 'org-roam-mode)
(add-hook 'org-mode-hook 'org-roam-mode)
(add-hook 'org-mode-hook 'org-roam-ui-mode))
;; org-roam-ui
(when (and thwap-org-enable-org thwap-org-enable-org-roam thwap-org-enable-org-roam-ui)
(straight-use-package 'org-roam-ui)
(setq org-roam-ui-sync-theme t)
(setq org-roam-ui-follow t)
(setq org-roam-ui-update-on-save t))
;; org-transclusion
(when (and thwap-org-enable-org thwap-org-enable-org-transclusion)
(straight-use-package 'org-transclusion))
;; ;;
;; Org mode configuration ;; Org mode configuration
;; ;;
(setq browse-url-browser-function 'browse-url-generic
browse-url-generic-program "firefox-esr")
;; Basic Org mode settings
(setq org-log-done 'time
org-startup-indented t
org-hide-leading-stars t
org-support-shift-select t
org-directory "~/.org-agenda"
org-default-notes-file "~/.org-agenda/notes.org")
;; Configure Org agenda
(thwap/org-agenda-files-update)
;; Configure TODO keywords
(setq org-todo-keywords
'((sequence "TODO" "IN-PROGRESS" "EPIC" "WAITING" "WONTDO" "DONE")))
;; Set up capture templates
(setq org-capture-templates
`(("T" "THWAP TODO" entry (file+headline "~/.org-agenda/tasks.org" "THWAP Tasks")
"* TODO %?\n %i\n %a")
("A" "APFM TODO" entry (file+headline "~/.org-agenda/tasks.org" "APFM Tasks")
"* TODO %?\n %i\n %a")
("L" "LIFE TODO" entry (file+headline "~/.org-agenda/tasks.org" "LIFE Tasks")
"* TODO %?\n %i\n %a")
("a" "Appointment" entry (file+headline "~/.org-agenda/events.org" "Appointments")
"* %?\n %i\n %a" :clock-in t :clock-resume t)
("e" "Schedule Event" entry (file+headline "~/.org-agenda/events.org" "Events")
"* %?\n %i\n %a" :clock-in t :clock-resume t)
("m" "Schedule Meeting" entry (file+headline "~/.org-agenda/events.org" "Meetings")
"* %?\n %i\n %a" :clock-in t :clock-resume t)
("n" "Note" entry (file "~/.org-agenda/notes.org")
"* %?\n %i\n %a" :clock-in t :clock-resume t)
("i" "Idea" entry (file "~/.org-agenda/ideas.org")
"* %? :IDEA: \n%t" :clock-in t :clock-resume t)))
;; Configure Org export settings
(setq org-export-with-sub-superscripts t)
(setq org-export-with-toc t)
;; Enable Babel languages
(org-babel-do-load-languages
'org-babel-load-languages
'((emacs-lisp . t)
(python . t)
(org . t)
(ruby . t)
(shell . t)))
;; Visual line mode for Org mode
(add-hook 'org-mode-hook 'thwap/org-agenda-files-update)
(add-hook 'org-mode-hook 'visual-line-mode)
;; org-bullets hooks
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1)))
;; Org mode stuff
(define-key thwap-map (kbd "o l") 'org-store-link)
(add-to-list 'thwap-help-lines "C-c t o l : Store a link to the current location in the kill ring.")
(define-key thwap-map (kbd "o C-l") 'org-toggle-link-display)
(add-to-list 'thwap-help-lines "C-c t o C-l : Toggle the display of links.")
;; agenda stuff
(define-key thwap-map (kbd "o n") 'org-capture)
(add-to-list 'thwap-help-lines "C-c t o n : Capture a new task.")
(define-key thwap-map (kbd "o a") 'org-agenda)
(add-to-list 'thwap-help-lines "C-c t o a : Open the Org agenda.")
(define-key thwap-map (kbd "o t") 'org-todo-list)
(add-to-list 'thwap-help-lines "C-c t o t : Open the Org TODO list.")
;; time management stuff
(define-key thwap-map (kbd "o c i") 'org-clock-in)
(add-to-list 'thwap-help-lines "C-c t o c i : Clock in to the current task.")
(define-key thwap-map (kbd "o c o") 'org-clock-out)
(add-to-list 'thwap-help-lines "C-c t o c o : Clock out of the current task.")
(define-key thwap-map (kbd "o c r") 'org-clock-report)
(add-to-list 'thwap-help-lines "C-c t o c r : Generate a clock report.")
;; refile stuff
(define-key thwap-map (kbd "o r") 'org-refile)
(add-to-list 'thwap-help-lines "C-c t o r : Refile the current task.")
;; export stuff
(define-key thwap-map (kbd "o e") 'org-export-dispatch)
(add-to-list 'thwap-help-lines "C-c t o e : Export the current buffer.")
(provide 'thwap-org) (provide 'thwap-org)

View File

@ -1,8 +1,7 @@
(straight-use-package 'projectile) (when thwap-dev-enable-projectile
(straight-use-package 'projectile)
;; Projectile keybindings (define-key thwap-map (kbd "p") 'projectile-command-map)
(define-key thwap-map (kbd "p") 'projectile-command-map) (add-to-list 'thwap-help-lines "C-c t p : Projectile commands"))
(add-to-list 'thwap-help-lines "C-c t p : Projectile commands")
(provide 'thwap-projectile) (provide 'thwap-projectile)

View File

@ -1,9 +1,29 @@
;; theme bits ;; theme bits
(straight-use-package 'modus-themes) (when thwap-ui-enable-modus-themes
(require 'modus-themes) (straight-use-package 'modus-themes)
;; (load-theme 'modus-vivendi-tritanopia :no-confirm) (require 'modus-themes))
(load-theme 'modus-vivendi-tinted :no-confirm)
(when thwap-ui-enable-doom-themes
(straight-use-package 'doom-themes)
(require 'doom-themes))
(when thwap-ui-enable-sublime-themes
(straight-use-package 'sublime-themes)
(require 'sublime-themes))
(when thwap-ui-enable-kaolin-themes
(straight-use-package 'kaolin-themes)
(require 'kaolin-themes))
(when thwap-ui-enable-alect-themes
(straight-use-package 'alect-themes)
(require 'alect-themes))
;; load the theme specified in the config
;; if things look wonky, you probably either need to install the
;; theme or you need to check your spelling.
(load-theme thwap-ui-theme :no-confirm)
(provide 'thwap-theme) (provide 'thwap-theme)