whompmacs/whomp/whomp-interface.el

115 lines
3.1 KiB
EmacsLisp

;;
;; Theme and appearance settings
;;
;; modus themes toggle
(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))
:group 'whomp-config)
;; theme to load
(defcustom whomp-ui-theme nil
"Name of the theme to load."
:group 'whomp-config)
;; all-the-icons toggle
(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 'whomp-config)
;; theme bits
(when (memq 'modusthemes whomp-ui-themes)
(straight-use-package 'modus-themes)
(require 'modus-themes)
(message "Modus themes loaded."))
(when (memq 'doomthemes whomp-ui-themes)
(use-package doom-themes
:straight t
:defer t
:config
(require 'doom-themes)
(message "Doom themes loaded.")))
(when (memq 'sublimethemes whomp-ui-themes)
(straight-use-package 'sublime-themes)
(require 'sublime-themes)
(message "Sublime themes loaded."))
(when (memq 'kaolinthemes whomp-ui-themes)
(straight-use-package 'kaolin-themes)
(require 'kaolin-themes)
(message "Kaolin themes loaded."))
(when (memq 'alectthemes whomp-ui-themes)
(straight-use-package 'alect-themes)
(require 'alect-themes)
(message "Alect 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 whomp-ui-theme
((load-theme whomp-ui-theme :no-confirm)
(message "Theme loaded: %s" whomp-ui-theme))
(message "No theme set."))
;; icon bits
(when (and (eq 'alltheicons whomp-ui-icons) (not (eq 'nerdicons whomp-ui-icons)))
(use-package all-the-icons
: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))
(message "All-the-icons loaded."))
(when (and (eq 'nerdicons whomp-ui-icons) (not (eq 'alltheicons whomp-ui-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")
)
(message "Nerd-icons loaded."))
(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
: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))
(message "All-the-icons loaded."))
(message "W.H.O.M.P. Interface settings loaded.")
(provide 'whomp-interface)