;; ;; Theme and appearance settings ;; ;; modus themes toggle (defcustom thwap-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) ;; theme to load (defcustom thwap-ui-theme nil "Name of the theme to load." :type 'string :group 'thwap-config) ;; all-the-icons toggle (defcustom thwap-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) ; theme bits (when (memq 'modusthemes thwap-ui-themes) (straight-use-package 'modus-themes) (require 'modus-themes) (message "Modus themes loaded.")) (when (memq 'doomthemes thwap-ui-themes) (straight-use-package 'doom-themes) (require 'doom-themes) (message "Doom themes loaded.")) (when (memq 'sublimethemes thwap-ui-themes) (straight-use-package 'sublime-themes) (require 'sublime-themes) (message "Sublime themes loaded.")) (when (memq 'kaolinthemes thwap-ui-themes) (straight-use-package 'kaolin-themes) (require 'kaolin-themes) (message "Kaolin themes loaded.")) (when (memq 'alectthemes thwap-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)) ;; icon bits (when (and (eq 'alltheicons thwap-ui-icons) (not (eq 'nerdicons thwap-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 thwap-ui-icons) (not (eq 'alltheicons thwap-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 thwap-ui-icons) (eq 'alltheicons thwap-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 "T.H.W.A.P. Interface settings loaded.") (provide 'thwap-interface)