init: new dotfile configuration

Remove all org files using a new script to more config over, The old org
file configuaration were great but required org. This new version only
requires the scripts that is included in the repo.

The configuration are all done but have not ported the theming system
yet.

Signed-off-by: Steve Beaulac <steve@sagacity.ca>
Change-Id: I14cd7fe058a71c8ba9d6d35397dc8d7e6a6a6964
This commit is contained in:
2026-03-02 13:26:21 -05:00
committed by gitadmin
commit 02a5e0df28
410 changed files with 18546 additions and 0 deletions
+312
View File
@@ -0,0 +1,312 @@
;;; early-init.el --- Early Init -*- no-byte-compile: t; lexical-binding: t; -*-
;; Author: James Cherti
;; URL: https://github.com/jamescherti/minimal-emacs.d
;; Package-Requires: ((emacs "29.1"))
;; Keywords: maint
;; Version: 1.1.0
;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Commentary:
;; The minimal-emacs.d starter kit provides improved Emacs defaults and
;; optimized startup, intended to serve as a solid foundation for your vanilla
;; Emacs configuration and enhance your overall Emacs experience.
;;; Code:
;;; Variables
(defvar minimal-emacs-ui-features '()
"List of user interface features to disable in minimal Emacs setup.
This variable holds a list Emacs UI features that can be enabled:
- `context-menu`: Enables the context menu in graphical environments.
- `tool-bar`: Enables the tool bar in graphical environments.
- `menu-bar`: Enables the menu bar in graphical environments.
- `dialogs`: Enables both file dialogs and dialog boxes.
- `tooltips`: Enables tooltips.
Each feature in the list corresponds to a specific UI component that can be
turned on.")
(defvar minimal-emacs-frame-title-format "%b – Emacs"
"Template for displaying the title bar of visible and iconified frame.")
(defvar minimal-emacs-debug nil
"Non-nil to enable debug.")
(defvar minimal-emacs-gc-cons-threshold (* 16 1024 1024)
"The value of `gc-cons-threshold' after Emacs startup.")
(defvar minimal-emacs-package-initialize-and-refresh t
"Whether to automatically initialize and refresh packages.
When set to non-nil, Emacs will automatically call `package-initialize' and
`package-refresh-contents' to set up and update the package system.")
(defvar minimal-emacs-user-directory user-emacs-directory
"The default value of the `user-emacs-directory' variable.")
;;; Load pre-early-init.el
(defun minimal-emacs-load-user-init (filename)
"Execute a file of Lisp code named FILENAME."
(let ((user-init-file
(expand-file-name filename
minimal-emacs-user-directory)))
(when (file-exists-p user-init-file)
(load user-init-file nil t))))
(minimal-emacs-load-user-init "pre-early-init.el")
(setq custom-theme-directory
(expand-file-name "themes/" minimal-emacs-user-directory))
(setq custom-file (expand-file-name "custom.el" minimal-emacs-user-directory))
;;; Misc
(set-language-environment "UTF-8")
;; Set-language-environment sets default-input-method, which is unwanted.
(setq default-input-method nil)
;; Some features that are not represented as packages can be found in
;; `features', but this can be inconsistent. The following enforce consistency:
(if (fboundp #'json-parse-string)
(push 'jansson features))
(if (string-match-p "HARFBUZZ" system-configuration-features) ; no alternative
(push 'harfbuzz features))
(if (bound-and-true-p module-file-suffix)
(push 'dynamic-modules features))
;;; Garbage collection
;; Garbage collection significantly affects startup times. This setting delays
;; garbage collection during startup but will be reset later.
(setq gc-cons-threshold most-positive-fixnum)
(add-hook 'emacs-startup-hook
(lambda ()
(setq gc-cons-threshold minimal-emacs-gc-cons-threshold)))
;;; Performance
;; Prefer loading newer compiled files
(setq load-prefer-newer t)
;; Increase how much is read from processes in a single chunk (default is 4kb).
(setq read-process-output-max (* 512 1024)) ; 512kb
;; Reduce rendering/line scan work by not rendering cursors or regions in
;; non-focused windows.
(setq-default cursor-in-non-selected-windows nil)
(setq highlight-nonselected-windows nil)
;; Disable warnings from the legacy advice API. They aren't useful.
(setq ad-redefinition-action 'accept)
(setq warning-suppress-types '((lexical-binding)))
;; Don't ping things that look like domain names.
(setq ffap-machine-p-known 'reject)
;; By default, Emacs "updates" its ui more often than it needs to
(setq idle-update-delay 1.0)
;; Font compacting can be very resource-intensive, especially when rendering
;; icon fonts on Windows. This will increase memory usage.
(setq inhibit-compacting-font-caches t)
(unless (daemonp)
(let ((old-value (default-toplevel-value 'file-name-handler-alist)))
(set-default-toplevel-value
'file-name-handler-alist
;; Determine the state of bundled libraries using calc-loaddefs.el.
;; If compressed, retain the gzip handler in `file-name-handler-alist`.
;; If compiled or neither, omit the gzip handler during startup for
;; improved startup and package load time.
(if (eval-when-compile
(locate-file-internal "calc-loaddefs.el" load-path))
nil
(list (rassq 'jka-compr-handler old-value))))
;; Ensure the new value persists through any current let-binding.
(set-default-toplevel-value 'file-name-handler-alist
file-name-handler-alist)
;; Remember the old value to reset it as needed.
(add-hook 'emacs-startup-hook
(lambda ()
(set-default-toplevel-value
'file-name-handler-alist
;; Merge instead of overwrite to preserve any changes made
;; since startup.
(delete-dups (append file-name-handler-alist old-value))))
101))
(unless noninteractive
(progn
;; Disable mode-line-format during init
(defun minimal-emacs--reset-inhibited-vars-h ()
(setq-default inhibit-redisplay nil
;; Inhibiting `message' only prevents redraws and
inhibit-message nil)
(redraw-frame))
(defvar minimal-emacs--default-mode-line-format mode-line-format
"Default value of `mode-line-format'.")
(setq-default mode-line-format nil)
(defun minimal-emacs--startup-load-user-init-file (fn &rest args)
"Advice for startup--load-user-init-file to reset mode-line-format."
(let (init)
(unwind-protect
(progn
(apply fn args) ; Start up as normal
(setq init t))
(unless init
;; If we don't undo inhibit-{message, redisplay} and there's an
;; error, we'll see nothing but a blank Emacs frame.
(minimal-emacs--reset-inhibited-vars-h))
(unless (default-toplevel-value 'mode-line-format)
(setq-default mode-line-format
minimal-emacs--default-mode-line-format)))))
(advice-add 'startup--load-user-init-file :around
#'minimal-emacs--startup-load-user-init-file))
;; Without this, Emacs will try to resize itself to a specific column size
(setq frame-inhibit-implied-resize t)
;; A second, case-insensitive pass over `auto-mode-alist' is time wasted.
;; No second pass of case-insensitive search over auto-mode-alist.
(setq auto-mode-case-fold nil)
;; Reduce *Message* noise at startup. An empty scratch buffer (or the
;; dashboard) is more than enough, and faster to display.
(setq inhibit-startup-screen t
inhibit-startup-echo-area-message user-login-name)
(setq initial-buffer-choice nil
inhibit-startup-buffer-menu t
inhibit-x-resources t)
;; Disable bidirectional text scanning for a modest performance boost.
(setq-default bidi-display-reordering 'left-to-right
bidi-paragraph-direction 'left-to-right)
;; Give up some bidirectional functionality for slightly faster re-display.
(setq bidi-inhibit-bpa t)
;; Remove "For information about GNU Emacs..." message at startup
(advice-add #'display-startup-echo-area-message :override #'ignore)
;; Suppress the vanilla startup screen completely. We've disabled it with
;; `inhibit-startup-screen', but it would still initialize anyway.
(advice-add #'display-startup-screen :override #'ignore)
;; Shave seconds off startup time by starting the scratch buffer in
;; `fundamental-mode'
(setq initial-major-mode 'fundamental-mode
initial-scratch-message nil)
(unless minimal-emacs-debug
;; Unset command line options irrelevant to the current OS. These options
;; are still processed by `command-line-1` but have no effect.
(unless (eq system-type 'darwin)
(setq command-line-ns-option-alist nil))
(unless (memq initial-window-system '(x pgtk))
(setq command-line-x-option-alist nil)))))
;;; Native compilation and Byte compilation
(if (and (featurep 'native-compile)
(fboundp 'native-comp-available-p)
(native-comp-available-p))
;; Activate `native-compile'
(setq native-comp-jit-compilation t
native-comp-deferred-compilation t ; Obsolete since Emacs 29.1
package-native-compile t)
;; Deactivate the `native-compile' feature if it is not available
(setq features (delq 'native-compile features)))
;; Suppress compiler warnings and don't inundate users with their popups.
(setq native-comp-async-report-warnings-errors
(or minimal-emacs-debug 'silent))
(setq native-comp-warning-on-missing-source minimal-emacs-debug)
(setq debug-on-error minimal-emacs-debug
jka-compr-verbose minimal-emacs-debug)
(setq byte-compile-warnings minimal-emacs-debug)
(setq byte-compile-verbose minimal-emacs-debug)
;;; UI elements
(setq frame-title-format minimal-emacs-frame-title-format
icon-title-format minimal-emacs-frame-title-format)
;; Disable startup screens and messages
(setq inhibit-splash-screen t)
;; I intentionally avoid calling `menu-bar-mode', `tool-bar-mode', and
;; `scroll-bar-mode' because manipulating frame parameters can trigger or queue
;; a superfluous and potentially expensive frame redraw at startup, depending
;; on the window system. The variables must also be set to `nil' so users don't
;; have to call the functions twice to re-enable them.
(unless (memq 'menu-bar minimal-emacs-ui-features)
(push '(menu-bar-lines . 0) default-frame-alist)
(unless (memq window-system '(mac ns))
(setq menu-bar-mode nil)))
(unless (daemonp)
(unless noninteractive
(when (fboundp 'tool-bar-setup)
;; Temporarily override the tool-bar-setup function to prevent it from
;; running during the initial stages of startup
(advice-add #'tool-bar-setup :override #'ignore)
(define-advice startup--load-user-init-file
(:before (&rest _) minimal-emacs-setup-toolbar)
(advice-remove #'tool-bar-setup #'ignore)
(tool-bar-setup)))))
(unless (memq 'tool-bar minimal-emacs-ui-features)
(push '(tool-bar-lines . 0) default-frame-alist)
(setq tool-bar-mode nil))
(push '(vertical-scroll-bars) default-frame-alist)
(push '(horizontal-scroll-bars) default-frame-alist)
(setq scroll-bar-mode nil)
(when (fboundp 'horizontal-scroll-bar-mode)
(horizontal-scroll-bar-mode -1))
(unless (memq 'tooltips minimal-emacs-ui-features)
(when (bound-and-true-p tooltip-mode)
(tooltip-mode -1)))
;; Disable GUIs because they are inconsistent across systems, desktop
;; environments, and themes, and they don't match the look of Emacs.
(unless (memq 'dialogs minimal-emacs-ui-features)
(setq use-file-dialog nil)
(setq use-dialog-box nil))
;; Allow for shorter responses: "y" for yes and "n" for no.
(if (boundp 'use-short-answers)
(setq use-short-answers t)
(advice-add #'yes-or-no-p :override #'y-or-n-p))
(defalias #'view-hello-file #'ignore) ; Never show the hello file
;;; package.el
(setq package-enable-at-startup nil)
(setq package-quickstart nil)
(setq use-package-always-ensure t)
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
("melpa-stable" . "https://stable.melpa.org/packages/")
("gnu" . "https://elpa.gnu.org/packages/")
("nongnu" . "https://elpa.nongnu.org/nongnu/")))
(customize-set-variable 'package-archive-priorities '(("gnu" . 99)
("nongnu" . 80)
("stable" . 70)
("melpa" . 0)))
;;; Load post-early-init.el
(minimal-emacs-load-user-init "post-early-init.el")
(provide 'early-init)
;;; early-init.el ends here
+356
View File
@@ -0,0 +1,356 @@
;;; init.el --- Init -*- no-byte-compile: t; lexical-binding: t; -*-
;; Author: James Cherti
;; URL: https://github.com/jamescherti/minimal-emacs.d
;; Package-Requires: ((emacs "29.1"))
;; Keywords: maint
;; Version: 1.1.0
;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Commentary:
;; The minimal-emacs.d starter kit provides improved Emacs defaults and
;; optimized startup, intended to serve as a solid foundation for your vanilla
;; Emacs configuration and enhance your overall Emacs experience.
;;; Code:
;;; Load pre-init.el
(minimal-emacs-load-user-init "pre-init.el")
;;; package.el
(when (bound-and-true-p minimal-emacs-package-initialize-and-refresh)
;; Initialize and refresh package contents again if needed
(package-initialize)
(unless package-archive-contents
(package-refresh-contents))
;; Install use-package if necessary
(unless (package-installed-p 'use-package)
(package-install 'use-package))
;; Ensure use-package is available at compile time
(eval-when-compile
(require 'use-package)))
;; Ensure the 'use-package' package is installed and loaded
;;; Minibuffer
;; Allow nested minibuffers
(setq enable-recursive-minibuffers t)
;; Keep the cursor out of the read-only portions of the.minibuffer
(setq minibuffer-prompt-properties
'(read-only t intangible t cursor-intangible t face
minibuffer-prompt))
(add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)
;;; Misc
;; switch-to-buffer runs pop-to-buffer-same-window instead
(setq switch-to-buffer-obey-display-actions t)
(setq show-paren-delay 0.1
show-paren-highlight-openparen t
show-paren-when-point-inside-paren t
show-paren-when-point-in-periphery t)
(setq whitespace-line-column nil) ; whitespace-mode
;; I reduced the default value of 9 to simplify the font-lock keyword,
;; aiming to improve performance. This package helps differentiate
;; nested delimiter pairs, particularly in languages with heavy use of
;; parentheses.
(setq rainbow-delimiters-max-face-count 5)
;; Can be activated with `display-line-numbers-mode'
(setq-default display-line-numbers-width 3)
(setq-default display-line-numbers-widen t)
(setq comint-prompt-read-only t)
(setq comint-buffer-maximum-size 2048)
(setq compilation-always-kill t
compilation-ask-about-save nil
compilation-scroll-output 'first-error)
(setq truncate-string-ellipsis "…")
;; Configure Emacs to ask for confirmation before exiting
(setq confirm-kill-emacs 'y-or-n-p)
;; Delete by moving to trash in interactive mode
(setq delete-by-moving-to-trash (not noninteractive))
;;; Files
;; Disable the warning "X and Y are the same file". Ignoring this warning is
;; acceptable since it will redirect you to the existing buffer regardless.
(setq find-file-suppress-same-file-warnings t)
;; Resolve symlinks when opening files, so that any operations are conducted
;; from the file's true directory (like `find-file').
(setq find-file-visit-truename t
vc-follow-symlinks t)
;; Skip confirmation prompts when creating a new file or buffer
(setq confirm-nonexistent-file-or-buffer nil)
(setq uniquify-buffer-name-style 'forward)
(setq mouse-yank-at-point t)
;; Prefer vertical splits over horizontal ones
(setq split-width-threshold 170
split-height-threshold nil)
;; The native border "uses" a pixel of the fringe on the rightmost
;; splits, whereas `window-divider` does not.
(setq window-divider-default-bottom-width 1
window-divider-default-places t
window-divider-default-right-width 1)
(add-hook 'after-init-hook #'window-divider-mode)
;;; Backup files
;; Avoid generating backups or lockfiles to prevent creating world-readable
;; copies of files.
(setq create-lockfiles nil)
(setq make-backup-files nil)
(setq backup-directory-alist
`(("." . ,(expand-file-name "backup" user-emacs-directory))))
(setq tramp-backup-directory-alist backup-directory-alist)
(setq backup-by-copying-when-linked t)
(setq backup-by-copying t) ; Backup by copying rather renaming
(setq delete-old-versions t) ; Delete excess backup versions silently
(setq version-control t) ; Use version numbers for backup files
(setq kept-new-versions 5)
(setq kept-old-versions 5)
(setq vc-make-backup-files nil) ; Do not backup version controlled files
;;; Auto save
;; Enable auto-save to safeguard against crashes or data loss. The
;; `recover-file' or `recover-session' functions can be used to restore
;; auto-saved data.
(setq auto-save-default t)
;; Do not auto-disable auto-save after deleting large chunks of
;; text. The purpose of auto-save is to provide a failsafe, and
;; disabling it contradicts this objective.
(setq auto-save-include-big-deletions t)
(setq auto-save-list-file-prefix
(expand-file-name "autosave/" user-emacs-directory))
(setq tramp-auto-save-directory
(expand-file-name "tramp-autosave/" user-emacs-directory))
;; Auto save options
(setq kill-buffer-delete-auto-save-files t)
;;; Auto revert
;; Auto-revert in Emacs is a feature that automatically updates the
;; contents of a buffer to reflect changes made to the underlying file
;; on disk.
(setq revert-without-query (list ".") ; Do not prompt
auto-revert-stop-on-user-input nil
auto-revert-verbose t)
;; Revert other buffers (e.g, Dired)
(setq global-auto-revert-non-file-buffers t)
;;; recentf
;; `recentf' is an Emacs package that maintains a list of recently
;; accessed files, making it easier to reopen files you have worked on
;; recently.
(setq recentf-max-saved-items 300) ; default is 20
(setq recentf-auto-cleanup 'mode)
;;; saveplace
;; `save-place-mode` enables Emacs to remember the last location within a file
;; upon reopening. This feature is particularly beneficial for resuming work at
;; the precise point where you previously left off.
(setq save-place-file (expand-file-name "saveplace" user-emacs-directory))
(setq save-place-limit 600)
;;; savehist
;; `savehist` is an Emacs feature that preserves the minibuffer history between
;; sessions. It saves the history of inputs in the minibuffer, such as commands,
;; search strings, and other prompts, to a file. This allows users to retain
;; their minibuffer history across Emacs restarts.
(setq history-length 300)
(setq savehist-save-minibuffer-history t) ;; Default
;;; Frames and windows
;; Resizing the Emacs frame can be costly when changing the font. Disable this
;; to improve startup times with fonts larger than the system default.
(setq frame-resize-pixelwise t)
;; However, do not resize windows pixelwise, as this can cause crashes in some
;; cases when resizing too many windows at once or rapidly.
(setq window-resize-pixelwise nil)
(setq resize-mini-windows 'grow-only)
;;; Scrolling
;; Enables faster scrolling through unfontified regions. This may result in
;; brief periods of inaccurate syntax highlighting immediately after scrolling,
;; which should quickly self-correct.
(setq fast-but-imprecise-scrolling t)
;; Move point to top/bottom of buffer before signaling a scrolling error.
(setq scroll-error-top-bottom t)
;; Keeps screen position if the scroll command moved it vertically out of the
;; window.
(setq scroll-preserve-screen-position t)
;;; Mouse
;; Emacs 29
(when (memq 'context-menu minimal-emacs-ui-features)
(when (and (display-graphic-p) (fboundp 'context-menu-mode))
(add-hook 'after-init-hook #'context-menu-mode)))
(setq hscroll-margin 2
hscroll-step 1
;; Emacs spends excessive time recentering the screen when the cursor
;; moves more than N lines past the window edges (where N is the value of
;; `scroll-conservatively`). This can be particularly slow in larger files
;; during extensive scrolling. If `scroll-conservatively` is set above
;; 100, the window is never automatically recentered. The default value of
;; 0 triggers recentering too aggressively. Setting it to 10 reduces
;; excessive recentering and only recenters the window when scrolling
;; significantly off-screen.
scroll-conservatively 10
scroll-margin 0
scroll-preserve-screen-position t
;; Reduce cursor lag by preventing automatic adjustments to
;; `window-vscroll' for unusually long lines. Setting
;; `auto-window-vscroll' it to nil also resolves the issue of random
;; half-screen jumps during scrolling.
auto-window-vscroll nil
;; Mouse
mouse-wheel-scroll-amount '(1 ((shift) . hscroll))
mouse-wheel-scroll-amount-horizontal 1)
;;; Cursor
;; The blinking cursor is distracting and interferes with cursor settings in
;; some minor modes that try to change it buffer-locally (e.g., Treemacs).
;; Additionally, it can cause freezing, especially on macOS, for users with
;; customized and colored cursors.
(blink-cursor-mode -1)
;; Don't blink the paren matching the one at point, it's too distracting.
(setq blink-matching-paren nil)
;; Don't stretch the cursor to fit wide characters, it is disorienting,
;; especially for tabs.
(setq x-stretch-cursor nil)
;;; Annoyances
;; No beeping or blinking
(setq visible-bell nil)
(setq ring-bell-function #'ignore)
;; This controls how long Emacs will blink to show the deleted pairs with
;; `delete-pair'. A longer delay can be annoying as it causes a noticeable pause
;; after each deletion, disrupting the flow of editing.
(setq delete-pair-blink-delay 0.03)
;;; Indent and formatting
(setq-default left-fringe-width 8)
(setq-default right-fringe-width 8)
;; Do not show an arrow at the top/bottomin the fringe and empty lines
(setq-default indicate-buffer-boundaries nil)
(setq-default indicate-empty-lines nil)
;; Continue wrapped lines at whitespace rather than breaking in the
;; middle of a word.
(setq-default word-wrap t)
;; Disable wrapping by default due to its performance cost.
(setq-default truncate-lines t)
;; If enabled and `truncate-lines' is disabled, soft wrapping will not occur
;; when the window is narrower than `truncate-partial-width-windows' characters.
(setq truncate-partial-width-windows nil)
;; Prefer spaces over tabs. Spaces offer a more consistent default compared to
;; 8-space tabs. This setting can be adjusted on a per-mode basis as needed.
(setq-default indent-tabs-mode nil
tab-width 4)
;; Enable indentation and completion using the TAB key
(setq-default tab-always-indent nil)
;; Enable multi-line commenting which ensures that `comment-indent-new-line'
;; properly continues comments onto new lines, which is useful for writing
;; longer comments or docstrings that span multiple lines.
(setq comment-multi-line t)
;; We often split terminals and editor windows or place them side-by-side,
;; making use of the additional horizontal space.
(setq-default fill-column 80)
;; Disable the obsolete practice of end-of-line spacing from the
;; typewriter era.
(setq sentence-end-double-space nil)
;; According to the POSIX, a line is defined as "a sequence of zero or
;; more non-newline characters followed by a terminating newline".
(setq require-final-newline t)
;; Remove duplicates from the kill ring to reduce clutter
(setq kill-do-not-save-duplicates t)
;; Ensures that empty lines within the commented region are also commented out.
;; This prevents unintended visual gaps and maintains a consistent appearance,
;; ensuring that comments apply uniformly to all lines, including those that are
;; otherwise empty.
(setq comment-empty-lines t)
;; Eliminate delay before highlighting search matches
(setq lazy-highlight-initial-delay 0)
;;; Mode line
;; Setting `display-time-default-load-average' to nil makes Emacs omit the load
;; average information from the mode line.
(setq display-time-default-load-average nil)
;; Display the current line and column numbers in the mode line
(setq line-number-mode t)
(setq column-number-mode t)
;;; Filetype
;; Do not notify the user each time Python tries to guess the indentation offset
(setq python-indent-guess-indent-offset-verbose nil)
(setq sh-indent-after-continuation 'always)
(setq dired-clean-confirm-killing-deleted-buffers nil
dired-recursive-deletes 'top
dired-recursive-copies 'always
dired-create-destination-dirs 'ask)
;;; Font / Text scale
;; Avoid automatic frame resizing when adjusting settings.
(setq global-text-scale-adjust-resizes-frames nil)
;;; Ediff
;; Configure Ediff to use a single frame and split windows horizontally
(setq ediff-window-setup-function #'ediff-setup-windows-plain
ediff-split-window-function #'split-window-horizontally)
;;; Load post-init.el
(minimal-emacs-load-user-init "post-init.el")
(provide 'init)
;;; init.el ends here
@@ -0,0 +1,7 @@
,#+TITLE: ${title}
,#+AUTHOR: Steve Beaulac
,#+OPTIONS: title:nil toc:nil
,#+EXPORT_FILE_NAME: /tmp/
,#+LaTex_CLASS: short
,#+LATEX_HEADER: \runningtitle{Shortened Title}
,#+LATEX_HEADER: wordcount{36}
+55
View File
@@ -0,0 +1,55 @@
;;;; post-early-init.el --- Early Init -*- no-byte-compile: t; lexical-binding: t; -*-
;; Compile warnings
(setq warning-minimum-level :emergency)
(setq warning-minimum-log-level :emergency)
(setq gc-cons-percentage 0.6)
;; Revert Dired and other buffers
(customize-set-variable 'global-auto-revert-non-file-buffers t)
;; Revert buffers when the underlying file has changed
(add-hook 'after-init-hooks #'global-auto-revert-mode)
(setq auto-revert-interval 1)
(setq-default default-frame-alist '((undecorated . t)))
(setq process-adaptive-read-buffering nil)
(add-hook 'focus-out-hook #'garbage-collect)
;(add-hook 'after-save-hook #'garbage-collect)
;(run-with-idle-timer 5 t (lambda () (garbage-collect)))
(setq-default ispell-program-name "aspell")
(setq-default ispell-local-dictionary "english")
(when (fboundp 'set-scroll-bar-mode)
(set-scroll-bar-mode nil))
(when (fboundp 'pixel-scroll-precision-mode)
(setq pixel-scroll-precision-large-scroll-height 40.0)
(pixel-scroll-precision-mode 1))
(when (fboundp 'pixel-scroll-mode)
(pixel-scroll-mode 1))
(setq tramp-default-host "localhost")
;; disable startup messages
(setq inhibit-startup-message t)
(setq large-file-warning-threshold nil)
;;; package.el
;;(setq use-package-expand-minimally t)
;;(setq package-install-upgrade-built-in t)
;;(setq use-package-enable-imenu-support t)
(when init-file-debug
(setq use-package-verbose t
use-package-debug t
use-package-expand-minimally nil
use-package-compute-statistics t
debug-on-error t))
(provide 'post-early-init)
File diff suppressed because it is too large Load Diff
+34
View File
@@ -0,0 +1,34 @@
;;;; pre-init.el --- Init -*- no-byte-compile: t; lexical-binding: t; -*-
;; handle emacs server
(defun server-already-running-p ()
"Is Emacs already running?"
(or (file-exists-p (format "/tmp/emacs%s/server" (user-uid)))
(file-exists-p (format "/run/user/%s/snap.emacs/emacs/server" (user-uid)))
(file-exists-p (format "/run/user/%s/emacs/server" (user-uid)))))
(defun server-shunt ()
"Shunts to emacsclient"
(let ((args (append '("emacsclient" "-a" "\"\"" "-c" "-n")
(cdr command-line-args))))
(shell-command (substring (format "%S" args) 1 -1))
(kill-emacs)))
;; restart with emacsclient if server is running
(unless (featurep 'server)
(if (server-already-running-p) (server-shunt) (server-start)))
(fset 'epg-wait-for-status 'ignore)
(fset 'epg-pinentry-mode 'loopback)
;;(fset 'epg-debug t)
(require 'package)
(require 'xdg)
(setq package-user-dir (expand-file-name "emacs/elpa" (xdg-cache-home)))
;; make sure the elpa/ folder exists after setting it above.
(unless (file-exists-p package-user-dir)
(mkdir package-user-dir t))
(provide 'pre-init)
@@ -0,0 +1,11 @@
# -*- mode: snippet -*-
# name: insert-preamble
# key: ---
# --
/**
,* @brief $0
,* @ingroup
,*
,* @date `(format-time-string "%Y-%m-%d")`
,* @author `(eval user-full-name)`
,*/
@@ -0,0 +1,8 @@
# -*- mode: snippet; require-final-newline: nil -*-
# name: foreach (... in ...) { ... }
# key: foreach
# --
foreach (var $1 in $2) {
$3
}
$0
+8
View File
@@ -0,0 +1,8 @@
# -*- mode: snippet; require-final-newline: nil -*-
# name: ifunc
# key: ifunc
# binding: direct-keybinding
# --
func ($1) $2 {
$0
}
+6
View File
@@ -0,0 +1,6 @@
# -*- mode: snippet; require-final-newline: nil -*-
# name: json
# key: json
# binding: direct-keybinding
# --
\`json:"$1"\`
@@ -0,0 +1,6 @@
# -*- mode: snippet; require-final-newline: nil -*-
# name: Copyright
# key: Copyright
# binding: direct-keybinding
# --
Copyright (c) `(format-time-string "%Y")` ${1:$$(yas-choose-value '("Sagacity Solutions Inc" "National Centre for Audiology"))}. All right reserved.
+2
View File
@@ -0,0 +1,2 @@
// Copyright (c) `(format-time-string "%Y")` ${1:$$(yas-choose-value '("Sagacity Solutions Inc" "National Centre for Audiology"))}. All right reserved.
$0
+4
View File
@@ -0,0 +1,4 @@
// -*- csharp -*- -- ${1:`(file-name-nondirectory (buffer-file-name))`} : ${2} --
// Copyright (c) `(format-time-string "%Y")` ${3:$$(yas-choose-value '("Sagacity Solutions Inc" "National Centre for Audiology"))}. All right reserved.
$0
+5
View File
@@ -0,0 +1,5 @@
// Copyright (c) `(format-time-string "%Y")` ${1:$$(yas-choose-value '("Sagacity Solutions Inc" "National Centre for Audiology"))}. All right reserved.
package ${2:main}
$0
+4
View File
@@ -0,0 +1,4 @@
// Copyright (c) `(format-time-string "%Y")` ${1:$$(yas-choose-value '("Sagacity Solutions Inc" "National Centre for Audiology"))}. All right reserved.
'use strict' ;
$0
+2
View File
@@ -0,0 +1,2 @@
# Copyright (c) `(format-time-string "%Y")` ${1:$$(yas-choose-value '("Sagacity Solutions Inc" "National Centre for Audiology"))}. All right reserved.
$0
+19
View File
@@ -0,0 +1,19 @@
#!/bin/${1:sh}
# ----------------------------------------------------------------------
# `(upcase (file-name-nondirectory (file-name-sans-extension (buffer-file-name))))`: $0
# ----------------------------------------------------------------------
OPT1="default value" # Setup a default value
OPT2=0
while getopts "d:s" o
do case "$o" in
d) OPT1="$OPTARG";;
s) OPT2=1;;
[?]) print >&2 "Usage: \$0 [-s] [-d seplist] file ..."
exit 1;;
esac
done
shift $(expr $OPTIND - 1)
# ----------------------------------------------------------------------
+3
View File
@@ -0,0 +1,3 @@
// Copyright (c) `(format-time-string "%Y")` ${1:$$(yas-choose-value '("Sagacity Solutions Inc" "National Centre for Audiology"))}. All right reserved.
$0
+6
View File
@@ -0,0 +1,6 @@
<template>
$0
</template>
<script>
</script>
@@ -0,0 +1,439 @@
;;; ef-catppuccin-frappe-theme.el --- implementation of catppuccin-frappe theme using ef-themes -*- lexical-binding:t -*-
;; Copyright (C) 2022-2024 Free Software Foundation, Inc.
;; Author: Steve Beaulac <steve@beaulac.me>
;; Maintainer: Steve Beaulac <steve@beaulac.me>
;; URL: https://github.com/SjB/ef-catppuccin
;; Keywords: faces, theme, accessibility
;; This file is NOT part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; The `ef-themes' are a collection of light and dark themes for GNU
;; Emacs whose goal is to provide colorful ("pretty") yet legible
;; options for users who want something with a bit more flair than the
;; `modus-themes' (also designed by me).
;;; Code:
(eval-and-compile
(require 'ef-themes)
(deftheme ef-catppuccin-frappe
"ef-themes of the catppuccin-frappe palette"
:background-mode 'dark
:kind 'color-scheme
:family 'ef)
(defconst ef-catppuccin-frappe-palette
'(
;;; Basic values
;;; Basic hues for foreground values
(crust "#232634")
(mantle "#292c3c")
(base "#303446")
(surface0 "#414559")
(surface1 "#51576d")
(surface2 "#626880")
(overlay0 "#737994")
(overlay1 "#838BA7")
(overlay2 "#949CBB")
(text "#c6d0f5")
(subtext0 "#a5adce")
(subtext1 "#b5bfe2")
(rosewater "#f2d5cf")
(rosewater-warmer "#fed5c2")
(rosewater-cooler "#e5d5db")
(rosewater-faint "#fbf3f2")
(rosewater-intense "#f9cfc7")
(bg-rosewater-intense "#82655d")
(bg-rosewater-subtle "#b0452f")
(flamingo "#eebebe")
(flamingo-warmer "#fabeb1")
(flamingo-cooler "#e1beca")
(flamingo-faint "#f6dfdf")
(flamingo-intense "#f8b3b3")
(bg-flamingo-intense "#7e5757")
(bg-flamingo-subtle "#a92c2c")
(pink "#f3b8e4")
(pink-warmer "#ffb8d7")
(pink-cooler "#e6b8f0")
(pink-faint "#f9dcf1")
(pink-intense "#fdade9")
(bg-pink-intense "#8b4979")
(bg-pink-subtle "#b61e90")
(mauve "#ca9ee6")
(mauve-warmer "#d69ed9")
(mauve-cooler "#bd9ef2")
(mauve-faint "#dabced")
(mauve-intense "#cd8ef5")
(bg-mauve-intense "#644e72")
(bg-mauve-subtle "#6d279a")
(red "#e78284")
(red-warmer "#f38277")
(red-cooler "#da8290")
(red-faint "#eca0a1")
(red-intense "#f96f72")
(bg-red-intense "#734041")
(bg-red-subtle "#971d1f")
(maroon "#ea999c")
(maroon-warmer "#f6998f")
(maroon-cooler "#dd99a8")
(maroon-faint "#f0b9bb")
(maroon-intense "#f9898d")
(bg-maroon-intense "#794749")
(bg-maroon-subtle "#a02125")
(peach "#ef9f76")
(peach-warmer "#fb9f69")
(peach-cooler "#e29f82")
(peach-faint "#f2b595")
(peach-intense "#ff9965")
(bg-peach-intense "#7b4d36")
(bg-peach-subtle "#9f4212")
(yellow "#e5c890")
(yellow-warmer "#f1c883")
(yellow-cooler "#d8c89c")
(yellow-faint "#ecd6ae")
(yellow-intense "#f6cd7e")
(bg-yellow-intense "#716348")
(bg-yellow-subtle "#976f23")
(green "#a6d189")
(green-warmer "#b2d17c")
(green-cooler "#99d195")
(green-faint "#b8daa1")
(green-intense "#a2e574")
(bg-green-intense "#555952")
(bg-green-subtle "#4f7c30")
(teal "#81c8be")
(teal-warmer "#8dc8b1")
(teal-cooler "#74c8ca")
(teal-faint "#97d1c9")
(teal-intense "#6adece")
(bg-teal-intense "#525252")
(bg-teal-subtle "#317269")
(blue "#8caaee")
(blue-warmer "#98aae1")
(blue-cooler "#7faafa")
(blue-faint "#acc2f2")
(blue-intense "#7ba3fe")
(bg-blue-intense "#3e527e")
(bg-blue-subtle "#1843a4")
(sky "#99d1db")
(sky-warmer "#a5d1ce")
(sky-cooler "#8cd1e7")
(sky-faint "#b4dde4")
(sky-intense "#87ddec")
(bg-sky-intense "#556164")
(bg-sky-subtle "#307c89")
(sapphire "#85c1dc")
(sapphire-warmer "#91c1cf")
(sapphire-cooler "#78c1e8")
(sapphire-faint "#a0cee3")
(sapphire-intense "#71c8ef")
(bg-sapphire-intense "#4a5d65")
(bg-sapphire-subtle "#276a89")
(lavender "#babbf1")
(lavender-warmer "#c6bbe4")
(lavender-cooler "#adbbfd")
(lavender-faint "#ddddf8")
(lavender-intense "#afb1fb")
(bg-lavender-intense "#4e4e86")
(bg-lavender-subtle "#2426b1")
;;; remaping colors to properties
(bg-main base)
(bg-dim mantle)
(bg-alt crust)
(fg-main text)
(fg-dim subtext0)
(fg-alt subtext1)
(bg-inactive surface0)
(bg-active surface1)
;;; mauve is replacing magenta
(magenta mauve)
(magenta-warmer mauve-warmer)
(magenta-cooler mauve-cooler)
(magenta-faint mauve-faint)
(bg-magenta-intense bg-mauve-intense)
(bg-magenta-subtle bg-mauve-subtle)
;;; sapphire is replacing cyan
(cyan sapphire)
(cyan-warmer sapphire-warmer)
(cyan-cooler sapphire-cooler)
(cyan-faint sapphire-faint)
(bg-cyan-intense bg-sapphire-intense)
(bg-cyan-subtle bg-sapphire-subtle)
;;; Diffs
(bg-added bg-active)
(bg-added-faint bg-inactive)
(bg-added-refine bg-green-subtle)
(fg-added green)
(bg-changed bg-active)
(bg-changed-faint bg-inactive)
(bg-changed-refine bg-blue-subtle)
(fg-changed blue)
(bg-removed bg-active)
(bg-removed-faint bg-inactive)
(bg-removed-refine bg-red-subtle)
(fg-removed red)
;;; Graphs
(bg-graph-red-0 bg-maroon-subtle)
(bg-graph-red-1 bg-maroon-intense)
(bg-graph-green-0 bg-teal-subtle)
(bg-graph-green-1 bg-teal-intense)
(bg-graph-yellow-0 bg-rosewater-subtle)
(bg-graph-yellow-1 bg-rosewater-intense)
(bg-graph-blue-0 bg-sky-subtle)
(bg-graph-blue-1 bg-sky-intense)
(bg-graph-magenta-0 bg-pink-subtle)
(bg-graph-magenta-1 bg-pink-intense)
(bg-graph-cyan-0 bg-lavender-subtle)
(bg-graph-cyan-1 bg-lavender-intense)
;;; Special hues
(bg-mode-line mantle)
(fg-mode-line text)
(bg-completion overlay0)
(bg-hover overlay1)
(bg-hover-secondary overlay2)
(bg-hl-line crust)
(bg-region overlay2)
(bg-paren surface2)
(bg-err bg-red-intense) ; check with err
(bg-warning bg-yellow-intense) ; check with warning
(bg-info bg-green-intense) ; check with info
(border lavender)
(cursor rosewater)
(fg-intense subtext1)
(modeline-err red)
(modeline-warning yellow)
(modeline-info green)
(underline-err red-intense)
(underline-warning yellow-intense)
(underline-info green-intense)
(bg-char-0 surface0)
(bg-char-1 surface1)
(bg-char-2 surface2)
;;; Conditional hues
(bg-region-intense bg-lavender-intense)
(fg-region crust)
;;; Mappings
;;;; General mappings
(bg-fringe bg-main)
(fg-fringe fg-main)
(err red)
(warning yellow)
(info green)
(link blue)
(link-alt lavender)
(name green)
(keybind teal)
(identifier sapphire)
(prompt flamingo)
;;;; Code mappings
(builtin red)
(comment overlay0)
(constant peach)
(fnname flamingo)
(keyword mauve)
(preprocessor sky)
(docstring sapphire)
(string green)
(type yellow)
(variable green)
(rx-escape rosewater) ; compare with `string'
(rx-construct maroon)
;;;; Accent mappings
(accent-0 blue)
(accent-1 mauve)
(accent-2 green)
(accent-3 red)
;;;; Date mappings
(date-common green-cooler)
(date-deadline red-warmer)
(date-event fg-alt)
(date-holiday mauve-faint)
(date-now fg-main)
(date-range fg-alt)
(date-scheduled yellow)
(date-weekday sapphire)
(date-weekend red-faint)
;;;; Prose mappings
(prose-code mauve-warmer)
(prose-done green)
(prose-macro green-cooler)
(prose-metadata fg-dim)
(prose-metadata-value fg-alt)
(prose-table fg-alt)
(prose-table-formula err)
(prose-tag yellow-faint)
(prose-todo red-warmer)
(prose-verbatim blue)
;;;; Mail mappings
(mail-cite-0 blue)
(mail-cite-1 mauve-warmer)
(mail-cite-2 green-cooler)
(mail-cite-3 yellow-cooler)
(mail-part mauve-faint)
(mail-recipient blue-warmer)
(mail-subject blue-cooler)
(mail-other sapphire)
;;;; Search mappings
(bg-search-match bg-warning)
(bg-search-current bg-yellow-intense)
(bg-search-lazy bg-blue-intense)
(bg-search-replace bg-red-intense)
(bg-search-rx-group-0 bg-magenta-intense)
(bg-search-rx-group-1 bg-green-intense)
(bg-search-rx-group-2 bg-red-subtle)
(bg-search-rx-group-3 bg-cyan-subtle)
;;;; Space mappings
(bg-space unspecified)
(fg-space border)
(bg-space-err bg-maroon-intense)
;;;; Tab mappings
(bg-tab-bar bg-alt)
(bg-tab-current bg-main)
(bg-tab-other bg-active)
;;;; Terminal mappings
(bg-term-black "black")
(fg-term-black "black")
(bg-term-black-bright "gray35")
(fg-term-black-bright "gray35")
(bg-term-red red-cooler)
(fg-term-red red-cooler)
(bg-term-red-bright red-warmer)
(fg-term-red-bright red-warmer)
(bg-term-green green)
(fg-term-green green)
(bg-term-green-bright green-warmer)
(fg-term-green-bright green-warmer)
(bg-term-yellow yellow)
(fg-term-yellow yellow)
(bg-term-yellow-bright yellow-warmer)
(fg-term-yellow-bright yellow-warmer)
(bg-term-blue blue-warmer)
(fg-term-blue blue-warmer)
(bg-term-blue-bright blue-cooler)
(fg-term-blue-bright blue-cooler)
(bg-term-magenta magenta)
(fg-term-magenta magenta)
(bg-term-magenta-bright magenta-cooler)
(fg-term-magenta-bright magenta-cooler)
(bg-term-cyan cyan)
(fg-term-cyan cyan)
(bg-term-cyan-bright cyan-cooler)
(fg-term-cyan-bright cyan-cooler)
(bg-term-white "gray65")
(fg-term-white "gray65")
(bg-term-white-bright "white")
(fg-term-white-bright "white")
;;;; Rainbow mappings
(rainbow-0 marroon)
(rainbow-1 red)
(rainbow-2 peach)
(rainbow-3 yellow)
(rainbow-4 green)
(rainbow-5 sapphire)
(rainbow-6 lavender)
(rainbow-7 sky)
(rainbow-8 teal))
"The `ef-catppuccin-frappe' palette.
Color values have the form (COLOR-NAME HEX-VALUE) with the former
as a symbol and the latter as a string.
Semantic color mappings have the form (MAPPING-NAME COLOR-NAME)
with both as symbols. The latter is a color that already exists
in the palette and is associated with a HEX-VALUE.")
(defcustom ef-catppuccin-frappe-palette-overrides nil
"Overrides for `ef-catppuccin-frappe-palette'.
Mirror the elements of the aforementioned palette, overriding
their value.
For overrides that are shared across all of the Ef themes,
refer to `ef-themes-common-palette-overrides'.
To preview the palette entries, use `ef-themes-preview-colors' or
`ef-themes-preview-colors-current' (read the documentation for
further details)."
:group 'ef-themes
:package-version '(ef-themes . "1.0.0")
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(ef-themes) Palette overrides"))
(ef-themes-theme ef-catppuccin-frappe ef-catppuccin-frappe-palette ef-catppuccin-frappe-palette-overrides)
(provide-theme 'ef-catppuccin-frappe))
@@ -0,0 +1,439 @@
;;; ef-catppuccin-latte-theme.el --- implementation of catppuccin-latte theme using ef-themes -*- lexical-binding:t -*-
;; Copyright (C) 2022-2024 Free Software Foundation, Inc.
;; Author: Steve Beaulac <steve@beaulac.me>
;; Maintainer: Steve Beaulac <steve@beaulac.me>
;; URL: https://github.com/SjB/ef-catppuccin
;; Keywords: faces, theme, accessibility
;; This file is NOT part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; The `ef-themes' are a collection of light and dark themes for GNU
;; Emacs whose goal is to provide colorful ("pretty") yet legible
;; options for users who want something with a bit more flair than the
;; `modus-themes' (also designed by me).
;;; Code:
(eval-and-compile
(require 'ef-themes)
(deftheme ef-catppuccin-latte
"ef-themes of the catppuccin-latte palette"
:background-mode 'light
:kind 'color-scheme
:family 'ef)
(defconst ef-catppuccin-latte-palette
'(
;;; Basic values
;;; Basic hues for foreground values
(crust "#DCE0E8")
(mantle "#E6E9EF")
(base "#EFF1F5")
(surface0 "#CCD0DA")
(surface1 "#BCC0CC")
(surface2 "#ACB0BE")
(overlay0 "#9CA0B0")
(overlay1 "#8C8FA1")
(overlay2 "#7C7F93")
(text "#4C4F69")
(subtext0 "#6C6F85")
(subtext1 "#5C5F77")
(rosewater "#DC8A78")
(rosewater-warmer "#e88a6b")
(rosewater-cooler "#cf8a84")
(rosewater-faint "#e3a193")
(rosewater-intense "#f17c62")
(bg-rosewater-intense "#ffffff")
(bg-rosewater-subtle "#ffffff")
(flamingo "#DD7878")
(flamingo-warmer "#e9786b")
(flamingo-cooler "#d07884")
(flamingo-faint "#e39393")
(flamingo-intense "#f26262")
(bg-flamingo-intense "#ffffff")
(bg-flamingo-subtle "#ffffff")
(pink "#EA76CB")
(pink-warmer "#f676be")
(pink-cooler "#dd76d7")
(pink-faint "#ee94d6")
(pink-intense "#fd62d4")
(bg-pink-intense "#fefffe")
(bg-pink-subtle "#ffffff")
(mauve "#8839EF")
(mauve-warmer "#9439e2")
(mauve-cooler "#7b39fb")
(mauve-faint "#9854f1")
(mauve-intense "#8529ff")
(bg-mauve-intense "#ffffff")
(bg-mauve-subtle "#ffffff")
(red "#D20F39")
(red-warmer "#de0f2c")
(red-cooler "#c50f45")
(red-faint "#e7103e")
(red-intense "#e10030")
(bg-red-intense "#dfa8b4")
(bg-red-subtle "#f792a8")
(maroon "#E64553")
(maroon-warmer "#f24546")
(maroon-cooler "#d9455f")
(maroon-faint "#e95f6b")
(maroon-intense "#ff2c3e")
(bg-maroon-intense "#ffffff")
(bg-maroon-subtle "#ffffff")
(peach "#FE640B")
(peach-warmer "#ff6400")
(peach-cooler "#f16417")
(peach-faint "#fe7425")
(peach-intense "#fe630a")
(bg-peach-intense "#f5e3d8")
(bg-peach-subtle "#fee1d0")
(yellow "#DF8E1D")
(yellow-warmer "#eb8e10")
(yellow-cooler "#d28e29")
(yellow-faint "#e49930")
(yellow-intense "#fc9200")
(bg-yellow-intense "#e8ddce")
(bg-yellow-subtle "#f7e0c1")
(green "#40A02B")
(green-warmer "#4ca01e")
(green-cooler "#33a037")
(green-faint "#46b02f")
(green-intense "#2fb911")
(bg-green-intense "#a8bea2")
(bg-green-subtle "#95de85")
(teal "#179299")
(teal-warmer "#23928c")
(teal-cooler "#0a92a5")
(teal-faint "#19a0a8")
(teal-intense "#00a5af")
(bg-teal-intense "#76b7bb")
(bg-teal-subtle "#4fdce4")
(blue "#1E66F5")
(blue-warmer "#2a66e8")
(blue-cooler "#1166ff")
(blue-faint "#3877f6")
(blue-intense "#1462fe")
(bg-blue-intense "#e7edf7")
(bg-blue-subtle "#e3ecfd")
(sky "#04A5E5")
(sky-warmer "#10a5d8")
(sky-cooler "#00a5f1")
(sky-faint "#05b4fa")
(sky-intense "#00a6e9")
(bg-sky-intense "#add7e8")
(bg-sky-subtle "#9ae1fd")
(sapphire "#209FB5")
(sapphire-warmer "#2c9fa8")
(sapphire-cooler "#139fc1")
(sapphire-faint "#23aec7")
(sapphire-intense "#05b1cf")
(bg-sapphire-intense "#a4c7ce")
(bg-sapphire-subtle "#8adcea")
(lavender "#7287FD")
(lavender-warmer "#7e87f0")
(lavender-cooler "#6587ff")
(lavender-faint "#96a5fd")
(lavender-intense "#7085ff")
(bg-lavender-intense "#ffffff")
(bg-lavender-subtle "#ffffff")
;;; remaping colors to properties
(bg-main base)
(bg-dim mantle)
(bg-alt crust)
(fg-main text)
(fg-dim subtext0)
(fg-alt subtext1)
(bg-inactive surface0)
(bg-active surface1)
;;; mauve is replacing magenta
(magenta mauve)
(magenta-warmer mauve-warmer)
(magenta-cooler mauve-cooler)
(magenta-faint mauve-faint)
(bg-magenta-intense bg-mauve-intense)
(bg-magenta-subtle bg-mauve-subtle)
;;; sapphire is replacing cyan
(cyan sapphire)
(cyan-warmer sapphire-warmer)
(cyan-cooler sapphire-cooler)
(cyan-faint sapphire-faint)
(bg-cyan-intense bg-sapphire-intense)
(bg-cyan-subtle bg-sapphire-subtle)
;;; Diffs
(bg-added bg-active)
(bg-added-faint bg-inactive)
(bg-added-refine bg-green-subtle)
(fg-added green)
(bg-changed bg-active)
(bg-changed-faint bg-inactive)
(bg-changed-refine bg-blue-subtle)
(fg-changed blue)
(bg-removed bg-active)
(bg-removed-faint bg-inactive)
(bg-removed-refine bg-red-subtle)
(fg-removed red)
;;; Graphs
(bg-graph-red-0 bg-maroon-subtle)
(bg-graph-red-1 bg-maroon-intense)
(bg-graph-green-0 bg-teal-subtle)
(bg-graph-green-1 bg-teal-intense)
(bg-graph-yellow-0 bg-rosewater-subtle)
(bg-graph-yellow-1 bg-rosewater-intense)
(bg-graph-blue-0 bg-sky-subtle)
(bg-graph-blue-1 bg-sky-intense)
(bg-graph-magenta-0 bg-pink-subtle)
(bg-graph-magenta-1 bg-pink-intense)
(bg-graph-cyan-0 bg-lavender-subtle)
(bg-graph-cyan-1 bg-lavender-intense)
;;; Special hues
(bg-mode-line mantle)
(fg-mode-line text)
(bg-completion overlay0)
(bg-hover overlay1)
(bg-hover-secondary overlay2)
(bg-hl-line crust)
(bg-region overlay2)
(bg-paren surface2)
(bg-err bg-red-intense) ; check with err
(bg-warning bg-yellow-intense) ; check with warning
(bg-info bg-green-intense) ; check with info
(border lavender)
(cursor rosewater)
(fg-intense subtext1)
(modeline-err red)
(modeline-warning yellow)
(modeline-info green)
(underline-err red-intense)
(underline-warning yellow-intense)
(underline-info green-intense)
(bg-char-0 surface0)
(bg-char-1 surface1)
(bg-char-2 surface2)
;;; Conditional hues
(bg-region-intense bg-lavender-intense)
(fg-region crust)
;;; Mappings
;;;; General mappings
(bg-fringe bg-main)
(fg-fringe fg-main)
(err red)
(warning yellow)
(info green)
(link blue)
(link-alt lavender)
(name green)
(keybind teal)
(identifier sapphire)
(prompt flamingo)
;;;; Code mappings
(builtin red)
(comment overlay0)
(constant peach)
(fnname flamingo)
(keyword mauve)
(preprocessor sky)
(docstring sapphire)
(string green)
(type yellow)
(variable green)
(rx-escape rosewater) ; compare with `string'
(rx-construct maroon)
;;;; Accent mappings
(accent-0 blue)
(accent-1 mauve)
(accent-2 green)
(accent-3 red)
;;;; Date mappings
(date-common green-cooler)
(date-deadline red-warmer)
(date-event fg-alt)
(date-holiday mauve-faint)
(date-now fg-main)
(date-range fg-alt)
(date-scheduled yellow)
(date-weekday sapphire)
(date-weekend red-faint)
;;;; Prose mappings
(prose-code mauve-warmer)
(prose-done green)
(prose-macro green-cooler)
(prose-metadata fg-dim)
(prose-metadata-value fg-alt)
(prose-table fg-alt)
(prose-table-formula err)
(prose-tag yellow-faint)
(prose-todo red-warmer)
(prose-verbatim blue)
;;;; Mail mappings
(mail-cite-0 blue)
(mail-cite-1 mauve-warmer)
(mail-cite-2 green-cooler)
(mail-cite-3 yellow-cooler)
(mail-part mauve-faint)
(mail-recipient blue-warmer)
(mail-subject blue-cooler)
(mail-other sapphire)
;;;; Search mappings
(bg-search-match bg-warning)
(bg-search-current bg-yellow-intense)
(bg-search-lazy bg-blue-intense)
(bg-search-replace bg-red-intense)
(bg-search-rx-group-0 bg-magenta-intense)
(bg-search-rx-group-1 bg-green-intense)
(bg-search-rx-group-2 bg-red-subtle)
(bg-search-rx-group-3 bg-cyan-subtle)
;;;; Space mappings
(bg-space unspecified)
(fg-space border)
(bg-space-err bg-maroon-intense)
;;;; Tab mappings
(bg-tab-bar bg-alt)
(bg-tab-current bg-main)
(bg-tab-other bg-active)
;;;; Terminal mappings
(bg-term-black "black")
(fg-term-black "black")
(bg-term-black-bright "gray35")
(fg-term-black-bright "gray35")
(bg-term-red red-cooler)
(fg-term-red red-cooler)
(bg-term-red-bright red-warmer)
(fg-term-red-bright red-warmer)
(bg-term-green green)
(fg-term-green green)
(bg-term-green-bright green-warmer)
(fg-term-green-bright green-warmer)
(bg-term-yellow yellow)
(fg-term-yellow yellow)
(bg-term-yellow-bright yellow-warmer)
(fg-term-yellow-bright yellow-warmer)
(bg-term-blue blue-warmer)
(fg-term-blue blue-warmer)
(bg-term-blue-bright blue-cooler)
(fg-term-blue-bright blue-cooler)
(bg-term-magenta magenta)
(fg-term-magenta magenta)
(bg-term-magenta-bright magenta-cooler)
(fg-term-magenta-bright magenta-cooler)
(bg-term-cyan cyan)
(fg-term-cyan cyan)
(bg-term-cyan-bright cyan-cooler)
(fg-term-cyan-bright cyan-cooler)
(bg-term-white "gray65")
(fg-term-white "gray65")
(bg-term-white-bright "white")
(fg-term-white-bright "white")
;;;; Rainbow mappings
(rainbow-0 marroon)
(rainbow-1 red)
(rainbow-2 peach)
(rainbow-3 yellow)
(rainbow-4 green)
(rainbow-5 sapphire)
(rainbow-6 lavender)
(rainbow-7 sky)
(rainbow-8 teal))
"The `ef-catppuccin-latte' palette.
Color values have the form (COLOR-NAME HEX-VALUE) with the former
as a symbol and the latter as a string.
Semantic color mappings have the form (MAPPING-NAME COLOR-NAME)
with both as symbols. The latter is a color that already exists
in the palette and is associated with a HEX-VALUE.")
(defcustom ef-catppuccin-latte-palette-overrides nil
"Overrides for `ef-catppuccin-latte-palette'.
Mirror the elements of the aforementioned palette, overriding
their value.
For overrides that are shared across all of the Ef themes,
refer to `ef-themes-common-palette-overrides'.
To preview the palette entries, use `ef-themes-preview-colors' or
`ef-themes-preview-colors-current' (read the documentation for
further details)."
:group 'ef-themes
:package-version '(ef-themes . "1.0.0")
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(ef-themes) Palette overrides"))
(ef-themes-theme ef-catppuccin-latte ef-catppuccin-latte-palette ef-catppuccin-latte-palette-overrides)
(provide-theme 'ef-catppuccin-latte))
@@ -0,0 +1,439 @@
;;; ef-catppuccin-macchiatto-theme.el --- implementation of catppuccin-macchiatto theme using ef-themes -*- lexical-binding:t -*-
;; Copyright (C) 2022-2024 Free Software Foundation, Inc.
;; Author: Steve Beaulac <steve@beaulac.me>
;; Maintainer: Steve Beaulac <steve@beaulac.me>
;; URL: https://github.com/SjB/ef-catppuccin
;; Keywords: faces, theme, accessibility
;; This file is NOT part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; The `ef-themes' are a collection of light and dark themes for GNU
;; Emacs whose goal is to provide colorful ("pretty") yet legible
;; options for users who want something with a bit more flair than the
;; `modus-themes' (also designed by me).
;;; Code:
(eval-and-compile
(require 'ef-themes)
(deftheme ef-catppuccin-macchiatto
"ef-themes of the catppuccin-macchiatto palette"
:background-mode 'dark
:kind 'color-scheme
:family 'ef)
(defconst ef-catppuccin-macchiatto-palette
'(
;;; Basic values
;;; Basic hues for foreground values
(crust "#181926")
(mantle "#1e2030")
(base "#24273a")
(surface0 "#363A4F")
(surface1 "#494d64")
(surface2 "#5b6078")
(overlay0 "#6e728d")
(overlay1 "#8087A2")
(overlay2 "#939AB7")
(text "#CAD3F5")
(subtext0 "#A5ADCB")
(subtext1 "#B8C0E0")
(rosewater "#F3dbd6")
(rosewater-warmer "#ffdbc9")
(rosewater-cooler "#e6dbe2")
(rosewater-faint "#fdfaf9")
(rosewater-intense "#f9d6cf")
(bg-rosewater-intense "#826561")
(bg-rosewater-subtle "#b04933")
(flamingo "#f0c6c6")
(flamingo-warmer "#fcc6b9")
(flamingo-cooler "#e3c6d2")
(flamingo-faint "#f9e8e8")
(flamingo-intense "#f9bdbd")
(bg-flamingo-intense "#805959")
(bg-flamingo-subtle "#ad2d2d")
(pink "#f5bde6")
(pink-warmer "#ffbdd9")
(pink-cooler "#e8bdf2")
(pink-faint "#fae2f4")
(pink-intense "#feb3ea")
(bg-pink-intense "#8f497b")
(bg-pink-subtle "#bc1c91")
(mauve "#c6a0f6")
(mauve-warmer "#d2a0e9")
(mauve-cooler "#b9a0ff")
(mauve-faint "#dcc5f9")
(mauve-intense "#c497ff")
(bg-mauve-intense "#603990")
(bg-mauve-subtle "#5b11b9")
(red "#ed8796")
(red-warmer "#f98789")
(red-cooler "#e087a2")
(red-faint "#f1a7b2")
(red-intense "#fe7589")
(bg-red-intense "#7c3d46")
(bg-red-subtle "#a1182c")
(maroon "#ee99a0")
(maroon-warmer "#fa9993")
(maroon-cooler "#e199ac")
(maroon-faint "#f3babf")
(maroon-intense "#fc8a93")
(bg-maroon-intense "#804247")
(bg-maroon-subtle "#a71b27")
(peach "#f5a97f")
(peach-warmer "#ffa972")
(peach-cooler "#e8a98b")
(peach-faint "#f7c0a1")
(peach-intense "#ffa675")
(bg-peach-intense "#865032")
(bg-peach-subtle "#ac460d")
(yellow "#eed49f")
(yellow-warmer "#fad492")
(yellow-cooler "#e1d4ab")
(yellow-faint "#f3e3c0")
(yellow-intense "#fcd890")
(bg-yellow-intense "#806d45")
(bg-yellow-subtle "#a87a1d")
(green "#a6da95")
(green-warmer "#b2da88")
(green-cooler "#99daa1")
(green-faint "#bce3b0")
(green-intense "#9ceb83")
(bg-green-intense "#576353")
(bg-green-subtle "#45882f")
(teal "#8bd5ca")
(teal-warmer "#97d5bd")
(teal-cooler "#7ed5d6")
(teal-faint "#a4ded5")
(teal-intense "#77e8d7")
(bg-teal-intense "#515d5b")
(bg-teal-subtle "#2e8174")
(blue "#8aadf4")
(blue-warmer "#96ade7")
(blue-cooler "#7dadff")
(blue-faint "#acc5f7")
(blue-intense "#7fa9ff")
(bg-blue-intense "#365187")
(bg-blue-subtle "#1044ae")
(sky "#91d7e3")
(sky-warmer "#9dd7d6")
(sky-cooler "#84d7ef")
(sky-faint "#aee1ea")
(sky-intense "#7fe3f4")
(bg-sky-intense "#4a696e")
(bg-sky-subtle "#258494")
(sapphire "#7dc4e4")
(sapphire-warmer "#89c4d7")
(sapphire-cooler "#70c4f0")
(sapphire-faint "#9ad1ea")
(sapphire-intense "#69cbf7")
(bg-sapphire-intense "#41606e")
(bg-sapphire-subtle "#1e6e92")
(lavender "#b7bdf8")
(lavender-warmer "#c3bdeb")
(lavender-cooler "#aabdff")
(lavender-faint "#dee1fb")
(lavender-intense "#b0b7ff")
(bg-lavender-intense "#3d4599")
(bg-lavender-subtle "#1323c4")
;;; remaping colors to properties
(bg-main base)
(bg-dim mantle)
(bg-alt crust)
(fg-main text)
(fg-dim subtext0)
(fg-alt subtext1)
(bg-inactive surface0)
(bg-active surface1)
;;; mauve is replacing magenta
(magenta mauve)
(magenta-warmer mauve-warmer)
(magenta-cooler mauve-cooler)
(magenta-faint mauve-faint)
(bg-magenta-intense bg-mauve-intense)
(bg-magenta-subtle bg-mauve-subtle)
;;; sapphire is replacing cyan
(cyan sapphire)
(cyan-warmer sapphire-warmer)
(cyan-cooler sapphire-cooler)
(cyan-faint sapphire-faint)
(bg-cyan-intense bg-sapphire-intense)
(bg-cyan-subtle bg-sapphire-subtle)
;;; Diffs
(bg-added bg-active)
(bg-added-faint bg-inactive)
(bg-added-refine bg-green-subtle)
(fg-added green)
(bg-changed bg-active)
(bg-changed-faint bg-inactive)
(bg-changed-refine bg-blue-subtle)
(fg-changed blue)
(bg-removed bg-active)
(bg-removed-faint bg-inactive)
(bg-removed-refine bg-red-subtle)
(fg-removed red)
;;; Graphs
(bg-graph-red-0 bg-maroon-subtle)
(bg-graph-red-1 bg-maroon-intense)
(bg-graph-green-0 bg-teal-subtle)
(bg-graph-green-1 bg-teal-intense)
(bg-graph-yellow-0 bg-rosewater-subtle)
(bg-graph-yellow-1 bg-rosewater-intense)
(bg-graph-blue-0 bg-sky-subtle)
(bg-graph-blue-1 bg-sky-intense)
(bg-graph-magenta-0 bg-pink-subtle)
(bg-graph-magenta-1 bg-pink-intense)
(bg-graph-cyan-0 bg-lavender-subtle)
(bg-graph-cyan-1 bg-lavender-intense)
;;; Special hues
(bg-mode-line mantle)
(fg-mode-line text)
(bg-completion overlay0)
(bg-hover overlay1)
(bg-hover-secondary overlay2)
(bg-hl-line crust)
(bg-region overlay2)
(bg-paren surface2)
(bg-err bg-red-intense) ; check with err
(bg-warning bg-yellow-intense) ; check with warning
(bg-info bg-green-intense) ; check with info
(border lavender)
(cursor rosewater)
(fg-intense subtext1)
(modeline-err red)
(modeline-warning yellow)
(modeline-info green)
(underline-err red-intense)
(underline-warning yellow-intense)
(underline-info green-intense)
(bg-char-0 surface0)
(bg-char-1 surface1)
(bg-char-2 surface2)
;;; Conditional hues
(bg-region-intense bg-lavender-intense)
(fg-region crust)
;;; Mappings
;;;; General mappings
(bg-fringe bg-main)
(fg-fringe fg-main)
(err red)
(warning yellow)
(info green)
(link blue)
(link-alt lavender)
(name green)
(keybind teal)
(identifier sapphire)
(prompt flamingo)
;;;; Code mappings
(builtin red)
(comment overlay0)
(constant peach)
(fnname flamingo)
(keyword mauve)
(preprocessor sky)
(docstring sapphire)
(string green)
(type yellow)
(variable green)
(rx-escape rosewater) ; compare with `string'
(rx-construct maroon)
;;;; Accent mappings
(accent-0 blue)
(accent-1 mauve)
(accent-2 green)
(accent-3 red)
;;;; Date mappings
(date-common green-cooler)
(date-deadline red-warmer)
(date-event fg-alt)
(date-holiday mauve-faint)
(date-now fg-main)
(date-range fg-alt)
(date-scheduled yellow)
(date-weekday sapphire)
(date-weekend red-faint)
;;;; Prose mappings
(prose-code mauve-warmer)
(prose-done green)
(prose-macro green-cooler)
(prose-metadata fg-dim)
(prose-metadata-value fg-alt)
(prose-table fg-alt)
(prose-table-formula err)
(prose-tag yellow-faint)
(prose-todo red-warmer)
(prose-verbatim blue)
;;;; Mail mappings
(mail-cite-0 blue)
(mail-cite-1 mauve-warmer)
(mail-cite-2 green-cooler)
(mail-cite-3 yellow-cooler)
(mail-part mauve-faint)
(mail-recipient blue-warmer)
(mail-subject blue-cooler)
(mail-other sapphire)
;;;; Search mappings
(bg-search-match bg-warning)
(bg-search-current bg-yellow-intense)
(bg-search-lazy bg-blue-intense)
(bg-search-replace bg-red-intense)
(bg-search-rx-group-0 bg-magenta-intense)
(bg-search-rx-group-1 bg-green-intense)
(bg-search-rx-group-2 bg-red-subtle)
(bg-search-rx-group-3 bg-cyan-subtle)
;;;; Space mappings
(bg-space unspecified)
(fg-space border)
(bg-space-err bg-maroon-intense)
;;;; Tab mappings
(bg-tab-bar bg-alt)
(bg-tab-current bg-main)
(bg-tab-other bg-active)
;;;; Terminal mappings
(bg-term-black "black")
(fg-term-black "black")
(bg-term-black-bright "gray35")
(fg-term-black-bright "gray35")
(bg-term-red red-cooler)
(fg-term-red red-cooler)
(bg-term-red-bright red-warmer)
(fg-term-red-bright red-warmer)
(bg-term-green green)
(fg-term-green green)
(bg-term-green-bright green-warmer)
(fg-term-green-bright green-warmer)
(bg-term-yellow yellow)
(fg-term-yellow yellow)
(bg-term-yellow-bright yellow-warmer)
(fg-term-yellow-bright yellow-warmer)
(bg-term-blue blue-warmer)
(fg-term-blue blue-warmer)
(bg-term-blue-bright blue-cooler)
(fg-term-blue-bright blue-cooler)
(bg-term-magenta magenta)
(fg-term-magenta magenta)
(bg-term-magenta-bright magenta-cooler)
(fg-term-magenta-bright magenta-cooler)
(bg-term-cyan cyan)
(fg-term-cyan cyan)
(bg-term-cyan-bright cyan-cooler)
(fg-term-cyan-bright cyan-cooler)
(bg-term-white "gray65")
(fg-term-white "gray65")
(bg-term-white-bright "white")
(fg-term-white-bright "white")
;;;; Rainbow mappings
(rainbow-0 marroon)
(rainbow-1 red)
(rainbow-2 peach)
(rainbow-3 yellow)
(rainbow-4 green)
(rainbow-5 sapphire)
(rainbow-6 lavender)
(rainbow-7 sky)
(rainbow-8 teal))
"The `ef-catppuccin-macchiatto' palette.
Color values have the form (COLOR-NAME HEX-VALUE) with the former
as a symbol and the latter as a string.
Semantic color mappings have the form (MAPPING-NAME COLOR-NAME)
with both as symbols. The latter is a color that already exists
in the palette and is associated with a HEX-VALUE.")
(defcustom ef-catppuccin-macchiatto-palette-overrides nil
"Overrides for `ef-catppuccin-macchiatto-palette'.
Mirror the elements of the aforementioned palette, overriding
their value.
For overrides that are shared across all of the Ef themes,
refer to `ef-themes-common-palette-overrides'.
To preview the palette entries, use `ef-themes-preview-colors' or
`ef-themes-preview-colors-current' (read the documentation for
further details)."
:group 'ef-themes
:package-version '(ef-themes . "1.0.0")
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(ef-themes) Palette overrides"))
(ef-themes-theme ef-catppuccin-macchiatto ef-catppuccin-macchiatto-palette ef-catppuccin-macchiatto-palette-overrides)
(provide-theme 'ef-catppuccin-macchiatto))
@@ -0,0 +1,437 @@
;;; ef-catppuccin-mocha-theme.el --- implementation of catppuccin-mocha theme using ef-themes -*- lexical-binding:t -*-
;; Copyright (C) 2022-2024 Free Software Foundation, Inc.
;; Author: Steve Beaulac <steve@beaulac.me>
;; Maintainer: Steve Beaulac <steve@beaulac.me>
;; URL: https://github.com/SjB/ef-catppuccin
;; Keywords: faces, theme, accessibility
;; This file is NOT part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; The `ef-themes' are a collection of light and dark themes for GNU
;; Emacs whose goal is to provide colorful ("pretty") yet legible
;; options for users who want something with a bit more flair than the
;; `modus-themes' (also designed by me).
;;; Code:
(eval-and-compile
(require 'ef-themes)
(deftheme ef-catppuccin-mocha
"ef-themes of the catppuccin-mocha palette"
:background-mode 'dark
:kind 'color-scheme
:family 'ef)
(defconst ef-catppuccin-mocha-palette
'(
;;; Basic values
;;; Basic hues for foreground values
(crust "#11111b")
(mantle "#181825")
(base "#1e1e2e")
(surface0 "#313244")
(surface1 "#43465a")
(surface2 "#565970")
(overlay0 "#696d86")
(overlay1 "#7B819D")
(overlay2 "#8E95B3")
(text "#C6D0F5")
(subtext0 "#A1A8C9")
(subtext1 "#B3BCDF")
(rosewater "#f5e0dc")
(rosewater-warmer "#ffe0cf")
(rosewater-cooler "#e8e0e8")
(rosewater-faint "#ffffff")
(rosewater-intense "#fadcd6")
(bg-rosewater-intense "#88695f")
(bg-rosewater-subtle "#b44833")
(flamingo "#f2cdcd")
(flamingo-warmer "#fecdc0")
(flamingo-cooler "#e5cdd9")
(flamingo-faint "#fbf0f0")
(flamingo-intense "#f9c5c5")
(bg-flamingo-intense "#845a5a")
(bg-flamingo-subtle "#b12e2e")
(pink "#f5c2e7")
(pink-warmer "#ffc2da")
(pink-cooler "#e8c2f3")
(pink-faint "#fbe7f5")
(pink-intense "#fdb9eb")
(bg-pink-intense "#8e4c7c")
(bg-pink-subtle "#bc1e91")
(mauve "#cba6f7")
(mauve-warmer "#d7a6ea")
(mauve-cooler "#bea6ff")
(mauve-faint "#e1cbfa")
(mauve-intense "#ca9eff")
(bg-mauve-intense "#623a93")
(bg-mauve-subtle "#5f11bd")
(red "#f28ba8")
(red-warmer "#fe8b9b")
(red-cooler "#e58bb4")
(red-faint "#f5adc1")
(red-intense "#ff7ea2")
(bg-red-intense "#85384e")
(bg-red-subtle "#ab133e")
(maroon "#eba0ac")
(maroon-warmer "#f7a09f")
(maroon-cooler "#dea0b8")
(maroon-faint "#f1c0c8")
(maroon-intense "#f991a2")
(bg-maroon-intense "#7a4a51")
(bg-maroon-subtle "#a32236")
(peach "#fab387")
(peach-warmer "#ffb37a")
(peach-cooler "#edb393")
(peach-faint "#fbcaab")
(peach-intense "#ffb182")
(bg-peach-intense "#92532e")
(bg-peach-subtle "#b84b07")
(yellow "#f9e2af")
(yellow-warmer "#ffe2a2")
(yellow-cooler "#ece2bb")
(yellow-faint "#fbf0d6")
(yellow-intense "#ffe4a8")
(bg-yellow-intense "#997b3a")
(bg-yellow-subtle "#c58c0e")
(green "#a6e3a1")
(green-warmer "#b2e394")
(green-cooler "#99e3ad")
(green-faint "#c2ebbe")
(green-intense "#99f291")
(bg-green-intense "#546e53")
(bg-green-subtle "#34952c")
(teal "#94e2d5")
(teal-warmer "#a0e2c8")
(teal-cooler "#87e2e1")
(teal-faint "#b1e9e0")
(teal-intense "#83f2e0")
(bg-teal-intense "#4d6c67")
(bg-teal-subtle "#279381")
(blue "#87b0f9")
(blue-warmer "#93b0ec")
(blue-cooler "#7ab0ff")
(blue-faint "#abc8fa")
(blue-intense "#81aeff")
(bg-blue-intense "#30528f")
(bg-blue-subtle "#0947b6")
(sky "#89dceb")
(sky-warmer "#95dcde")
(sky-cooler "#7cdcf7")
(sky-faint "#a8e5f0")
(sky-intense "#77e7fc")
(bg-sky-intense "#407079")
(bg-sky-subtle "#1a8a9f")
(sapphire "#74c7ec")
(sapphire-warmer "#80c7df")
(sapphire-cooler "#67c7f8")
(sapphire-faint "#92d3f0")
(sapphire-intense "#61ceff")
(bg-sapphire-intense "#386377")
(bg-sapphire-subtle "#15719a")
(lavender "#b4befe")
(lavender-warmer "#c0bef1")
(lavender-cooler "#a7beff")
(lavender-faint "#dee3fe")
(lavender-intense "#b3bdff")
(bg-lavender-intense "#2f40a8")
(bg-lavender-subtle "#021fd6")
;;; remaping colors to properties
(bg-main base)
(bg-dim mantle)
(bg-alt crust)
(fg-main text)
(fg-dim subtext0)
(fg-alt subtext1)
(bg-inactive surface0)
(bg-active surface1)
;;; mauve is replacing magenta
(magenta mauve)
(magenta-warmer mauve-warmer)
(magenta-cooler mauve-cooler)
(magenta-faint mauve-faint)
(bg-magenta-intense bg-mauve-intense)
(bg-magenta-subtle bg-mauve-subtle)
;;; sapphire is replacing cyan
(cyan sapphire)
(cyan-warmer sapphire-warmer)
(cyan-cooler sapphire-cooler)
(cyan-faint sapphire-faint)
(bg-cyan-intense bg-sapphire-intense)
(bg-cyan-subtle bg-sapphire-subtle)
;;; Diffs
(bg-added bg-active)
(bg-added-faint bg-inactive)
(bg-added-refine bg-green-subtle)
(fg-added green)
(bg-changed bg-active)
(bg-changed-faint bg-inactive)
(bg-changed-refine bg-blue-subtle)
(fg-changed blue)
(bg-removed bg-active)
(bg-removed-faint bg-inactive)
(bg-removed-refine bg-red-subtle)
(fg-removed red)
;;; Graphs
(bg-graph-red-0 bg-maroon-subtle)
(bg-graph-red-1 bg-maroon-intense)
(bg-graph-green-0 bg-teal-subtle)
(bg-graph-green-1 bg-teal-intense)
(bg-graph-yellow-0 bg-rosewater-subtle)
(bg-graph-yellow-1 bg-rosewater-intense)
(bg-graph-blue-0 bg-sky-subtle)
(bg-graph-blue-1 bg-sky-intense)
(bg-graph-magenta-0 bg-pink-subtle)
(bg-graph-magenta-1 bg-pink-intense)
(bg-graph-cyan-0 bg-lavender-subtle)
(bg-graph-cyan-1 bg-lavender-intense)
;;; Special hues
(bg-mode-line mantle)
(fg-mode-line text)
(bg-completion overlay0)
(bg-hover overlay1)
(bg-hover-secondary overlay2)
(bg-hl-line crust)
(bg-region overlay2)
(bg-paren surface2)
(bg-err bg-red-intense) ; check with err
(bg-warning bg-yellow-intense) ; check with warning
(bg-info bg-green-intense) ; check with info
(border lavender)
(cursor rosewater)
(fg-intense subtext1)
(modeline-err red)
(modeline-warning yellow)
(modeline-info green)
(underline-err red-intense)
(underline-warning yellow-intense)
(underline-info green-intense)
(bg-char-0 surface0)
(bg-char-1 surface1)
(bg-char-2 surface2)
;;; Conditional hues
(bg-region-intense bg-lavender-intense)
(fg-region crust)
;;; Mappings
;;;; General mappings
(bg-fringe bg-main)
(fg-fringe fg-main)
(err red)
(warning yellow)
(info green)
(link blue)
(link-alt lavender)
(name green)
(keybind teal)
(identifier sapphire)
(prompt flamingo)
;;;; Code mappings
(builtin red)
(comment overlay0)
(constant peach)
(fnname flamingo)
(keyword mauve)
(preprocessor sky)
(docstring sapphire)
(string green)
(type yellow)
(variable green)
(rx-escape rosewater) ; compare with `string'
(rx-construct maroon)
;;;; Accent mappings
(accent-0 blue)
(accent-1 mauve)
(accent-2 green)
(accent-3 red)
;;;; Date mappings
(date-common green-cooler)
(date-deadline red-warmer)
(date-event fg-alt)
(date-holiday mauve-faint)
(date-now fg-main)
(date-range fg-alt)
(date-scheduled yellow)
(date-weekday sapphire)
(date-weekend red-faint)
;;;; Prose mappings
(prose-code mauve-warmer)
(prose-done green)
(prose-macro green-cooler)
(prose-metadata fg-dim)
(prose-metadata-value fg-alt)
(prose-table fg-alt)
(prose-table-formula err)
(prose-tag yellow-faint)
(prose-todo red-warmer)
(prose-verbatim blue)
;;;; Mail mappings
(mail-cite-0 blue)
(mail-cite-1 mauve-warmer)
(mail-cite-2 green-cooler)
(mail-cite-3 yellow-cooler)
(mail-part mauve-faint)
(mail-recipient blue-warmer)
(mail-subject blue-cooler)
(mail-other sapphire)
;;;; Search mappings
(bg-search-match bg-warning)
(bg-search-current bg-yellow-intense)
(bg-search-lazy bg-blue-intense)
(bg-search-replace bg-red-intense)
(bg-search-rx-group-0 bg-magenta-intense)
(bg-search-rx-group-1 bg-green-intense)
(bg-search-rx-group-2 bg-red-subtle)
(bg-search-rx-group-3 bg-cyan-subtle)
;;;; Space mappings
(bg-space unspecified)
(fg-space border)
(bg-space-err bg-maroon-intense)
;;;; Tab mappings
(bg-tab-bar bg-alt)
(bg-tab-current bg-main)
(bg-tab-other bg-active)
;;;; Terminal mappings
(bg-term-black "black")
(fg-term-black "black")
(bg-term-black-bright "gray35")
(fg-term-black-bright "gray35")
(bg-term-red red-cooler)
(fg-term-red red-cooler)
(bg-term-red-bright red-warmer)
(fg-term-red-bright red-warmer)
(bg-term-green green)
(fg-term-green green)
(bg-term-green-bright green-warmer)
(fg-term-green-bright green-warmer)
(bg-term-yellow yellow)
(fg-term-yellow yellow)
(bg-term-yellow-bright yellow-warmer)
(fg-term-yellow-bright yellow-warmer)
(bg-term-blue blue-warmer)
(fg-term-blue blue-warmer)
(bg-term-blue-bright blue-cooler)
(fg-term-blue-bright blue-cooler)
(bg-term-magenta magenta)
(fg-term-magenta magenta)
(bg-term-magenta-bright magenta-cooler)
(fg-term-magenta-bright magenta-cooler)
(bg-term-cyan cyan)
(fg-term-cyan cyan)
(bg-term-cyan-bright cyan-cooler)
(fg-term-cyan-bright cyan-cooler)
(bg-term-white "gray65")
(fg-term-white "gray65")
(bg-term-white-bright "white")
(fg-term-white-bright "white")
;;;; Rainbow mappings
(rainbow-0 marroon)
(rainbow-1 red)
(rainbow-2 peach)
(rainbow-3 yellow)
(rainbow-4 green)
(rainbow-5 sapphire)
(rainbow-6 lavender)
(rainbow-7 sky)
(rainbow-8 teal))
"The `ef-catppuccin-mocha' palette.
Color values have the form (COLOR-NAME HEX-VALUE) with the former
as a symbol and the latter as a string.
Semantic color mappings have the form (MAPPING-NAME COLOR-NAME)
with both as symbols. The latter is a color that already exists
in the palette and is associated with a HEX-VALUE.")
(defcustom ef-catppuccin-mocha-palette-overrides nil
"Overrides for `ef-catppuccin-mocha-palette'.
Mirror the elements of the aforementioned palette, overriding
their value.
For overrides that are shared across all of the Ef themes,
refer to `ef-themes-common-palette-overrides'.
To preview the palette entries, use `ef-themes-preview-colors' or
`ef-themes-preview-colors-current' (read the documentation for
further details)."
:group 'ef-themes
:package-version '(ef-themes . "1.0.0")
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(ef-themes) Palette overrides"))
(ef-themes-theme ef-catppuccin-mocha ef-catppuccin-mocha-palette ef-catppuccin-mocha-palette-overrides)
(provide-theme 'ef-catppuccin-mocha))
+323
View File
@@ -0,0 +1,323 @@
;; Steve Beaulac implementation of monokai-pro theme using ef-themes
(eval-and-compile
(require 'ef-themes)
(deftheme ef-monokai-pro
"ef-themes of the monokai-pro palette"
:background-mode 'dark
:kind 'color-scheme
:family 'ef)
(defconst ef-monokai-pro-palette
'(
;;; Basic values
(bg-main "#2d2a2e")
(fg-main "#fcfcfa")
(bg-dim "#353236")
(fg-dim "#c1c0c0")
(bg-alt "#403e41")
(fg-alt "#8d7391")
(bg-active "#5b595c")
(bg-inactive "#242124")
;;; Basic hues for foreground values
(red "#ff6188")
(red-warmer "#ff697a")
(red-cooler "#dd61aa")
(red-faint "#ff99b3")
(green "#a9dc76")
(green-warmer "#bbb876")
(green-cooler "#9abf93")
(green-faint "#c7e8a6")
(yellow "#ffd866")
(yellow-warmer "#ffaf66")
(yellow-cooler "#d3b792")
(yellow-faint "#ffe69d")
(blue "#78dce8")
(blue-warmer "#a0b9c0")
(blue-cooler "#78c0e8")
(blue-faint "#a8e9f0")
(magenta "#ff9df2")
(magenta-warmer "#ff9dd4")
(magenta-cooler "#e39df6")
(magenta-faint "#ffc1f7")
(cyan "#fc9867")
(cyan-warmer "#fd8957")
(cyan-cooler "#ff929d")
(cyan-faint "#ffc7aa")
;;; Basic hues for background values
(bg-red-intense "#f27185")
(bg-red-subtle "#d47479")
(bg-green-intense "#a5cf4f")
(bg-green-subtle "#b7d9b1")
(bg-yellow-intense "#ffd879")
(bg-yellow-subtle "#ffbf66")
(bg-blue-intense "#83d2e1")
(bg-blue-subtle "#81c0bb")
(bg-magenta-intense "#ff7afc")
(bg-magenta-subtle "#fb9eff")
(bg-cyan-intense "#f29dcd")
(bg-cyan-subtle "#c06537")
;;; Diffs
(bg-added "#00381f")
(bg-added-faint "#002910")
(bg-added-refine "#034f2f")
(fg-added "#a0e0a0")
(bg-changed "#363300")
(bg-changed-faint "#2a1f00")
(bg-changed-refine "#4a4a00")
(fg-changed "#efef80")
(bg-removed "#4f1119")
(bg-removed-faint "#380a0f")
(bg-removed-refine "#781a1f")
(fg-removed "#ffbfbf")
;;; Graphs
(bg-graph-red-0 "#b52c2c")
(bg-graph-red-1 "#702020")
(bg-graph-green-0 "#0fed00")
(bg-graph-green-1 "#007800")
(bg-graph-yellow-0 "#f1e00a")
(bg-graph-yellow-1 "#b08940")
(bg-graph-blue-0 "#2fafef")
(bg-graph-blue-1 "#1f2f8f")
(bg-graph-magenta-0 "#bf94fe")
(bg-graph-magenta-1 "#5f509f")
(bg-graph-cyan-0 "#a4877a")
(bg-graph-cyan-1 "#611300")
;;; Special hues
(bg-mode-line "#8d7391")
(fg-mode-line "#fcfcfa")
(bg-completion "#5b595c")
(bg-hover "#939293")
(bg-hover-secondary "#5b595c")
(bg-hl-line "#403341")
(bg-region "#403e41")
(bg-paren "#1f2f3f")
(bg-err "#360d09") ; check with err
(bg-warning "#332600") ; check with warning
(bg-info "#002c12") ; check with info
(border "#4f4f5f")
(cursor "#ff76ff")
(fg-intense "#ffffff")
(modeline-err "#ff80af")
(modeline-warning "#dfcf33")
(modeline-info "#2fc82f")
(underline-err "#df2f2f")
(underline-warning "#c0b000")
(underline-info "#22b022")
(bg-char-0 "#0050af")
(bg-char-1 "#7f1f7f")
(bg-char-2 "#625a00")
;;; Conditional hues
(bg-region-intense "#434443")
(fg-region unspecified)
;;; Mappings
;;;; General mappings
(bg-fringe bg-main)
(fg-fringe fg-main)
(err red-warmer)
(warning yellow)
(info green)
(link cyan)
(link-alt magenta)
(name blue-warmer)
(keybind blue-cooler)
(identifier magenta-faint)
(prompt green-cooler)
;;;; Code mappings
(builtin magenta)
(comment yellow-cooler)
(constant magenta-warmer)
(fnname yellow-cooler)
(keyword red-warmer)
(preprocessor magenta-cooler)
(docstring cyan-faint)
(string yellow)
(type blue-cooler)
(variable green)
(rx-escape green-warmer) ; compare with `string'
(rx-construct red)
;;;; Accent mappings
(accent-0 blue)
(accent-1 magenta-warmer)
(accent-2 green-cooler)
(accent-3 red)
;;;; Date mappings
(date-common green-cooler)
(date-deadline red-warmer)
(date-event fg-alt)
(date-holiday magenta)
(date-now fg-main)
(date-range fg-alt)
(date-scheduled yellow)
(date-weekday cyan)
(date-weekend red-faint)
;;;; Prose mappings
(prose-code magenta-warmer)
(prose-done green)
(prose-macro green-cooler)
(prose-metadata fg-dim)
(prose-metadata-value fg-alt)
(prose-table fg-alt)
(prose-table-formula err)
(prose-tag yellow-faint)
(prose-todo red-warmer)
(prose-verbatim blue)
;;;; Mail mappings
(mail-cite-0 blue)
(mail-cite-1 magenta-warmer)
(mail-cite-2 green-cooler)
(mail-cite-3 yellow-cooler)
(mail-part magenta-faint)
(mail-recipient blue-warmer)
(mail-subject blue-cooler)
(mail-other cyan)
;;;; Search mappings
(bg-search-match bg-warning)
(bg-search-current bg-yellow-intense)
(bg-search-lazy bg-blue-intense)
(bg-search-replace bg-red-intense)
(bg-search-rx-group-0 bg-magenta-intense)
(bg-search-rx-group-1 bg-green-intense)
(bg-search-rx-group-2 bg-red-subtle)
(bg-search-rx-group-3 bg-cyan-subtle)
;;;; Space mappings
(bg-space unspecified)
(fg-space border)
(bg-space-err bg-yellow-intense)
;;;; Tab mappings
(bg-tab-bar bg-alt)
(bg-tab-current bg-main)
(bg-tab-other bg-active)
;;;; Terminal mappings
(bg-term-black "black")
(fg-term-black "black")
(bg-term-black-bright "gray35")
(fg-term-black-bright "gray35")
(bg-term-red red-cooler)
(fg-term-red red-cooler)
(bg-term-red-bright red-warmer)
(fg-term-red-bright red-warmer)
(bg-term-green green)
(fg-term-green green)
(bg-term-green-bright green-warmer)
(fg-term-green-bright green-warmer)
(bg-term-yellow yellow)
(fg-term-yellow yellow)
(bg-term-yellow-bright yellow-warmer)
(fg-term-yellow-bright yellow-warmer)
(bg-term-blue blue-warmer)
(fg-term-blue blue-warmer)
(bg-term-blue-bright blue-cooler)
(fg-term-blue-bright blue-cooler)
(bg-term-magenta magenta)
(fg-term-magenta magenta)
(bg-term-magenta-bright magenta-cooler)
(fg-term-magenta-bright magenta-cooler)
(bg-term-cyan cyan)
(fg-term-cyan cyan)
(bg-term-cyan-bright cyan-cooler)
(fg-term-cyan-bright cyan-cooler)
(bg-term-white "gray65")
(fg-term-white "gray65")
(bg-term-white-bright "white")
(fg-term-white-bright "white")
;;;; Rainbow mappings
(rainbow-0 green-cooler)
(rainbow-1 blue)
(rainbow-2 magenta-warmer)
(rainbow-3 cyan-cooler)
(rainbow-4 yellow-cooler)
(rainbow-5 magenta-cooler)
(rainbow-6 red-cooler)
(rainbow-7 green-warmer)
(rainbow-8 yellow))
"The `ef-monokai-pro' palette.
Color values have the form (COLOR-NAME HEX-VALUE) with the former
as a symbol and the latter as a string.
Semantic color mappings have the form (MAPPING-NAME COLOR-NAME)
with both as symbols. The latter is a color that already exists
in the palette and is associated with a HEX-VALUE.")
(defcustom ef-monokai-pro-palette-overrides nil
"Overrides for `ef-monokai-pro-palette'.
Mirror the elements of the aforementioned palette, overriding
their value.
For overrides that are shared across all of the Ef themes,
refer to `ef-themes-common-palette-overrides'.
To preview the palette entries, use `ef-themes-preview-colors' or
`ef-themes-preview-colors-current' (read the documentation for
further details)."
:group 'ef-themes
:package-version '(ef-themes . "1.0.0")
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(ef-themes) Palette overrides"))
(ef-themes-theme ef-monokai-pro ef-monokai-pro-palette ef-monokai-pro-palette-overrides)
(provide-theme 'ef-monokai-pro))