summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/magit.el32
-rw-r--r--early-init.el10
-rw-r--r--init.el4
-rw-r--r--themes/terafox-emacs-theme.el59
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)
;; =====================================
diff --git a/init.el b/init.el
index bcb133c..5d45b2f 100644
--- a/init.el
+++ b/init.el
@@ -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)