diff options
| -rw-r--r-- | config.el | 362 | ||||
| -rw-r--r-- | custom-vars.el | 8 | ||||
| -rw-r--r-- | themes/tinty-theme.el | 136 |
3 files changed, 198 insertions, 308 deletions
@@ -394,24 +394,22 @@ Selects the compilation window so the cursor lands in it." (erc-update-modules)) -(defvar my/consult-source-erc - (list :name "IRC" - :narrow ?i - :category 'buffer - :face 'erc-default-face - :state #'consult--buffer-state - :items (lambda () - (mapcar #'buffer-name - (cl-remove-if-not - (lambda (buf) - (with-current-buffer buf - (derived-mode-p 'erc-mode))) - (buffer-list)))))) - (defun my/erc-switch-channel () - "Switch to an ERC channel buffer via consult." + "Switch to an ERC channel buffer via helm." (interactive) - (consult-buffer (list my/consult-source-erc))) + (require 'helm) + (helm :sources + (helm-build-sync-source "IRC" + :candidates + (lambda () + (mapcar #'buffer-name + (cl-remove-if-not + (lambda (buf) + (with-current-buffer buf + (derived-mode-p 'erc-mode))) + (buffer-list)))) + :action '(("Switch to buffer" . switch-to-buffer))) + :buffer "*helm erc*")) (defun my/erc-fetch-history (&optional count) "Fetch COUNT previous messages from Soju via CHATHISTORY. @@ -790,19 +788,19 @@ Temporarily disables notifications during the fetch." (use-package agent-shell :ensure t - :bind (:map agent-shell-mode-map - ("RET" . newline) - ("M-RET" . shell-maker-submit)) :config (advice-add 'shell-maker-submit :after #'my/agent-shell-autoscroll) (dolist (rule (my/agent-shell-display-buffer-rules)) (add-to-list 'display-buffer-alist rule)) - (setq agent-shell-tool-use-expand-by-default nil) - (setq agent-shell-thought-process-expand-by-default nil) - (setq agent-shell-user-message-expand-by-default nil) + (setq agent-shell-tool-use-expand-by-default t) + (setq agent-shell-thought-process-expand-by-default t) + (setq agent-shell-user-message-expand-by-default t) (setq agent-shell-diff-delta-command (when (executable-find "delta") '("delta" "--no-gitconfig" "--color-only"))) + (setq agent-shell-activity-group-header-label-function + #'agent-shell-activity-group-descriptive-label) + ;; Work around agent-shell's `window-system' guard so clipboard images ;; work in terminal Emacs (`emacs -nw'). The underlying save routine @@ -1777,49 +1775,6 @@ Skips capture tasks and projects." :ensure (:wait t) :after org) -(use-package consult - :ensure (:wait t) - :defer t - :init - (advice-add #'register-preview :override #'consult-register-window) - - (setq xref-show-xrefs-function #'consult-xref - xref-show-definitions-function #'consult-xref) - - :config - (setq consult-buffer-filter - '("\\` " - "\\`\\*Messages\\*\\'" - "\\`\\*Warnings\\*\\'" - "\\`\\*Compile-Log\\*\\'" - "\\`\\*Backtrace\\*\\'" - "\\`\\*Help\\*\\'" - "\\`\\*scratch\\*\\'" - "\\`\\*Completions\\*\\'" - "\\`\\*Flymake" - "\\`\\*lsp-help\\*\\'" - "\\`\\*eldoc" - "\\`\\*elpaca-log\\*\\'" - "\\`\\*Native-compile-Log\\*\\'" - "\\`\\*Async-native-compile-log\\*\\'"))) - -(use-package xdg-launcher - :ensure (:host github :repo "emacs-exwm/xdg-launcher") - :commands (xdg-launcher-run-app) - :config - (with-eval-after-load 'consult - (push 'xdg-launcher-consult-source - (cdr (memq 'consult-source-buffer consult-buffer-sources))))) - -(defun my/app-launcher () - "Launch an XDG application. -In the dedicated floating \"emacs-launcher\" frame, close the frame -after the app was launched." - (interactive) - (xdg-launcher-run-app) - (when (string= (frame-parameter nil 'name) "emacs-launcher") - (delete-frame))) - (use-package denote :ensure (:wait t) :hook (dired-mode . denote-dired-mode) @@ -2131,27 +2086,6 @@ Timers that expired while Emacs was closed fire immediately." :custom (which-key-idle-delay 0.3)) -(use-package vertico - :ensure (:wait t) - :hook - (after-init . vertico-mode) - :custom - (vertico-count 10) - (vertico-resize nil) - (vertico-cycle nil) - :bind (:map vertico-map - ("C-j" . vertico-next) - ("C-k" . vertico-previous)) - :config - (advice-add #'vertico--format-candidate :around - (lambda (orig cand prefix suffix index _start) - (setq cand (funcall orig cand prefix suffix index _start)) - (concat - (if (= vertico--index index) - (propertize "» " 'face '(:foreground "#80adf0" :weight bold)) - " ") - cand)))) - (use-package corfu :ensure t :custom @@ -2201,11 +2135,6 @@ Timers that expired while Emacs was closed fire immediately." :init (setq prefix-help-command #'embark-prefix-help-command)) -(use-package embark-consult - :ensure t - :hook - (embark-collect-mode . consult-preview-at-point-mode)) ;; Enable preview in Embark collect mode. - (use-package orderless :ensure t :defer t ;; Load Orderless on demand. @@ -2215,19 +2144,39 @@ Timers that expired while Emacs was closed fire immediately." completion-category-defaults nil ;; Clear default category settings. completion-category-overrides '((file (styles partial-completion))))) ;; Customize file completion styles. -(use-package marginalia - :ensure t +(use-package helm + :ensure (:wait t) :hook - (after-init . marginalia-mode) + (after-init . helm-mode) :custom - (marginalia-align 'right) - :config - (set-face-attribute 'marginalia-documentation nil - :inherit nil - :slant 'italic - :foreground "grey43") - (set-face-attribute 'marginalia-key nil - :foreground "#00ff5f")) + (helm-M-x-fuzzy-match t) + (helm-buffers-fuzzy-matching t) + (helm-recentf-fuzzy-match t) + (helm-move-to-line-cycle-in-source nil) + (helm-split-window-inside-p t) + (helm-boring-buffer-regexp-list + '("\\` " + "\\`\\*helm" + "\\`\\*Echo Area" + "\\`\\*Minibuf" + "\\`\\*Messages\\*\\'" + "\\`\\*Warnings\\*\\'" + "\\`\\*Compile-Log\\*\\'" + "\\`\\*Backtrace\\*\\'" + "\\`\\*Help\\*\\'" + "\\`\\*scratch\\*\\'" + "\\`\\*Completions\\*\\'" + "\\`\\*Flymake" + "\\`\\*lsp-help\\*\\'" + "\\`\\*eldoc" + "\\`\\*elpaca-log\\*\\'" + "\\`\\*Native-compile-Log\\*\\'" + "\\`\\*Async-native-compile-log\\*\\'")) + ;; (helm-display-function #'helm-display-buffer-in-own-frame) + :bind (:map helm-map + ("C-j" . helm-next-line) + ("C-k" . helm-previous-line))) +(global-set-key (kbd "M-x") 'helm-M-x) (use-package eglot :ensure nil @@ -2824,10 +2773,9 @@ so the working-tree diff stays visible until the user explicitly stages." (use-package nerd-icons-completion :if ek-use-nerd-fonts ;; Load the package only if the user has configured to use nerd fonts. :ensure t ;; Ensure the package is installed. - :after (:all nerd-icons marginalia) ;; Load after `nerd-icons' and `marginalia' to ensure proper integration. + :after nerd-icons :config - (nerd-icons-completion-mode) ;; Activate nerd icons for completion interfaces. - (add-hook 'marginalia-mode-hook #'nerd-icons-completion-marginalia-setup)) ;; Setup icons in the marginalia mode for enhanced completion display. + (nerd-icons-completion-mode)) (defun ek/first-install () "dired" @@ -2852,7 +2800,10 @@ so the working-tree diff stays visible until the user explicitly stages." (defun my/doom-modeline--update-title-cache () "Update the cached #+title for the current buffer." (setq-local my/doom-modeline--buffer-title - (cadar (org-collect-keywords '("TITLE"))))) + ;; `org-collect-keywords' runs the org element parser, which + ;; errors (rx range error) outside org-mode buffers. + (and (derived-mode-p 'org-mode) + (cadar (org-collect-keywords '("TITLE")))))) (defun my/doom-modeline--buffer-title () "Return the cached #+title, computing it if necessary." @@ -2980,6 +2931,21 @@ created later still get them." (zoxide-add default-directory))) (add-hook 'dired-after-readin-hook #'my/zoxide-add-dired)) +(use-package croc-ui + :ensure nil + :commands (croc-ui croc-ui-send-files croc-ui-send-directory + croc-ui-send-text croc-ui-receive) + :init + (with-eval-after-load 'general + (my-leader "oc" '(croc-ui :wk "croc")))) + +(use-package sync-ui + :ensure nil + :commands (sync-ui) + :init + (with-eval-after-load 'general + (my-leader "oy" '(sync-ui :wk "sync")))) + (defun my/reload-config () "Re-tangle config.org and reload the generated config.el in place. Applies changes to customs, hooks, keybindings, and variable @@ -3039,12 +3005,10 @@ still require a restart since elpaca queues run at init time." projectile-globally-ignored-buffers '("\\*magit.*")) (add-hook 'after-save-hook #'projectile-cache-current-file)) -(use-package consult-projectile +(use-package helm-projectile :ensure t - :after (consult projectile) - :defer t - :config - (setq consult-project-function #'projectile-project-root)) + :after (helm projectile) + :commands (helm-projectile-find-file helm-projectile-switch-project)) (use-package wgrep :ensure t @@ -3053,29 +3017,31 @@ still require a restart since elpaca queues run at init time." (wgrep-auto-save-buffer t) (wgrep-change-readonly-file t)) +(use-package wgrep-helm + :ensure t + :after (wgrep helm)) + (defun my/project-replace () - "Project-wide search via `consult-ripgrep'. -In the minibuffer press `C-c C-e' (embark-export) — wgrep mode -activates automatically. Edit, then `C-c C-c' commits, `C-c C-k' aborts." + "Project-wide search via `helm-do-grep-ag-project'. +Press `C-x C-s' in the helm session to save results to a *hgrep* +buffer, then `C-c C-p' (wgrep-change-to-wgrep-mode) to edit in +place. `C-c C-c' commits, `C-c C-k' aborts." (interactive) - (call-interactively #'consult-ripgrep)) - -(defun my/embark-export-auto-wgrep (&rest _) - "Enter wgrep mode automatically after `embark-export'." - (when (and (derived-mode-p 'grep-mode) - (fboundp 'wgrep-change-to-wgrep-mode)) - (wgrep-change-to-wgrep-mode))) - -(with-eval-after-load 'embark - (advice-add 'embark-export :after #'my/embark-export-auto-wgrep)) + (call-interactively #'helm-do-grep-ag-project)) -(defun my/consult-fd-in (dir) +(defun my/helm-find-in (dir) (interactive "DFind files in: ") - (consult-fd dir)) + (helm-find-1 dir)) -(defun my/consult-ripgrep-in (dir) +(defun my/helm-grep-in (dir) (interactive "DGrep in: ") - (consult-ripgrep dir)) + (let ((default-directory (file-name-as-directory dir))) + (helm-do-grep-ag nil))) + +(defun my/denote-grep () + (interactive) + (let ((default-directory (expand-file-name denote-directory))) + (helm-do-grep-ag nil))) (use-package persp-mode :ensure t @@ -3086,7 +3052,7 @@ activates automatically. Edit, then `C-c C-c' commits, `C-c C-k' aborts." (defvar my/workspaces-master "master") (defvar my/workspace-last nil) (defvar my/workspaces-on-switch-project 'non-empty) - (defvar my/workspace-switch-project-function #'projectile-find-file) + (defvar my/workspace-switch-project-function #'helm-projectile-find-file) (setq persp-autokill-buffer-on-remove 'kill-weak persp-reset-windows-on-nil-window-conf nil @@ -3307,24 +3273,6 @@ activates automatically. Edit, then `C-c C-c' commits, `C-c C-k' aborts." (persp-mode 1)) -(with-eval-after-load 'consult - (defvar my/workspace-consult-source - (list :name "Workspace" - :narrow ?w - :category 'buffer - :face 'consult-buffer - :history 'buffer-name-history - :state #'consult--buffer-state - :default t - :items - (lambda () - (consult--buffer-query - :predicate #'persp-contain-buffer-p - :sort 'visibility - :as #'buffer-name)))) - (add-to-list 'consult-buffer-sources 'my/workspace-consult-source) - (consult-customize consult--source-buffer :default nil :narrow ?B)) - (with-eval-after-load 'ibuffer (define-ibuffer-filter persp "Limit to buffers in the current workspace." @@ -3465,15 +3413,26 @@ activates automatically. Edit, then `C-c C-c' commits, `C-c C-k' aborts." ((bound-and-true-p eglot--managed-mode) (eglot-format-buffer)) (t (message "No formatter for %s" major-mode)))) +(defun my/find-file-or-switch-project () + "Find a file in the current project; outside one, pick a project first. +Uses the native Helm sources from `helm-projectile'. Picking a project +switches to its workspace and shows its files via +`projectile-switch-project-action', so this also works from the master +workspace (e.g. *scratch*)." + (interactive) + (if (projectile-project-p) + (helm-projectile-find-file) + (helm-projectile-switch-project))) + (my-leader "SPC" '(my/find-file-or-switch-project :wk "find file/switch project") - "sp" '(consult-projectile :wk "search project") - "ss" '(my/fzfa-swiper :wk "search line") - "sg" '(my/consult-ripgrep-in :wk "grep in dir") - "sf" '(my/consult-fd-in :wk "find file in dir") - "/" '(fzfa-rg :wk "search project") - "." '(fzfa-find :wk "find file") - "," '(fzfa-buffer :wk "switch buffer") + "sp" '(helm-projectile :wk "search project") + "ss" '(helm-occur :wk "search line") + "sg" '(my/helm-grep-in :wk "grep in dir") + "sf" '(my/helm-find-in :wk "find file in dir") + "/" '(helm-do-grep-ag-project :wk "search project") + "." '(helm-find-files :wk "find file") + "," '(helm-mini :wk "switch buffer") ":" (lambda () (interactive) (execute-extended-command nil)) "u" '(universal-argument :wk "universal argument") @@ -3484,7 +3443,7 @@ activates automatically. Edit, then `C-c C-c' commits, `C-c C-k' aborts." "dm" '(:ignore t :wk "Merge Notes") "dmr" '(denote-merge-region :wk "Merge Region") "dmf" '(denote-merge-file :wk "Merge File") - "dg" '(consult-denote-grep t :wk "Search") + "dg" '(my/denote-grep :wk "Search") "dl" '(denote-link-or-create t :wk "Link Note") "dn" '(denote t :wk "Create a new note") "dr" '(denote-rename-file t :wk "Rename Note") @@ -3495,12 +3454,12 @@ activates automatically. Edit, then `C-c C-c' commits, `C-c C-k' aborts." "f" '(:ignore t :wk "files") "fd" '(dired-jump :wk "dired") "fD" '(dired-jump :wk "dired jump") - "fr" '(fzfa-recent-file :wk "recent files") - "ff" '(fzfa-fd :wk "find file") + "fr" '(helm-recentf :wk "recent files") + "ff" '(helm-find-files :wk "find file") "fs" '(save-buffer :wk "save file") "b" '(:ignore t :wk "buffer/bookmarks") - "bb" '(fzfa-bookmark :wk "display current bookmarks") + "bb" '(helm-filtered-bookmarks :wk "display current bookmarks") "bi" '(my/ibuffer-workspace :wk "ibuffer (workspace)") "bp" '(projectile-ibuffer :wk "ibuffer project") "bd" '(bookmark-delete :wk "delete bookmark") @@ -3509,10 +3468,10 @@ activates automatically. Edit, then `C-c C-c' commits, `C-c C-k' aborts." "br" '(rename-buffer :wk "rename buffer") "p" '(:ignore t :wk "project") - "pp" '(my/fzfa-switch-project-find-file :wk "switch project workspace") - "pf" '(fzfa-project-find-file :wk "find file") - "ps" '(consult-ripgrep :wk "search") - "pb" '(consult-projectile-buffer :wk "buffers") + "pp" '(helm-projectile-switch-project :wk "switch project workspace") + "pf" '(helm-projectile-find-file :wk "find file") + "ps" '(helm-projectile-rg :wk "search") + "pb" '(helm-projectile-switch-to-buffer :wk "buffers") "pk" '(projectile-kill-buffers :wk "kill buffers") "pd" '(projectile-remove-known-project :wk "delete project") "pr" '(my/project-replace :wk "project replace (wgrep)") @@ -3555,7 +3514,7 @@ activates automatically. Edit, then `C-c C-c' commits, `C-c C-k' aborts." "hf" '(describe-function :wk "function") "hv" '(describe-variable :wk "variable") "hk" '(describe-key :wk "key") - "ht" '(consult-theme :wk "load theme") + ;; "ht" '(load-theme :wk "load theme") "w w" '(evil-window-next :wk "Close window") "w c" '(evil-window-delete :wk "Close window") @@ -3590,7 +3549,7 @@ activates automatically. Edit, then `C-c C-c' commits, `C-c C-k' aborts." "x" '(org-capture :wk "capture") ";" '(embark-act :wk "embark") - "P" '(consult-yank-from-kill-ring :wk "paste history") + "P" '(helm-show-kill-ring :wk "paste history") ;; "t" '(:ignore t :wk "treesitter") ;; "ts" '(flash-treesitter :wk "flash treesitter") @@ -3622,7 +3581,8 @@ activates automatically. Edit, then `C-c C-c' commits, `C-c C-k' aborts." (general-def '(normal visual operator) 'override :predicate '(not (derived-mode-p 'mu4e-main-mode 'mu4e-headers-mode - 'mu4e-view-mode 'mu4e-compose-mode)) + 'mu4e-view-mode 'mu4e-compose-mode + 'croc-ui-mode 'sync-ui-mode)) "s" 'my/s-key-dispatch) @@ -3636,7 +3596,7 @@ activates automatically. Edit, then `C-c C-c' commits, `C-c C-k' aborts." "[b" 'switch-to-prev-buffer "]t" 'tab-next "[t" 'tab-previous - "P" 'consult-yank-from-kill-ring + "P" 'helm-show-kill-ring ;; "?" 'casual-avy-tmenu "gcc" (lambda () (interactive) @@ -4302,74 +4262,4 @@ opening another file in same project does not re-notify." :ensure t :hook (org-mode . org-auto-tangle-mode)) -(use-package fzfa - :ensure (:host github :repo "jojojames/fzfa") - :custom - (fzfa-preview-delay 0.25)) - -(defun my/project-open-workspace () - "Open the workspace for the project chosen by `project-switch-project'. -`project-switch-project' conveys the chosen root via -`project-current-directory-override', not `default-directory'." - (interactive) - (my/workspace-switch-to-project - (project-root (project-current t)))) - -(defun my/fzfa-switch-project-find-file () - "Switch to a known project's workspace and immediately browse its files. -Picks a project with fzfa, lets `my/workspace-switch-to-project' -switch to (or create) the persp workspace named after it, then runs -`fzfa-project-find-file' inside it. Binding `project-switch-commands' -to a command symbol makes `project-switch-project' invoke it directly." - (interactive) - (let ((my/workspace-switch-project-function #'fzfa-project-find-file) - (project-switch-commands #'my/project-open-workspace)) - (fzfa-project-switch-project))) - -(defun my/fzfa-swiper () - "Search lines of the current buffer with fontified candidates. -Like `fzfa-swiper', but keeps font-lock faces on the candidates and -jumps to the candidate's line as the selection moves. Aborting -restores the original point." - (interactive) - (let* ((source (or (buffer-file-name) (buffer-name))) - (origin (point-marker)) - (candidates - (save-excursion - (font-lock-ensure) - (goto-char (point-min)) - (let ((i 1) lines) - (while (not (eobp)) - (let ((content (buffer-substring - (line-beginning-position) - (line-end-position)))) - (unless (string-empty-p content) - (push (fzfa--location-candidate - (concat (propertize (format "%d:" i) - 'face 'line-number) - content) - source i) - lines))) - (forward-line 1) - (cl-incf i)) - (nreverse lines))))) - (fzfa-visit-location - (fzfa-completing-read - :candidates candidates - :prompt "swiper: " - :category 'fzfa-location - :preview `(:preview fzfa--location-preview - :return ,(lambda (cand) - (unless cand - (goto-char origin)))))))) - -(defun my/find-file-or-switch-project () - "Find a file in the current project; outside one, pick a project first. -After picking a project its files are shown immediately, so this also -works from the master workspace (e.g. *scratch*)." - (interactive) - (if (projectile-project-p) - (fzfa-project-find-file) - (my/fzfa-switch-project-find-file))) - (provide 'init) diff --git a/custom-vars.el b/custom-vars.el index 578163e..d1fd5a4 100644 --- a/custom-vars.el +++ b/custom-vars.el @@ -7,10 +7,7 @@ '(custom-safe-themes '("d43860349c9f7a5b96a090ecf5f698ff23a8eb49cd1e5c8a83bb2068f24ea563" default)) - '(erc-modules - '(autojoin button completion fill irccontrols list match - move-to-prompt netsplit networks nicks noncommands - notifications readonly ring scrolltobottom stamp track) nil nil "Customized with use-package erc") + '(helm-minibuffer-history-key "M-p") '(package-selected-packages '(adaptive-wrap async corfu-terminal cursory edit-indirect flycheck gptel marginalia markdown-mode mu4e nov @@ -44,6 +41,9 @@ (eval progn (add-to-list 'auto-mode-alist '("\\.html\\'" . jinja2-mode)) (add-to-list 'auto-mode-alist '("\\.j2\\'" . jinja2-mode))))) + '(sync-ui-repos + '(("~/org" . auto) ("~/.claude/skills" . auto) ("~/pass" . auto) + ("~/nix" . ask) ("~/.emacs.d" . auto))) '(zoom-size '(0.382 . 0.618))) (custom-set-faces ;; custom-set-faces was added by Custom. diff --git a/themes/tinty-theme.el b/themes/tinty-theme.el index 65f3cc8..1dcff08 100644 --- a/themes/tinty-theme.el +++ b/themes/tinty-theme.el @@ -19,67 +19,67 @@ (deftheme tinty "Noctalia theme with proper color contrast.") (let* (;; Tinted8 UI surface colors - (ui-bg "#1e1e2e") - (ui-fg "#cdd6f4") - (ui-fg-dim "#97abed") + (ui-bg "#292b2e") + (ui-fg "#b2b2b2") + (ui-fg-dim "#686868") ;; Use dim foreground for borders/muted chrome so they stay visible in ;; light variants (the raw border color is nearly white on latte). - (ui-border "#97abed") - (ui-line-highlight "#505365") - (ui-bg-dark "#181825") - (ui-bg-light "#353554") + (ui-border "#686868") + (ui-line-highlight "#3b314d") + (ui-bg-dark "#212026") + (ui-bg-light "#42444a") ;; Tinted8 UI accent/status colors (ui-accent "#f38ba8") - (ui-link "#c6ede6") - (ui-info "#fab387") - (ui-error "#f38ba8") - (ui-success "#a6e3a1") - (ui-warning "#f9e2af") + (ui-link "#4f97d7") + (ui-info "#4f97d7") + (ui-error "#e0211d") + (ui-success "#86dc2f") + (ui-warning "#dc752f") ;; Tinted8 UI container colors (for BACKGROUNDS only) - (ui-selection-bg "#353554") - (ui-selection-fg "#cdd6f4") - (ui-button-bg "#353554") - (ui-button-fg "#cdd6f4") - (ui-tooltip-bg "#181825") - (ui-tooltip-fg "#cdd6f4") - (ui-active-text-bg "#6c7086") - (ui-active-text-fg "#cdd6f4") - (ui-search-bg "#353554") - (ui-search-fg "#f9e2af") + (ui-selection-bg "#444155") + (ui-selection-fg "#b2b2b2") + (ui-button-bg "#42444a") + (ui-button-fg "#e3dedd") + (ui-tooltip-bg "#34323e") + (ui-tooltip-fg "#9a9aba") + (ui-active-text-bg "#5d4d7a") + (ui-active-text-fg "#e3dedd") + (ui-search-bg "#86dc2f") + (ui-search-fg "#292b2e") ;; Tinted8 syntax colors ;; Comments use dim foreground instead of the raw syntax-comment gray, ;; which becomes almost invisible in light variants. - (syntax-comment "#97abed") - (syntax-constant "#fab387") - (syntax-function "#94e2d5") - (syntax-keyword "#cba6f7") - (syntax-string "#a6e3a1") - (syntax-type "#c7dafa") + (syntax-comment "#686868") + (syntax-constant "#a45bad") + (syntax-function "#bc6ec5") + (syntax-keyword "#4f97d7") + (syntax-string "#2d9574") + (syntax-type "#ce537a") ;; Give variables/imported names a distinct hue instead of blending into ;; the default foreground. - (syntax-variable "#cdd6f4") - (syntax-warning "#f6c5d3") - (syntax-preprocessor "#488dfd") - (syntax-annotation "#f9e2af") - (syntax-attribute "#ece0fb") - (syntax-number "#cba6f7") - (syntax-operator "#94e2d5") + (syntax-variable "#7590db") + (syntax-warning "#f2241f") + (syntax-preprocessor "#c56ec3") + (syntax-annotation "#b1951d") + (syntax-attribute "#7590db") + (syntax-number "#a45bad") + (syntax-operator "#4f97d7") ;; Raw palette colors for rainbow headings, delimiters, terminal faces, ;; and anywhere else we need a predictable hue cycle. - (pal-red "#f38ba8") - (pal-orange "#fab387") - (pal-yellow "#f9e2af") - (pal-green "#a6e3a1") - (pal-cyan "#94e2d5") - (pal-blue "#89b4fa") - (pal-magenta "#cba6f7") - (pal-gray "#6c7086") - (pal-white "#cdd6f4") - (pal-black "#1e1e2e")) + (pal-red "#f2241f") + (pal-orange "#dc752f") + (pal-yellow "#b1951d") + (pal-green "#67b11d") + (pal-cyan "#28def0") + (pal-blue "#4f97d7") + (pal-magenta "#a31db1") + (pal-gray "#686868") + (pal-white "#b2b2b2") + (pal-black "#292b2e")) (custom-theme-set-faces 'tinty @@ -290,13 +290,13 @@ ;; === Terminal colors - mapped to the palette so they stay correct in both variants === `(term-color-black ((t (:foreground ,ui-bg-dark :background ,ui-bg-dark)))) - `(term-color-red ((t (:foreground "#f38ba8" :background "#f38ba8")))) - `(term-color-green ((t (:foreground "#a6e3a1" :background "#a6e3a1")))) - `(term-color-yellow ((t (:foreground "#f9e2af" :background "#f9e2af")))) - `(term-color-blue ((t (:foreground "#89b4fa" :background "#89b4fa")))) - `(term-color-magenta ((t (:foreground "#cba6f7" :background "#cba6f7")))) - `(term-color-cyan ((t (:foreground "#94e2d5" :background "#94e2d5")))) - `(term-color-white ((t (:foreground "#cdd6f4" :background "#cdd6f4")))) + `(term-color-red ((t (:foreground "#f2241f" :background "#f2241f")))) + `(term-color-green ((t (:foreground "#67b11d" :background "#67b11d")))) + `(term-color-yellow ((t (:foreground "#b1951d" :background "#b1951d")))) + `(term-color-blue ((t (:foreground "#4f97d7" :background "#4f97d7")))) + `(term-color-magenta ((t (:foreground "#a31db1" :background "#a31db1")))) + `(term-color-cyan ((t (:foreground "#28def0" :background "#28def0")))) + `(term-color-white ((t (:foreground "#b2b2b2" :background "#b2b2b2")))) ;; === EShell === `(eshell-prompt ((t (:foreground ,ui-accent :weight bold)))) @@ -509,14 +509,14 @@ `(ansi-color-magenta ((t (:foreground ,pal-magenta :background ,pal-magenta)))) `(ansi-color-cyan ((t (:foreground ,pal-cyan :background ,pal-cyan)))) `(ansi-color-white ((t (:foreground ,pal-white :background ,pal-white)))) - `(ansi-color-bright-black ((t (:foreground "#353554" :background "#353554")))) - `(ansi-color-bright-red ((t (:foreground "#f6c5d3" :background "#f6c5d3")))) - `(ansi-color-bright-green ((t (:foreground "#d4efd2" :background "#d4efd2")))) - `(ansi-color-bright-yellow ((t (:foreground "#fcf6e9" :background "#fcf6e9")))) - `(ansi-color-bright-blue ((t (:foreground "#c7dafa" :background "#c7dafa")))) - `(ansi-color-bright-magenta ((t (:foreground "#ece0fb" :background "#ece0fb")))) - `(ansi-color-bright-cyan ((t (:foreground "#c6ede6" :background "#c6ede6")))) - `(ansi-color-bright-white ((t (:foreground "#ffffff" :background "#ffffff")))) + `(ansi-color-bright-black ((t (:foreground "#42444a" :background "#42444a")))) + `(ansi-color-bright-red ((t (:foreground "#f55d59" :background "#f55d59")))) + `(ansi-color-bright-green ((t (:foreground "#86dd2e" :background "#86dd2e")))) + `(ansi-color-bright-yellow ((t (:foreground "#ddbc2e" :background "#ddbc2e")))) + `(ansi-color-bright-blue ((t (:foreground "#81b4e2" :background "#81b4e2")))) + `(ansi-color-bright-magenta ((t (:foreground "#cc2edd" :background "#cc2edd")))) + `(ansi-color-bright-cyan ((t (:foreground "#61e7f4" :background "#61e7f4")))) + `(ansi-color-bright-white ((t (:foreground "#e3dedd" :background "#e3dedd")))) ;; === Anzu === `(anzu-replace-highlight ((t (:background ,ui-line-highlight :foreground ,ui-error :weight bold :strike-through t)))) @@ -1167,14 +1167,14 @@ ;; === Term (extended) === `(term ((t (:foreground ,ui-fg :background ,ui-bg)))) `(term-bold ((t (:weight bold)))) - `(term-color-bright-black ((t (:foreground "#353554" :background "#353554")))) - `(term-color-bright-red ((t (:foreground "#f6c5d3" :background "#f6c5d3")))) - `(term-color-bright-green ((t (:foreground "#d4efd2" :background "#d4efd2")))) - `(term-color-bright-yellow ((t (:foreground "#fcf6e9" :background "#fcf6e9")))) - `(term-color-bright-blue ((t (:foreground "#c7dafa" :background "#c7dafa")))) - `(term-color-bright-magenta ((t (:foreground "#ece0fb" :background "#ece0fb")))) - `(term-color-bright-cyan ((t (:foreground "#c6ede6" :background "#c6ede6")))) - `(term-color-bright-white ((t (:foreground "#ffffff" :background "#ffffff")))) + `(term-color-bright-black ((t (:foreground "#42444a" :background "#42444a")))) + `(term-color-bright-red ((t (:foreground "#f55d59" :background "#f55d59")))) + `(term-color-bright-green ((t (:foreground "#86dd2e" :background "#86dd2e")))) + `(term-color-bright-yellow ((t (:foreground "#ddbc2e" :background "#ddbc2e")))) + `(term-color-bright-blue ((t (:foreground "#81b4e2" :background "#81b4e2")))) + `(term-color-bright-magenta ((t (:foreground "#cc2edd" :background "#cc2edd")))) + `(term-color-bright-cyan ((t (:foreground "#61e7f4" :background "#61e7f4")))) + `(term-color-bright-white ((t (:foreground "#e3dedd" :background "#e3dedd")))) ;; === Transient === `(transient-heading ((t (:foreground ,pal-blue :weight bold)))) |
