diff options
| -rw-r--r-- | config/magit.el | 32 | ||||
| -rw-r--r-- | early-init.el | 10 | ||||
| -rw-r--r-- | init.el | 4 | ||||
| -rw-r--r-- | themes/terafox-emacs-theme.el | 59 |
4 files changed, 103 insertions, 2 deletions
diff --git a/config/magit.el b/config/magit.el index 1bf91e9..89f73db 100644 --- a/config/magit.el +++ b/config/magit.el @@ -2,4 +2,34 @@ (use-package magit :bind - ("C-x g" . magit-status)) + (("C-x g" . magit-status) ;; Open Magit status + ("C-x M-g" . magit-dispatch) ;; Magit command menu + ("C-c M-g" . magit-file-dispatch) ;; File-specific commands + ("C-c g b" . magit-blame) ;; Git blame for current file + ("C-c g l" . magit-log-buffer-file) ;; Log for current file + ("C-c g d" . magit-diff-buffer-file));; Diff for current file + :config + ;; Selection color + (set-face-attribute 'magit-section-highlight nil + :background "#004344") + + ;; Show recent commits + (setq magit-log-section-commit-count 10) + + ;; Customize section order - keep unstaged, staged, and recent commits at top + (setq magit-status-sections-hook + '(magit-insert-status-headers + magit-insert-staged-changes + magit-insert-unstaged-changes + magit-insert-recent-commits + magit-insert-untracked-files + magit-insert-stashes + magit-insert-unpulled-from-upstream + magit-insert-unpushed-to-upstream + magit-insert-merge-log + magit-insert-rebase-sequence + magit-insert-am-sequence + magit-insert-sequencer-sequence + magit-insert-bisect-output + magit-insert-bisect-rest + magit-insert-bisect-log))) diff --git a/early-init.el b/early-init.el index bce0bc8..c8b5b5f 100644 --- a/early-init.el +++ b/early-init.el @@ -7,6 +7,16 @@ ;; Maximize GC threshold during startup (restored in init.el) (setq gc-cons-threshold most-positive-fixnum) + +;; ===================================== +;; 🎨 Terafox Theme +;; ===================================== + +;; Add config directory to theme path +(add-to-list 'custom-theme-load-path (expand-file-name "themes" user-emacs-directory)) +(load-theme 'terafox-emacs t) + + ;; ===================================== ;; 🎨 UI Configuration (Pre-GUI Init) ;; ===================================== @@ -63,7 +63,9 @@ ring-bell-function 'ignore) ;; Configure line numbers with themed colors -(global-display-line-numbers-mode 1) +;; Only show line numbers in text/code buffers, not special buffers (treemacs, magit, etc.) +(add-hook 'prog-mode-hook 'display-line-numbers-mode) +(add-hook 'text-mode-hook 'display-line-numbers-mode) (setq display-line-numbers-type 'relative) ;; Relative line numbers for Evil mode (set-face-attribute 'line-number nil :foreground "#4fa8a8" ;; Softer cyan for line numbers diff --git a/themes/terafox-emacs-theme.el b/themes/terafox-emacs-theme.el new file mode 100644 index 0000000..40ed478 --- /dev/null +++ b/themes/terafox-emacs-theme.el @@ -0,0 +1,59 @@ +;; Terafox-inspired theme for Emacs +;; Based on the Terafox colorscheme from nightfox.nvim + +(deftheme terafox-emacs + "A dark theme inspired by Terafox colorscheme") + +;; Color palette - Terafox syntax with custom bg/fg +(let ((bg "#003636") ;; Keep your original dark teal bg + (fg "#8affff") ;; Keep original fg + ;; (bg-alt "#002626") ;; Darker variant + ;; (bg-alt "#002323") ;; Darker variant + (bg-alt "#004344") ;; Darker variant + (gray "#2f3239") + ;; Terafox syntax colors from tmTheme + (keyword "#ad5c7c") ;; Mauve - keywords + (string "#7aa4a1") ;; Muted cyan - strings + (number "#fda47f") ;; Peachy orange - numbers/constants + (function "#4d7d90") ;; Steel blue - functions + (type "#fda47f") ;; Peachy orange - types + (builtin "#e85c51") ;; Coral red - built-ins + (variable "#ad6771") ;; Dusty mauve - variables + (operator "#a1cdd8") ;; Light cyan - operators + (comment "#6a7c88") ;; Dark gray - comments + (cursor "#FFC600") ;; Keep your yellow cursor + (selection "#395e5e")) ;; Keep your teal selection + + (custom-theme-set-faces + 'terafox-emacs + + ;; Base faces + `(default ((t (:foreground ,fg :background ,bg)))) + `(cursor ((t (:background ,cursor)))) + `(region ((t (:background ,selection)))) + `(highlight ((t (:background ,bg-alt)))) + `(fringe ((t (:background ,bg)))) + `(vertical-border ((t (:foreground ,operator)))) + + ;; Font lock (syntax highlighting) + `(font-lock-builtin-face ((t (:foreground ,builtin)))) + `(font-lock-comment-face ((t (:foreground ,comment :slant italic)))) + `(font-lock-constant-face ((t (:foreground ,number)))) + `(font-lock-function-name-face ((t (:foreground ,function)))) + `(font-lock-keyword-face ((t (:foreground ,keyword)))) + `(font-lock-string-face ((t (:foreground ,string)))) + `(font-lock-type-face ((t (:foreground ,type)))) + `(font-lock-variable-name-face ((t (:foreground ,variable)))) + `(font-lock-warning-face ((t (:foreground ,builtin :weight bold)))) + + ;; Completions + `(completions-common-part ((t (:foreground ,operator)))) + `(completions-first-difference ((t (:foreground ,type :weight bold)))) + + ;; Treemacs + `(treemacs-directory-face ((t (:foreground "#74c4c4")))) + `(treemacs-directory-collapsed-face ((t (:foreground "#74c4c4")))) + `(treemacs-nerd-icons-file-face ((t (:foreground "#74c4c4")))) + `(treemacs-nerd-icons-root-face ((t (:foreground ,fg :weight bold)))))) + +(provide-theme 'terafox-emacs) |
