summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.el362
-rw-r--r--custom-vars.el8
-rw-r--r--themes/tinty-theme.el136
3 files changed, 198 insertions, 308 deletions
diff --git a/config.el b/config.el
index 198c04c..83c659e 100644
--- a/config.el
+++ b/config.el
@@ -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))))