Update a buncha changes

This commit is contained in:
William Moore 2024-07-12 18:32:01 -05:00
parent a9769e9919
commit f3af698787
16 changed files with 273 additions and 229 deletions

3
.gitignore vendored
View File

@ -2,11 +2,13 @@
*.elc
elpa/
melpa/
whomp.d/*.el
*.lock
.org-id-locations
org-roam.db
scratch
.emacs.desktop
emacs-custom.el
recentf
.cache*
.lsp*
@ -16,3 +18,4 @@ bookmarks*
history*
tramp*
var*
snippets/*

View File

@ -3,10 +3,10 @@
;;
;; Add the lib directory to the load path
(add-to-list 'load-path (expand-file-name "thwap" user-emacs-directory))
(add-to-list 'load-path (expand-file-name "whomp" user-emacs-directory))
;; Add the thwap.d directory to the load path
(add-to-list 'load-path (expand-file-name "thwap.d" user-emacs-directory))
(add-to-list 'load-path (expand-file-name "whomp.d" user-emacs-directory))
;;
@ -41,7 +41,7 @@
;; Set up straight.el to use 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)))
(defun whomp/add-key-binding (key command help-text)
"Add a key binding to the W.H.O.M.P. keymap"
(define-key whomp-map (kbd key) command)
(add-to-list 'whomp-help-lines (format "%-12s: %s" (concat "C-c w " key) help-text)))

36
init.el
View File

@ -8,40 +8,42 @@
'(mouse-autoselect-window t)
'(mouse-drag-and-drop-region t)
'(mouse-drag-and-drop-region-cross-program t)
'(thwap-development '(magitmode projectilemode pythonmode elpymode yamlmode))
'(thwap-orgmode '(orgmode orgdownload orgroam orgpublish))
'(thwap-ui-theme nil)
'(tool-bar-mode nil)
'(visible-bell 1))
(setq custom-file "~/.emacs.d/emacs-custom.el")
(load custom-file)
;;(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; 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))))
;; thwap helpers
(require 'thwap-helpers)
;; thwap config
(require 'thwap-configuration)
;; thwap defaults
(require 'thwap-defaults)
;; whomp helpers
(require 'whomp-helpers)
;; whomp config
(require 'whomp-configuration)
;; whomp defaults
(require 'whomp-defaults)
;; theme configuration
(require 'thwap-interface)
(require 'whomp-interface)
;; file browser configuration
(require 'thwap-file-browser)
(require 'whomp-file-browser)
;; company configuration
(require 'thwap-completion)
(require 'whomp-completion)
;; development configuration
(require 'thwap-development)
(require 'whomp-development)
;; extended development configuration
(require 'whomp-dev-ext)
;; org configuration
(require 'thwap-orgmode)
(require 'whomp-orgmode)
;; dashboard
(require 'thwap-dashboard)
(require 'whomp-dashboard)
;; now that everything is loaded, let's load all the user configurations
(let ((user-config (thwap/list-files-with-extension "~/.emacs.d/thwap.d" "el")))
(let ((user-config (whomp/list-files-with-extension "~/.emacs.d/whomp.d" "el")))
(dolist (config user-config)
(load-file config)))
(custom-set-faces

View File

@ -1,12 +0,0 @@
;;
;; Define the custom variables for the T.H.W.A.P. Emacs configuration.
;;
;; define the group
(defgroup thwap-config nil
"T.H.W.A.P. Emacs configuration group."
:group 'convenience
:prefix "thwap-")
(message "T.H.W.A.P. Loaded thwap-config group.")
(provide 'thwap-configuration)

View File

@ -1,70 +0,0 @@
;;
;; Set some defaults
;;
;; automatically revert buffers when they change on disk
;; (global-auto-revert-mode f)
;; 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
;; (straight-use-package 'golden-ratio)
;; (golden-ratio-mode 1)
;; (setq golden-ratio-auto-scale t)
;; (message "Golden Ratio Mode Enabled")
;;
;; Set up the T.H.W.A.P. keybindings
;;
;; The T.H.W.A.P. Map
;; This is the base starting point for the T.H.W.A.P. keybindings
(define-prefix-command 'thwap-map)
(global-set-key (kbd "C-c t") 'thwap-map)
;; Add a command to customize the T.H.W.A.P. group
(thwap/add-key-binding
"C-c"
(lambda () (interactive) (customize-group 'thwap-config))
"Customize this T.H.W.A.P. Emacs Installation")
;; quick commenting/uncommenting of a region is just too useful
(thwap/add-key-binding "c" 'comment-or-uncomment-region "Comment or uncomment region")
;; eval buffer is also very useful
(thwap/add-key-binding "e b" 'eval-buffer "Eval buffer")
(straight-use-package 'yasnippet)
(require 'yasnippet)
(setq yas-snippet-dirs '("~/.emacs.d/snippets"))
(message "Yasnippet loaded")
(straight-use-package 'yasnippet-snippets)
(require 'yasnippet-snippets)
(yas-reload-all)
(yas-global-mode 1)
(message "Yasnippet-Snippets loaded")
;; yasnippet stuff
(thwap/add-key-binding "y n" 'yas-new-snippet "Create a new yasnippet")
(message "T.H.W.A.P. Defaults Loaded")
;; our provide statement
(provide 'thwap-defaults)

View File

@ -4,23 +4,23 @@
;;
;; company toggle
(defcustom thwap-completion nil
(defcustom whomp-completion nil
"Choose the completion framework to use."
:type '(choice (const :tag "None" nil)
(const :tag "company" companycomp)
(const :tag "helm" helmcomp)
(const :tag "ivy" ivycomp))
:group 'thwap-config)
:group 'whomp-config)
;; Company and auto-complete configuration
(when (and (eq 'companycomp thwap-completion) (not (eq 'helmcomp thwap-completion)) (not (eq 'ivycomp thwap-completion)))
(when (and (eq 'companycomp whomp-completion) (not (eq 'helmcomp whomp-completion)) (not (eq 'ivycomp whomp-completion)))
(straight-use-package 'company)
(add-hook 'after-init-hook 'global-company-mode)
(message "Company completion enabled."))
;; If ivy is enabled, install and configure it
(when (and (eq 'ivycomp thwap-completion) (not (eq 'companycomp thwap-completion)) (not (eq 'helmcomp thwap-completion)))
(when (and (eq 'ivycomp whomp-completion) (not (eq 'companycomp whomp-completion)) (not (eq 'helmcomp whomp-completion)))
(straight-use-package 'ivy)
(ivy-mode 1)
(setq ivy-use-virtual-buffers t)
@ -28,28 +28,28 @@
(message "Ivy completion enabled."))
;; If helm is enabled, install and configure it
(when (and (eq 'helmcomp thwap-completion) (not (eq 'companycomp thwap-completion)) (not (eq 'ivycomp thwap-completion)))
(when (and (eq 'helmcomp whomp-completion) (not (eq 'companycomp whomp-completion)) (not (eq 'ivycomp whomp-completion)))
(straight-use-package 'helm)
(helm-mode 1)
(message "Helm completion enabled."))
;; If all are enabled, choose company
(when (or (and (eq 'companycomp thwap-completion) (eq 'helmcomp thwap-completion) (eq 'ivycomp thwap-completion))
(and (eq 'companycomp thwap-completion) (eq 'helmcomp thwap-completion) (not (eq 'ivycomp thwap-completion)))
(and (eq 'companycomp thwap-completion) (eq 'ivycomp thwap-completion) (not (eq 'helmcomp thwap-completion))))
(when (or (and (eq 'companycomp whomp-completion) (eq 'helmcomp whomp-completion) (eq 'ivycomp whomp-completion))
(and (eq 'companycomp whomp-completion) (eq 'helmcomp whomp-completion) (not (eq 'ivycomp whomp-completion)))
(and (eq 'companycomp whomp-completion) (eq 'ivycomp whomp-completion) (not (eq 'helmcomp whomp-completion))))
(straight-use-package 'company)
(add-hook 'after-init-hook 'global-company-mode)
(message "There can be only one. Company completion picked."))
;; if helm and ivy are enabled, choose ivy
(when (and (eq 'helmcomp thwap-completion) (eq 'ivycomp thwap-completion) (not (eq 'companycomp thwap-completion)))
(when (and (eq 'helmcomp whomp-completion) (eq 'ivycomp whomp-completion) (not (eq 'companycomp whomp-completion)))
(straight-use-package 'ivy)
(ivy-mode 1)
(setq ivy-use-virtual-buffers t)
(setq enable-recursive-minibuffers t)
(message "There can be only one. Ivy completion picked."))
(message "T.H.W.A.P. Completion configuration complete.")
(provide 'thwap-completion)
(message "W.H.O.M.P. Completion configuration complete.")
(provide 'whomp-completion)

View File

@ -0,0 +1,12 @@
;;
;; Define the custom variables for the W.H.O.M.P. Emacs configuration.
;;
;; define the group
(defgroup whomp-config nil
"W.H.O.M.P. Emacs configuration group."
:group 'convenience
:prefix "whomp-")
(message "W.H.O.M.P. Loaded whomp-config group.")
(provide 'whomp-configuration)

View File

@ -1,9 +1,9 @@
(straight-use-package 'dashboard)
(dashboard-setup-startup-hook)
(setq dashboard-banner-logo-title (thwap/dashboard-build-logo-title thwap-help-lines))
;; "Welcome to the T.H.W.A.P. Emacs Dashboard")
(setq dashboard-startup-banner (thwap/random-string-from-list (thwap/list-files-with-extension "~/.emacs.d/logos" "png")))
(setq dashboard-banner-logo-title (whomp/dashboard-build-logo-title whomp-help-lines))
;; "Welcome to the W.H.O.M.P. Emacs Dashboard")
(setq dashboard-startup-banner (whomp/random-string-from-list (whomp/list-files-with-extension "~/.emacs.d/logos" "png")))
(setq initial-buffer-choice (lambda () (get-buffer-create dashboard-buffer-name)))
(setq dashboard-center-content t)
(setq dashboard-vertically-center-content t)
@ -21,6 +21,6 @@
dashboard-insert-newline
dashboard-insert-footer))
(message "T.H.W.A.P. Dashboard loaded")
(provide 'thwap-dashboard)
;;; thwap-dashboard.el ends here
(message "W.H.O.M.P. Dashboard loaded")
(provide 'whomp-dashboard)
;;; whomp-dashboard.el ends here

70
whomp/whomp-defaults.el Normal file
View File

@ -0,0 +1,70 @@
;;
;; 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 whomp-help-lines '("--------------"
"All W.H.O.M.P. commands will start with 'C-c w'"
""
"Welcome to the W.H.O.M.P. Emacs Dashboard"))
;;
;; Golden Ratio Mode helps with window sizing, and is a default feature
;;
;; golden-ratio
(straight-use-package 'golden-ratio)
(golden-ratio-mode 1)
(setq golden-ratio-auto-scale t)
(message "Golden Ratio Mode Enabled")
;;
;; Set up the W.H.O.M.P. keybindings
;;
;; The W.H.O.M.P. Map
;; This is the base starting point for the W.H.O.M.P. keybindings
(define-prefix-command 'whomp-map)
(global-set-key (kbd "C-c w") 'whomp-map)
;; Add a command to customize the W.H.O.M.P. group
(whomp/add-key-binding
"C-c"
(lambda () (interactive) (customize-group 'whomp-config))
"Customize this W.H.O.M.P. Emacs Installation")
;; quick commenting/uncommenting of a region is just too useful
(whomp/add-key-binding "c" 'comment-or-uncomment-region "Comment or uncomment region")
;; eval buffer is also very useful
(whomp/add-key-binding "e b" 'eval-buffer "Eval buffer")
(straight-use-package 'yasnippet)
(require 'yasnippet)
(setq yas-snippet-dirs '("~/.emacs.d/snippets"))
(message "Yasnippet loaded")
(straight-use-package 'yasnippet-snippets)
(require 'yasnippet-snippets)
(yas-reload-all)
(yas-global-mode 1)
(message "Yasnippet-Snippets loaded")
;; yasnippet stuff
(whomp/add-key-binding "y n" 'yas-new-snippet "Create a new yasnippet")
(message "W.H.O.M.P. Defaults Loaded")
;; our provide statement
(provide 'whomp-defaults)

50
whomp/whomp-dev-ext.el Normal file
View File

@ -0,0 +1,50 @@
;;
;; Extended development assistance packages
;; These are the packages uncommon to most developers but are
;; necessary to those they're necessary!
;;
(defcustom whomp-dev-ext nil
"Whether or not to enable extended development assistance packages."
:type '(set (const :tag "None" nil)
(const :tag "copilot" copilotmode) ;; code completion
(const :tag "terraform" terraformmode) ;; terraform language support
)
:group 'whomp-config)
;; terraform-mode
(when (memq 'terraformmode whomp-dev-ext)
(use-package terraform-mode
:straight t
:defer t)
(when (eq 'company whomp-completion)
(use-package company-terraform
:straight t
:defer t
:config
(add-hook 'terraform-mode-hook #'company-terraform-init))
(add-hook 'terraform-mode-hook #'terraform-format-on-save-mode)
(add-hook 'terraform-mode-hook #'terraform-format-on-save-mode))
(message "terraform-mode loaded"))
(when (memq 'copilotmode whomp-development)
(use-package dash
:straight t
:defer t)
(use-package editorconfig
:straight t
:defer t)
(use-package copilot
:straight (:host github :repo "zerolfx/copilot.el" :files ("dist" "*.el"))
:defer t
:ensure t
:config
;; you can utilize :map :hook and :config to customize copilot
(add-hook 'prog-mode-hook 'copilot-mode)
(define-key copilot-completion-map (kbd "<tab>") 'copilot-accept-completion)
(define-key copilot-completion-map (kbd "TAB") 'copilot-accept-completion))
(message "copilot loaded"))
(message "W.H.O.M.P. extended development assistance packages loaded")
(provide 'whomp-dev-ext)
;; whomp-dev-ext.el ends here

View File

@ -4,7 +4,7 @@
;;
;; dev layer toggles
(defcustom thwap-development nil
(defcustom whomp-development nil
"Whether or not to enable development assistance packages."
:type '(set (const :tag "None" nil)
(const :tag "lsp" lspmode) ;; generally required for other modes
@ -14,41 +14,41 @@
(const :tag "python" pythonmode) ;; python language support
(const :tag "elpy" elpymode) ;; python language support (elpy)
(const :tag "yaml" yamlmode)) ;; yaml language support
:group 'thwap-config)
:group 'whomp-config)
;; lsp-mode
(when (memq 'lspmode thwap-development)
(when (memq 'lspmode whomp-development)
(straight-use-package 'lsp-mode)
(straight-use-package 'lsp-ui)
(when (eq 'treemacs thwap-dirbrowser)
(when (eq 'treemacs whomp-dirbrowser)
(straight-use-package 'lsp-treemacs))
(setq gc-cons-threshold 100000000)
(setq read-process-output-max (* 1024 1024))
(thwap/add-key-binding "l" 'lsp-keymap-prefix "lsp-keymap-prefix")
(whomp/add-key-binding "l" 'lsp-keymap-prefix "lsp-keymap-prefix")
(straight-use-package 'eglot)
(require 'eglot)
(message "lsp-mode loaded"))
;; magit
(when (memq 'magitmode thwap-development)
(when (memq 'magitmode whomp-development)
(straight-use-package 'magit)
(straight-use-package 'forge)
(straight-use-package 'magit-todos)
(thwap/add-key-binding "g s" 'magit-status "Git status (magit entrypoint)")
(thwap/add-key-binding "g l" 'magit-log "Git log (magit entrypoint")
(thwap/add-key-binding "g b" 'magit-blame "Git blame (magit entrypoint")
(thwap/add-key-binding "g f" 'magit-find-file "Git find file (magit entrypoint")
(whomp/add-key-binding "g s" 'magit-status "Git status (magit entrypoint)")
(whomp/add-key-binding "g l" 'magit-log "Git log (magit entrypoint")
(whomp/add-key-binding "g b" 'magit-blame "Git blame (magit entrypoint")
(whomp/add-key-binding "g f" 'magit-find-file "Git find file (magit entrypoint")
(message "magit loaded"))
;; projectile
(when (memq 'projectilemode thwap-development)
(when (memq 'projectilemode whomp-development)
(straight-use-package 'projectile)
(thwap/add-key-binding "p" 'projectile-command-map "Projectile commands")
(whomp/add-key-binding "p" 'projectile-command-map "Projectile commands")
(message "projectile loaded"))
;; go-mode
(when (memq 'gomode thwap-development)
(when (memq 'gomode whomp-development)
(straight-use-package 'go-mode)
(straight-use-package 'go-eldoc)
(straight-use-package 'go-projectile)
@ -64,11 +64,11 @@
(message "go-mode loaded"))
;; python-mode
(when (memq 'pythonmode thwap-development)
(when (memq 'elpymode thwap-development)
(when (memq 'pythonmode whomp-development)
(when (memq 'elpymode whomp-development)
(straight-use-package 'elpy)
(elpy-enable))
(when (not (memq 'elpymode thwap-development))
(when (not (memq 'elpymode whomp-development))
(add-hook 'python-mode-hook (lambda ()
(setq-local tab-width 2)))
(add-hook 'python-mode-hook #'lsp-deferred))
@ -82,7 +82,7 @@
(message "python-mode loaded"))
;; yaml-mode
(when (memq 'yamlmode thwap-development)
(when (memq 'yamlmode whomp-development)
(straight-use-package 'yaml-mode)
(add-to-list 'auto-mode-alist '("\\.yml\\'" . yaml-mode))
(add-to-list 'auto-mode-alist '("\\.yaml\\'" . yaml-mode))
@ -95,6 +95,6 @@
(message "yaml-mode loaded"))
(message "T.H.W.A.P. development assistance packages loaded")
(provide 'thwap-development)
;; thwap-development.el ends here
(message "W.H.O.M.P. development assistance packages loaded")
(provide 'whomp-development)
;; whomp-development.el ends here

View File

@ -3,28 +3,28 @@
;; Tree browser packages
;;
(defcustom thwap-dirbrowser nil
(defcustom whomp-dirbrowser nil
"Whether or not to enable treemacs."
:type '(choice (const :tag "None" nil)
(const :tag "neotree" neotree)
(const :tag "treemacs" treemacs))
:group 'thwap-config)
:group 'whomp-config)
;;
;; File Tree Browser
;;
(when (eq 'neotree thwap-dirbrowser)
(when (eq 'neotree whomp-dirbrowser)
(use-package neotree
:straight t
:config
(global-set-key [f8] 'neotree-toggle)
(thwap/add-key-binding "C-n" 'neotree-toggle "Toggle Neotree"))
(whomp/add-key-binding "C-n" 'neotree-toggle "Toggle Neotree"))
(message "neotree loaded"))
(when (eq 'treemacs thwap-dirbrowser)
(when (eq 'treemacs whomp-dirbrowser)
(use-package treemacs
:straight t
:ensure t
@ -44,10 +44,10 @@
treemacs-never-persist nil
treemacs-is-never-other-window t
treemacs-goto-tag-strategy 'refetch-index)))
(thwap/add-key-binding "C-t" 'treemacs "Toggle Treemacs")
(when (memq 'kaolinthemes thwap-ui-themes)
(whomp/add-key-binding "C-t" 'treemacs "Toggle Treemacs")
(when (memq 'kaolinthemes whomp-ui-themes)
(kaolin-treemacs-theme))
(message "treemacs loaded"))
(message "T.H.W.A.P. Directory browser configuration loaded.")
(provide 'thwap-file-browser)
(message "W.H.O.M.P. Directory browser configuration loaded.")
(provide 'whomp-file-browser)

View File

@ -2,7 +2,7 @@
;; Helper functions for the dashboard
;;
(defun thwap/dashboard-insert-logo-title (banner)
(defun whomp/dashboard-insert-logo-title (banner)
"Insert BANNER into the dashboard buffer.
BANNER can be a single string, which will be centered, or a list of strings,
which will be displayed with line breaks between them."
@ -15,12 +15,12 @@ which will be displayed with line breaks between them."
(insert (propertize line 'face 'dashboard-banner-logo-title))
(insert "\n"))))
(defun thwap/dashboard-build-logo-title (lst)
(defun whomp/dashboard-build-logo-title (lst)
"Build a list of strings from LST to display as the banner.
LST is reversed and concatenated into a single string with line breaks."
(mapconcat 'identity (reverse lst) "\n"))
(defun thwap/random-string-from-list (strings)
(defun whomp/random-string-from-list (strings)
"Return a random string from STRINGS."
(let ((index (random (length strings))))
(nth index strings)))
@ -30,14 +30,14 @@ LST is reversed and concatenated into a single string with line breaks."
;;
;; Function to create a directory if it doesn't exist
(defun thwap/ensure-directory-exists (dir)
(defun whomp/ensure-directory-exists (dir)
"Ensure the directory DIR exists. If not, create it."
(unless (file-directory-p dir)
(message "Creating missing directory: %s" dir)
(make-directory dir t)))
;; Function to list all files in a directory with a given extension
(defun thwap/list-files-with-extension (dir extension)
(defun whomp/list-files-with-extension (dir extension)
"Recursively list all files in DIR with the given EXTENSION, suitable for org-agenda-files."
(let ((files '()))
(dolist (file (directory-files-recursively dir (concat "\\." extension "\\'")))
@ -49,23 +49,23 @@ LST is reversed and concatenated into a single string with line breaks."
;;
;; Function to get a unique filename for Org-capture
(defun thwap/org-capture-get-unique-filename ()
(defun whomp/org-capture-get-unique-filename ()
"Generate a unique filename for Org-capture."
(let ((filename (format "~/.org-agenda/syncup__issue__%s.org" (format-time-string "%Y%m%d%H%M%S"))))
(message "Inside function: Generated filename: %s" filename)
filename))
;; Function to update org-agenda-files
(defun thwap/org-agenda-files-update ()
(defun whomp/org-agenda-files-update ()
"Update the `org-agenda-files` variable.
This function sets `org-agenda-files` and `org-timeblock-files` to the list of
all `.org` files in the `~/.org-agenda` directory, and sets
`org-timeblock-inbox-file` to `~/org/agenda/index.org`."
(setq org-agenda-files (thwap/list-files-with-extension "~/org/agenda" "org"))
(setq org-timeblock-files (thwap/list-files-with-extension "~/org/agenda" "org"))
(setq org-agenda-files (whomp/list-files-with-extension "~/org/agenda" "org"))
(setq org-timeblock-files (whomp/list-files-with-extension "~/org/agenda" "org"))
(setq org-timeblock-inbox-file "~/org/agenda/index.org"))
(message "T.H.W.A.P. Loaded helper function library.")
(provide 'thwap-helpers)
;;; thwap-helpers.el ends here
(message "W.H.O.M.P. Loaded helper function library.")
(provide 'whomp-helpers)
;;; whomp-helpers.el ends here

View File

@ -4,72 +4,67 @@
;;
;; modus themes toggle
(defcustom thwap-ui-themes nil
(defcustom whomp-ui-themes nil
"Choose the themes to install."
:type '(set (const :tag "Modus themes" modusthemes)
(const :tag "Doom themes" doomthemes)
(const :tag "Sublime themes" sublimethemes)
(const :tag "Kaolin themes" kaolinthemes)
(const :tag "Alect themes" alectthemes)
(const :tag "Wombat themes" wombat))
:group 'thwap-config)
(const :tag "Wombat themes" wombatthemes))
:group 'whomp-config)
;; theme to load
(defcustom thwap-ui-theme nil
(defcustom whomp-ui-theme nil
"Name of the theme to load."
:type 'string
:group 'thwap-config)
:group 'whomp-config)
;; all-the-icons toggle
(defcustom thwap-ui-icons nil
(defcustom whomp-ui-icons nil
"Choose the icon sets to install."
:type '(choice (const :tag "None" nil)
(const :tag "All-the-icons" alltheicons)
(const :tag "Nerd-icons" nerdicons))
:group 'thwap-config)
:group 'whomp-config)
; theme bits
;; theme bits
(when (memq 'modusthemes thwap-ui-themes)
(when (memq 'modusthemes whomp-ui-themes)
(straight-use-package 'modus-themes)
(require 'modus-themes)
(message "Modus themes loaded."))
(when (memq 'doomthemes thwap-ui-themes)
(when (memq 'doomthemes whomp-ui-themes)
(straight-use-package 'doom-themes)
(require 'doom-themes)
(message "Doom themes loaded."))
(when (memq 'sublimethemes thwap-ui-themes)
(when (memq 'sublimethemes whomp-ui-themes)
(straight-use-package 'sublime-themes)
(require 'sublime-themes)
(message "Sublime themes loaded."))
(when (memq 'kaolinthemes thwap-ui-themes)
(when (memq 'kaolinthemes whomp-ui-themes)
(straight-use-package 'kaolin-themes)
(require 'kaolin-themes)
(message "Kaolin themes loaded."))
(when (memq 'alectthemes thwap-ui-themes)
(when (memq 'alectthemes whomp-ui-themes)
(straight-use-package 'alect-themes)
(require 'alect-themes)
(message "Alect themes loaded."))
(when (memq 'wombat thwap-ui-themes)
'(thwap-ui-theme 'wombat)
(message "Wombat themes loaded."))
;; load the theme specified in the config if it is set
;; if things look wonky, you probably either need to install the
;; theme or you need to check your spelling.
(if thwap-ui-theme
(load-theme thwap-ui-theme :no-confirm)
(message "Theme loaded: %s" thwap-ui-theme))
(if whomp-ui-theme
(load-theme whomp-ui-theme :no-confirm)
(message "Theme loaded: %s" whomp-ui-theme))
;; icon bits
(when (and (eq 'alltheicons thwap-ui-icons) (not (eq 'nerdicons thwap-ui-icons)))
(when (and (eq 'alltheicons whomp-ui-icons) (not (eq 'nerdicons whomp-ui-icons)))
(use-package all-the-icons
:ensure t
:straight t
@ -82,7 +77,7 @@
(all-the-icons-completion-mode 1))
(message "All-the-icons loaded."))
(when (and (eq 'nerdicons thwap-ui-icons) (not (eq 'alltheicons thwap-ui-icons)))
(when (and (eq 'nerdicons whomp-ui-icons) (not (eq 'alltheicons whomp-ui-icons)))
(use-package nerd-icons
:straight (nerd-icons
:type git
@ -97,7 +92,7 @@
)
(message "Nerd-icons loaded."))
(when (and (eq 'nerdicons thwap-ui-icons) (eq 'alltheicons thwap-ui-icons))
(when (and (eq 'nerdicons whomp-ui-icons) (eq 'alltheicons whomp-ui-icons))
(message "Both all-the-icons and nerd-icons are enabled. Disabling nerd-icons.")
(use-package all-the-icons-dired
:ensure t
@ -112,5 +107,5 @@
(message "All-the-icons loaded."))
(message "T.H.W.A.P. Interface settings loaded.")
(provide 'thwap-interface)
(message "W.H.O.M.P. Interface settings loaded.")
(provide 'whomp-interface)

View File

@ -3,7 +3,7 @@
;;
;; org layer toggles
(defcustom thwap-orgmode nil
(defcustom whomp-orgmode nil
"Choose from the available org-mode packages"
:type '(set (const :tag "Org" orgmode)
(const :tag "Org-Bullets" orgbullets)
@ -14,23 +14,23 @@
(const :tag "Org-Transclusion" orgtransclusion)
(const :tag "Org-Roam" orgroam)
(const :tag "Org-Publish" orgpublish))
:group 'thwap-config)
:group 'whomp-config)
;; org-babel extras
(defcustom thwap-orgbabel nil
(defcustom whomp-orgbabel nil
"Choose extra packages for org-babel"
:type '(set (const :tag "ob-mermaid" obmermaid)
(const :tag "ob-napkin" obnapkin))
:group 'thwap-config)
:group 'whomp-config)
;;
;; Ensure Org mode is installed and loaded
;;
;; base
(when (memq 'orgmode thwap-orgmode)
(when (memq 'orgmode whomp-orgmode)
(straight-use-package 'org)
(thwap/ensure-directory-exists "~/org")
(whomp/ensure-directory-exists "~/org")
(setq browse-url-browser-function 'browse-url-generic
browse-url-generic-program "firefox-esr"
org-log-done 'time
@ -41,7 +41,7 @@
org-default-notes-file "~/org/index.org"
org-export-with-sub-superscripts t
org-export-with-toc t)
(thwap/org-agenda-files-update)
(whomp/org-agenda-files-update)
(setq org-todo-keywords
'((sequence "TODO(t)" "WAITING(w)" "BLOCKED(b)" "|" "IN-PROGRESS(i)")
(sequence "WONTDO(o)" "DEPRECATED(e)" "STUPID(s)" "|" "DONE(d)")))
@ -67,50 +67,50 @@
(org . t)
(ruby . t)
(shell . t)))
(add-hook 'org-mode-hook 'thwap/org-agenda-files-update)
(add-hook 'org-mode-hook 'whomp/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.")
(thwap/add-key-binding "o C-l" 'org-toggle-link-display "Toggle the display of links.")
(thwap/add-key-binding "o a" 'org-agenda "Open the Org agenda.")
(thwap/add-key-binding "o n" 'org-capture "Capture a new task.")
(thwap/add-key-binding "o t" 'org-todo-list "Open the Org TODO list.")
(thwap/add-key-binding "o c i" 'org-clock-in "Clock in to the current task.")
(thwap/add-key-binding "o c o" 'org-clock-out "Clock out of the current task.")
(thwap/add-key-binding "o c r" 'org-clock-report "Generate a clock report.")
(thwap/add-key-binding "o r" 'org-refile "Refile the current task.")
(thwap/add-key-binding "o e" 'org-export-dispatch "Export the current buffer.")
(whomp/add-key-binding "o l" 'org-store-link "Store a link to the current location in the kill ring.")
(whomp/add-key-binding "o C-l" 'org-toggle-link-display "Toggle the display of links.")
(whomp/add-key-binding "o a" 'org-agenda "Open the Org agenda.")
(whomp/add-key-binding "o n" 'org-capture "Capture a new task.")
(whomp/add-key-binding "o t" 'org-todo-list "Open the Org TODO list.")
(whomp/add-key-binding "o c i" 'org-clock-in "Clock in to the current task.")
(whomp/add-key-binding "o c o" 'org-clock-out "Clock out of the current task.")
(whomp/add-key-binding "o c r" 'org-clock-report "Generate a clock report.")
(whomp/add-key-binding "o r" 'org-refile "Refile the current task.")
(whomp/add-key-binding "o e" 'org-export-dispatch "Export the current buffer.")
(message "org-mode loaded"))
;; org-bullets
(when (and (memq 'orgmode thwap-orgmode) (memq 'orgbullets thwap-orgmode))
(when (and (memq 'orgmode whomp-orgmode) (memq 'orgbullets whomp-orgmode))
(straight-use-package 'org-bullets)
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1)))
(message "org-bullets loaded"))
;; org-super-agenda
(when (and (memq 'orgmode thwap-orgmode) (memq 'orgsuperagenda thwap-orgmode))
(when (and (memq 'orgmode whomp-orgmode) (memq 'orgsuperagenda whomp-orgmode))
(straight-use-package 'org-super-agenda)
(add-hook 'org-agenda-mode-hook 'org-super-agenda-mode)
(message "org-super-agenda loaded"))
;; org-modern
(when (and (memq 'orgmode thwap-orgmode) (memq 'orgmodern thwap-orgmode))
(when (and (memq 'orgmode whomp-orgmode) (memq 'orgmodern whomp-orgmode))
(straight-use-package 'org-modern)
(message "org-modern loaded"))
;; org-timeblock
(when (and (memq 'orgmode thwap-orgmode) (memq 'orgtimeblock thwap-orgmode))
(when (and (memq 'orgmode whomp-orgmode) (memq 'orgtimeblock whomp-orgmode))
(straight-use-package 'org-timeblock)
(message "org-timeblock loaded"))
;; org-download
(when (and (memq 'orgmode thwap-orgmode) (memq 'orgdownload thwap-orgmode))
(when (and (memq 'orgmode whomp-orgmode) (memq 'orgdownload whomp-orgmode))
(add-hook 'dired-mode-hook 'org-download-enable)
(message "org-download loaded"))
;; org-roam
(when (and (memq 'orgmode thwap-orgmode) (memq 'orgroam thwap-orgmode))
(when (and (memq 'orgmode whomp-orgmode) (memq 'orgroam whomp-orgmode))
(straight-use-package 'org-roam)
(org-roam-db-autosync-mode)
(setq org-roam-v2-ack t)
@ -120,14 +120,9 @@
(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)
;; (add-hook 'org-mode-hook 'org-roam)
;;(add-hook 'org-mode-hook 'org-roam-ui-mode)
:unnarrowed t))))
)
(when (and (memq 'orgmode thwap-orgmode) (memq 'orgpublish thwap-orgmode))
(when (and (memq 'orgmode whomp-orgmode) (memq 'orgpublish whomp-orgmode))
(require 'ox-publish)
(setq org-publish-project-alist
'(
@ -140,28 +135,27 @@
:headline-levels 4 ; Just the default for this project.
:auto-preamble t
)
))
)
)))
;; ;; org-roam-ui
;; (when (and thwap-org-enable-org thwap-org-enable-org-roam thwap-org-enable-org-roam-ui)
;; (when (and whomp-org-enable-org whomp-org-enable-org-roam whomp-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 (memq 'orgmode thwap-orgmode) (memq 'orgtransclusion thwap-orgmode))
(when (and (memq 'orgmode whomp-orgmode) (memq 'orgtransclusion whomp-orgmode))
(straight-use-package 'org-transclusion)
(message "org-transclusion loaded"))
;; ob-mermaid
(when (and (memq 'orgmode thwap-orgmode) (memq 'obmermaid thwap-orgbabel))
(when (and (memq 'orgmode whomp-orgmode) (memq 'obmermaid whomp-orgbabel))
(straight-use-package 'ob-mermaid)
(add-to-list 'org-src-lang-modes '("mermaid" . mermaid))
(add-to-list 'org-babel-load-languages '(mermaid . t))
(message "ob-mermaid loaded"))
(message "T.H.W.A.P. Org-Mode settings loaded")
(provide 'thwap-orgmode)
;; thwap-orgmode.el ends here
(message "W.H.O.M.P. Org-Mode settings loaded")
(provide 'whomp-orgmode)
;; whomp-orgmode.el ends here