making everything configurable, and turned off by default
This commit is contained in:
parent
46f7a9350a
commit
91215a0ae3
@ -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
26
init.el
@ -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
|
||||||
|
@ -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
194
lib/thwap-config.el
Normal 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)
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
235
lib/thwap-org.el
235
lib/thwap-org.el
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user