diff options
| author | Thomas Voss <mail@thomasvoss.com> | 2026-04-03 02:09:58 +0200 |
|---|---|---|
| committer | Thomas Voss <mail@thomasvoss.com> | 2026-04-03 02:09:58 +0200 |
| commit | daeeecee613987bd821b4e15d03b2cb925cd88b0 (patch) | |
| tree | ac0a00fbd75e586431244832b1e1ee846bd17f68 /.config/emacs/modules/mm-theme.el | |
| parent | 42effeee09203f4ec101bb3c0e5c9028bcce97fc (diff) | |
emacs: Mark the config as legacy
Diffstat (limited to '.config/emacs/modules/mm-theme.el')
| -rw-r--r-- | .config/emacs/modules/mm-theme.el | 246 |
1 files changed, 0 insertions, 246 deletions
diff --git a/.config/emacs/modules/mm-theme.el b/.config/emacs/modules/mm-theme.el deleted file mode 100644 index 89cdffd..0000000 --- a/.config/emacs/modules/mm-theme.el +++ /dev/null @@ -1,246 +0,0 @@ -;;; mm-theme.el --- Emacs theme settings -*- lexical-binding: t; -*- - - -;;; Custom Theme - -(load-theme 'mango :no-confirm) - - -;;; Fonts - -(defvar mm-theme-monospace-font `(,(if mm-humanwave-p - "Iosevka Custom" - "Iosevka Smooth") - :weight regular - :height 162) - "The default monospace font. -This is a plist containing a font name, -weight, and -height.") - -(defvar mm-theme-proportional-font - `(,(if mm-darwin-p "Microsoft Sans Serif" "Source Sans 3 Medium") - :weight regular :height 162) - "The default proportional font. -This is a plist containing a font name, -weight, and -height.") - -(defun mm-theme-set-fonts (&optional _frame) - "Set frame font settings. -Sets the frame font settings according to the fonts specified by -`mm-theme-monospace-font' and `mm-theme-proportional-font'. - -This function can be used as a hook in `after-make-frame-functions' and -_FRAME is ignored." - (interactive) - (let* ((mono-family (car mm-theme-monospace-font)) - (mono-props (cdr mm-theme-monospace-font)) - (prop-family (car mm-theme-proportional-font)) - (prop-props (cdr mm-theme-proportional-font)) - (mono-weight (plist-get mono-props :weight)) - (mono-height (plist-get mono-props :height)) - (prop-weight (plist-get prop-props :weight)) - (prop-height (plist-get prop-props :height))) - ;; Some characters in this font are larger than usual - (when (string= mono-family "Iosevka Smooth") - (dolist (rune '(?․ ?‥ ?… ?— ?← ?→ ?⇐ ?⇒ ?⇔)) - (set-char-table-range char-width-table rune 2))) - (set-face-attribute 'default nil - :font mono-family - :weight mono-weight - :height mono-height) - (set-face-attribute 'fixed-pitch nil - :font mono-family - :weight mono-weight - :height mono-height) - (set-face-attribute 'variable-pitch nil - :font prop-family - :weight prop-weight - :height prop-height))) - -(if (daemonp) - (add-hook 'after-make-frame-functions #'mm-theme-set-fonts) - (mm-theme-set-fonts)) - -;; Ligature Settings - -(defvar mm-theme-ligatures-alist - `(((c-mode c-ts-mode c++-mode c++-ts-mode) - . ("->")) - ((c++-mode c++-ts-mode) - . ("::")) - ((js-mode js-ts-mode typescript-ts-mode vue-ts-mode) - . (("=" ,(rx (or ?> (** 1 2 ?=)))) - ("!" ,(rx (** 1 2 ?=))))) - (go-ts-mode - . (":=" "<-")) - ((python-mode python-ts-mode) - . (":=" "->")) - ((mhtml-mode html-mode html-ts-mode vue-ts-mode) - . ("<!--" "-->" "/>")) - (prog-mode - . ("<<=" "<=" ">=" "==" "!=" "*=" "__"))) - "Ligatures to enable in specific modes. -Elements of this alist are of the form: - - (SPEC . LIGATURES) - -Where LIGATURES is a list of ligatures to enable for the set of modes -described by SPEC. - -SPEC can be either a symbol, or a list of symbols. These symbols should -correspond to modes for which the associated LIGATURES should be enabled. - -A mode may also be specified in multiple entries. To configure -`go-ts-mode' to have its set of ligatures be a super-set of the -ligatures for `c-ts-mode', the following two entries could be added: - - \\='((c-ts-mode go-ts-mode) . (\">=\" \"<=\" \"!=\" \"==\")) - \\='(go-ts-mode . (\":=\"))") - -(defun mm-theme-update-ligatures () - "Update the ligature composition tables. -After running this function you may need to restart `ligature-mode'. - -Also see `mm-theme-ligatures-alist'." - (interactive) - (setopt ligature-composition-table nil) - (cl-loop for (spec . ligatures) in mm-theme-ligatures-alist - do (ligature-set-ligatures spec ligatures))) - -(use-package ligature - :ensure t - :if (or mm-darwin-p - (seq-contains-p (split-string system-configuration-features) - "HARFBUZZ")) - :hook prog-mode - :config - (mm-theme-update-ligatures)) - - -;;; Background Opacity - -(defvar mm-theme-background-opacity 100 - "Opacity of the graphical Emacs frame. -A value of 0 is fully transparent while 100 is fully opaque.") - -(defun mm-theme-background-opacity (opacity) - "Set the current frames' background opacity. -See also the `mm-theme-background-opacity' variable." - (interactive - (list (mm-as-number - (read-string - (format-prompt "Background opacity" - (default-value 'mm-theme-background-opacity)) - nil nil mm-theme-background-opacity)))) - (set-frame-parameter nil 'alpha-background opacity)) - -(add-to-list - 'default-frame-alist (cons 'alpha-background mm-theme-background-opacity)) - - -;;; Divider Between Windows - -(use-package frame - :hook (after-init . window-divider-mode)) - - -;;; Pulse Line on Jump - -(use-package pulsar - :ensure t - :hook (after-init . pulsar-global-mode) - :custom - (pulsar-pulse t) - (pulsar-delay .05) - (pulsar-iterations 10) - (pulsar-face 'hl-line) - :config - (dolist (command #'(backward-paragraph - e/scroll-down - e/scroll-up - forward-paragraph - jump-to-register - pop-global-mark)) - (add-to-list 'pulsar-pulse-functions command)) - ;; Integrate with ‘compilation-mode’ - (add-hook 'next-error-hook #'pulsar-pulse-line) - :bind - (("C-c h l" . pulsar-highlight-dwim))) - - -;;; In-buffer highlighting - -(require 'hi-lock) ; For extra face definitions -(use-package highlighter - :bind (("C-c h m" . #'highlighter-mark) - ("C-c h u" . #'highlighter-unmark) - ("C-c h U" . #'highlighter-unmark-buffer)) - :commands (highlighter-mark highlighter-unmark highlighter-unmark-buffer)) - - -;;; Add Padding - -(use-package spacious-padding - :ensure t - :hook after-init) - - -;;; Pretty Page Boundaries - -(use-package page-break-lines - :ensure t - :hook (after-init . global-page-break-lines-mode) - :config - (dolist (mode '(c-mode c++-mode gsp-ts-mode)) - (add-to-list 'page-break-lines-modes mode) - (let ((ts-mode (mm-mode-to-ts-mode mode))) - (when (fboundp ts-mode) - (add-to-list 'page-break-lines-modes ts-mode)))) - (add-hook - 'change-major-mode-hook - (defun mm-theme--set-page-break-max-width () - (setopt page-break-lines-max-width fill-column))) - ;; Since the ‘^L’ character is replaced by a horizontal rule, the - ;; cursor should appear below the horizontal rule. When moving - ;; backwards we need to account for the fact that the cursor is - ;; actually one character ahead of hte page break and adjust - ;; accordingly. - (advice-add - #'forward-page :after - (defun mm-theme--forward-char (&rest _) - (forward-char))) - (advice-add - #'backward-page :before - (defun mm-theme--backward-char (&rest _) - (backward-char)))) - - -;;; More Intuiative UI for Certain Modes - -(defun mm-disable-line-selection-mode () - (line-selection-mode -1)) - -(use-package line-selection-mode - :hook ((bookmark-bmenu-mode dired-mode ibuffer-mode magit-repolist-mode) - . line-selection-mode) - :config - (add-hook 'wdired-mode-hook #'mm-disable-line-selection-mode)) - - -;;; Line Highlighting - -(use-package hl-line - :custom - (hl-line-sticky-flag nil)) - - -;;; Indent Guides - -(when mm-humanwave-p - (use-package highlight-indent-guides - :ensure t - :hook ((jinja2-mode vue-ts-mode mhtml-mode) . highlight-indent-guides-mode) - :custom - (highlight-indent-guides-method 'fill) - (highlight-indent-guides-auto-even-face-perc 30) - (highlight-indent-guides-auto-odd-face-perc 0))) - -(provide 'mm-theme) |