From 679121990cf921e64eded078aceb0dc8f980adb3 Mon Sep 17 00:00:00 2001 From: rearman Date: Mon, 6 Apr 2026 12:04:04 -0400 Subject: [PATCH] Switch to acme-theme, better modeline Removed unused themes, set up a simplified mode-line with nice colors, etc. Also set up auto-enable/disable of scroll bars. --- init.el | 65 +++++++------- re/8color-ansi-theme.el | 183 --------------------------------------- re/acme-theme.el | 10 ++- re/b&w-theme.el | 187 ---------------------------------------- 4 files changed, 38 insertions(+), 407 deletions(-) delete mode 100644 re/8color-ansi-theme.el delete mode 100644 re/b&w-theme.el diff --git a/init.el b/init.el index 4b17891..42f4dc1 100644 --- a/init.el +++ b/init.el @@ -89,28 +89,6 @@ (window-height . 4))) (blink-cursor-mode -1) - -(setq-default mode-line-format - '("%e" - (:propertize " " face (if (and (buffer-file-name) (buffer-modified-p)) - mode-line-highlight - mode-line-active)) - " " - mode-line-mule-info - mode-line-client - mode-line-modified - mode-line-remote - mode-line-window-dedicated - " [%l,%C]%n " - (:propertize (buffer-file-name "%f" "%b") face mode-line-buffer-id) - " (%Ib)" - " <%m>" - (project-mode-line project-mode-line-format) - (vc-mode vc-mode) - " " - mode-line-misc-info - mode-line-end-spaces)) - (delete-selection-mode t) (setq delete-by-moving-to-trash t @@ -188,28 +166,49 @@ (setq bookmark-save-flag 1) ;; GUI Settings -;; (require '8color-ansi-theme) -;; (require 'b&w-theme) (require 'acme-theme) (load-theme 'acme t) -;; (defun swap-theme () -;; (interactive) -;; (let* ((theme (car custom-enabled-themes)) -;; (new (if (equal theme 'b&w) '8color-ansi 'b&w))) -;; (disable-theme theme) -;; (load-theme new t))) - (menu-bar-mode -1) (tool-bar-mode -1) -(set-scroll-bar-mode 'left) -(setq frame-title-format "%b %*%+" +(defun re/auto-scroll-bar () + "Only show the scrollbar if needed." + (if (> (count-lines (point-min) (point-max)) (window-height)) + (set-window-scroll-bars (selected-window) 18 'left) + (set-window-scroll-bars (selected-window) nil nil))) + +(add-hook 'post-command-hook #'re/auto-scroll-bar) + +(setq frame-title-format "%b" mouse-prefer-closest-glyph t mouse-1-click-follows-link nil focus-follows-mouse t + x-underline-at-descent-line t mouse-autoselect-window -0.25) +(setq-default mode-line-format + '("%e" + (:eval (propertize " " + 'face + (if (buffer-modified-p) + 'mode-line-highlight + 'header-line))) + ;; removed the below to test if it makes a difference + ;; mode-line-window-dedicated + " " + (:propertize (buffer-file-name "%f" "%b") + face + mode-line-buffer-id) + " (%Ib) " + mode-line-remote + (vc-mode vc-mode) + mode-line-format-right-align + "%[" + mode-name + "%]" + " %n %l,%C ")) + (setq prettify-symbols-alist '(("lambda" . 955) ("delta" . 120517) ("epsilon" . 120518) diff --git a/re/8color-ansi-theme.el b/re/8color-ansi-theme.el deleted file mode 100644 index 3636956..0000000 --- a/re/8color-ansi-theme.el +++ /dev/null @@ -1,183 +0,0 @@ -;;; 8color-ansi-theme.el --- -*- lexical-binding: t; -*- - -;;; Code: - -(deftheme 8color-ansi - "Simple dark color theme") - -(let ((class '((class color) (min-colors 89)))) - (custom-theme-set-faces - '8color-ansi -;;;; Special faces. - `(default - ((,class (:foreground "#fff" :background "#000")))) - `(error - ((,class (:foreground "#f00" :underline t)))) - `(warning - ((,class (:foreground "#ff0")))) - `(success - ((,class (:foreground "#0f0")))) - `(link - ((,class (:foreground "#00f" :underline t)))) -;;;; font-lock. - `(font-lock-comment-face - ((,class (:foreground "#f00" :slant italic :weight light)))) - `(font-lock-string-face - ((,class (:foreground "#0ff")))) - `(font-lock-builtin-face - ((,class (:foreground "#08f")))) - `(font-lock-type-face - ((,class (:foreground "#08f")))) - `(font-lock-constant-face - ((,class (:foreground "#08f")))) - `(font-lock-function-name-face - ((,class (:foreground "#0f0")))) - `(font-lock-variable-name-face - ((,class (:foreground "#0f0")))) - `(font-lock-keyword-face - ((,class (:foreground "#ff0")))) - `(font-lock-number-face - ((,class (:foreground "#f0f")))) - `(font-lock-warning-face - ((,class (:foreground "f80" :underline nil)))) -;;;; Decorations. - `(vertical-border - ((,class (:foreground "#f00")))) - `(scroll-bar - ((,class (:foreground "#f00")))) - `(region - ((,class (:background "#08f" :foreground "fff")))) - `(shadow - ((,class (:foreground "#f00")))) - `(match - ((,class (:background "#f00")))) - `(highlight - ((,class (:background "#08f" :foreground "fff")))) - `(lazy-highlight - ((,class (:background "#08f" :foreground "fff")))) - `(isearch - ((,class (:foreground "#000" :background "#fff")))) - `(fringe - ((,class (:foreground "#f00" :background "#000")))) - `(line-number - ((,class (:foreground "#f00" :background "#000")))) - `(line-number-current-line - ((,class (:foreground "#000" :background "#f00" :weight bold)))) - `(mode-line - ((,class (:foreground "#fff" :background "#000" :box t)))) - `(mode-line-inactive - ((,class (:foreground "#888" :background "#000" :box t)))) - `(mode-line-highlight - ((,class (:box (:line-width 1 :color "#0ff" :style released-button))))) -;;; Org - `(org-document-title - ((,class (:foreground "#ff0" :weight bold)))) - `(org-level-1 - ((,class (:foreground "#0ff")))) - `(org-level-2 - ((,class (:foreground "#0ff")))) - `(org-level-3 - ((,class (:foreground "#0ff")))) - `(org-level-4 - ((,class (:foreground "#0ff")))) - `(org-level-5 - ((,class (:foreground "#0ff")))) - `(org-level-6 - ((,class (:foreground "#0ff")))) - `(org-level-7 - ((,class (:foreground "#0ff")))) - `(org-level-8 - ((,class (:foreground "#0ff")))) - `(org-todo - ((,class (:foreground "#f00")))) - `(org-done - ((,class (:foreground "#0f0")))) - `(org-headline-done - ((,class (:foreground "#0ff")))) - `(org-ellipsis - ((,class (:foreground "#ff0" :underline nil)))) - `(org-document-info-keyword - ((,class (:foreground "#0ff")))) - `(org-special-keyword - ((,class (:foreground "#0ff")))) - `(org-checkbox - ((,class (:foreground "#0ff" :background "#000" :box nil)))) - `(org-tag - ((,class (:foreground "#ff0")))) - `(org-code - ((,class (:foreground "#00f")))) - `(org-verbatim - ((,class (:foreground "#00f" :box (:line-width 1 :color "#0ff" :style released-button))))) - `(org-table - ((,class (:foreground "#0ff")))) - `(org-formula - ((,class (:foreground "#0ff")))) - `(org-block - ((,class (:foreground "#fff")))) - `(org-block-begin-line - ((,class (:foreground "#00f")))) - `(org-block-end-line - ((,class (:foreground "#00f")))) - `(org-drawer - ((,class (:foreground "#00f")))) - `(org-priority - ((,class (:foreground "#00f")))) - `(org-footnote - ((,class (:foreground "#00f")))) - `(org-date - ((,class (:foreground "#00f")))) - `(org-link - ((,class (:foreground "#00f" :underline t)))) -;;; Org Agenda - `(header-line - ((,class (:foreground "#ff0" :background "#000" :weight bold :height 1.25)))) - `(org-agenda-structure - ((,class (:foreground "#ff0" :background "#000" :box nil :weight bold :height 1.25)))) - `(org-column - ((,class (:background "#000")))) - `(org-warning - ((,class (:foreground "#f0f")))) - `(org-agenda-done - ((,class (:foreground "#0f0" :slant normal)))) - `(org-time-grid - ((,class (:foreground "#0ff")))) - `(calendar-weekday-header - ((,class (:foreground "#ff0")))) - `(org-agenda-calendar-event - ((,class (:foreground "#fff")))) - `(org-agenda-clocking - ((,class (:foreground "#0ff" :background "#f00")))) - `(org-agenda-date - ((,class (:foreground "#00f" :background "#000" :box nil :weight normal)))) - `(org-agenda-date-weekend - ((,class (:foreground "#00f" :background "#000" :box nil :weight normal :underline nil)))) - `(org-agenda-date-today - ((,class (:foreground "#ff0" :background "#000" :box nil :weight normal :slant normal :inverse-video nil)))) - `(org-upcoming-distant-deadline - ((,class (:foreground "#f80")))) - `(org-upcoming-deadline - ((,class (:foreground "#f88")))) - `(org-imminent-deadline - ((,class (:foreground "#f00" :weight normal)))) - `(org-scheduled - ((,class (:foreground "#0f0")))) - `(org-scheduled-today - ((,class (:foreground "#0f0")))) - `(org-scheduled-previously - ((,class (:foreground "#ff0")))) -;;; Misc. other packages - `(corfu-default - ((,class (:foreground "#08f" :background "#000")))) - `(corfu-current - ((,class (:foreground "#000" :background "#08f")))) - `(dired-ignored - ((,class (:foreground "#0ff")))))) - -;;;###autoload -(when load-file-name - (add-to-list 'custom-theme-load-path - (file-name-as-directory (file-name-directory load-file-name)))) - -(provide-theme '8color-ansi) -(provide '8color-ansi-theme) -;;; 8color-ansi-theme.el ends here diff --git a/re/acme-theme.el b/re/acme-theme.el index 320261d..8de64b3 100644 --- a/re/acme-theme.el +++ b/re/acme-theme.el @@ -46,7 +46,7 @@ ((,class (:inherit default)))) ;;;; Decorations. `(vertical-border - ((,class (:inherit default)))) + ((,class (:background ,text)))) `(scroll-bar ((,class (:background ,darkscroll)))) `(region @@ -70,11 +70,13 @@ `(line-number-current-line ((,class (:foreground ,text :background ,darkscroll :weight bold)))) `(mode-line - ((,class (:foreground ,text :background ,bar :box t)))) + ((,class (:foreground ,text :background ,bar)))) `(mode-line-inactive - ((,class (:foreground ,text :background ,bar :box t)))) + ((,class (:inherit mode-line)))) `(mode-line-highlight - ((,class (:background ,dirty :box (:line-width 1 :color ,text released-button))))) + ((,class (:foreground ,text :background ,dirty :box (:color ,dirty))))) + `(header-line + ((,class (:foreground ,text :background ,bar :box (:color ,dirty))))) ;;; Org `(org-document-title ((,class (:foreground ,text :weight bold)))) diff --git a/re/b&w-theme.el b/re/b&w-theme.el deleted file mode 100644 index 579d1b2..0000000 --- a/re/b&w-theme.el +++ /dev/null @@ -1,187 +0,0 @@ -;;; b&w-theme.el --- -*- lexical-binding: t; -*- - -;;; Code: - -(deftheme b&w - "Mostly monochrome dark color theme") - -(let ((class '((class color) (min-colors 89))) - (text "#fff") - (bg "#000") - (red "#f00") - (green "#0f0")) - (custom-theme-set-faces - 'b&w -;;;; Special faces. - `(default - ((,class (:foreground ,text :background ,bg)))) - `(error - ((,class (:foreground ,text :underline t)))) - `(warning - ((,class (:foreground ,text)))) - `(success - ((,class (:foreground ,text)))) - `(link - ((,class (:foreground ,text :underline t)))) -;;;; font-lock. - `(font-lock-comment-face - ((,class (:foreground ,text :slant italic :weight light)))) - `(font-lock-string-face - ((,class (:foreground ,text)))) - `(font-lock-builtin-face - ((,class (:foreground ,text)))) - `(font-lock-type-face - ((,class (:foreground ,text)))) - `(font-lock-constant-face - ((,class (:foreground ,text)))) - `(font-lock-function-name-face - ((,class (:foreground ,text)))) - `(font-lock-variable-name-face - ((,class (:foreground ,text)))) - `(font-lock-keyword-face - ((,class (:foreground ,text)))) - `(font-lock-number-face - ((,class (:foreground ,text)))) - `(font-lock-warning-face - ((,class (:foreground "fff" :underline nil)))) -;;;; Decorations. - `(vertical-border - ((,class (:foreground ,text)))) - `(scroll-bar - ((,class (:foreground ,text)))) - `(region - ((,class (:background ,text :foreground ,bg)))) - `(shadow - ((,class (:foreground ,text)))) - `(match - ((,class (:background ,text)))) - `(highlight - ((,class (:background ,text :foreground ,bg)))) - `(lazy-highlight - ((,class (:background ,text :foreground ,bg)))) - `(isearch - ((,class (:foreground ,text :background ,bg)))) - `(fringe - ((,class (:foreground ,text :background ,bg)))) - `(line-number - ((,class (:foreground ,text :background ,bg)))) - `(line-number-current-line - ((,class (:foreground ,bg :background ,text :weight bold)))) - `(mode-line - ((,class (:foreground ,text :background ,bg :box t)))) - `(mode-line-inactive - ((,class (:foreground "#888" :background ,bg :box t)))) - `(mode-line-highlight - ((,class (:box (:line-width 1 :color ,text :style released-button))))) -;;; Org - `(org-document-title - ((,class (:foreground ,text :weight bold)))) - `(org-level-1 - ((,class (:foreground ,text)))) - `(org-level-2 - ((,class (:foreground ,text)))) - `(org-level-3 - ((,class (:foreground ,text)))) - `(org-level-4 - ((,class (:foreground ,text)))) - `(org-level-5 - ((,class (:foreground ,text)))) - `(org-level-6 - ((,class (:foreground ,text)))) - `(org-level-7 - ((,class (:foreground ,text)))) - `(org-level-8 - ((,class (:foreground ,text)))) - `(org-todo - ((,class (:foreground ,red :bold t)))) - `(org-done - ((,class (:foreground ,green :italic t)))) - `(org-headline-done - ((,class (:foreground ,green)))) - `(org-ellipsis - ((,class (:foreground ,text :underline nil)))) - `(org-document-info-keyword - ((,class (:foreground ,text)))) - `(org-special-keyword - ((,class (:foreground ,text)))) - `(org-checkbox - ((,class (:foreground ,text :background ,bg :box nil)))) - `(org-tag - ((,class (:foreground ,text :bold t)))) - `(org-code - ((,class (:foreground ,text)))) - `(org-verbatim - ((,class (:foreground ,text :box (:line-width 1 :color ,text :style released-button))))) - `(org-table - ((,class (:foreground ,text)))) - `(org-formula - ((,class (:foreground ,text)))) - `(org-block - ((,class (:foreground ,text)))) - `(org-block-begin-line - ((,class (:foreground ,text)))) - `(org-block-end-line - ((,class (:foreground ,text)))) - `(org-drawer - ((,class (:foreground ,text)))) - `(org-priority - ((,class (:foreground ,text)))) - `(org-footnote - ((,class (:foreground ,text)))) - `(org-date - ((,class (:foreground ,text)))) - `(org-link - ((,class (:foreground ,text :underline t)))) -;;; Org Agenda - `(header-line - ((,class (:foreground ,text :background ,bg :weight bold)))) - `(org-agenda-structure - ((,class (:foreground ,text :background ,bg :box nil :weight bold)))) - `(org-column - ((,class (:background ,bg)))) - `(org-warning - ((,class (:foreground ,text)))) - `(org-agenda-done - ((,class (:foreground ,text :italic t)))) - `(org-time-grid - ((,class (:foreground ,text :bold t)))) - `(calendar-weekday-header - ((,class (:foreground ,text)))) - `(org-agenda-calendar-event - ((,class (:foreground ,text)))) - `(org-agenda-clocking - ((,class (:foreground ,bg :background ,text)))) - `(org-agenda-date - ((,class (:foreground ,text :background ,bg :box nil :weight normal)))) - `(org-agenda-date-weekend - ((,class (:foreground ,text :background ,bg :box nil :weight normal :underline nil)))) - `(org-agenda-date-today - ((,class (:foreground ,text :background ,bg :box nil :weight normal :slant normal :inverse-video nil)))) - `(org-upcoming-distant-deadline - ((,class (:foreground ,text :italic t)))) - `(org-upcoming-deadline - ((,class (:foreground ,text :italic t)))) - `(org-imminent-deadline - ((,class (:foreground ,text :weight bold)))) - `(org-scheduled - ((,class (:foreground ,text)))) - `(org-scheduled-today - ((,class (:foreground ,text)))) - `(org-scheduled-previously - ((,class (:foreground ,text)))) -;;; Misc. other packages - `(corfu-default - ((,class (:foreground ,text :background ,bg)))) - `(corfu-current - ((,class (:foreground ,bg :background ,text)))) - `(dired-ignored - ((,class (:foreground ,text)))))) - -;;;###autoload -(when load-file-name - (add-to-list 'custom-theme-load-path - (file-name-as-directory (file-name-directory load-file-name)))) - -(provide-theme 'b&w) -(provide 'b&w-theme) -;;; b&w-theme.el ends here -- 2.39.5