From f5e40c74da77adf875dea03c0a120ea64d7a58d4 Mon Sep 17 00:00:00 2001 From: bh Date: Fri, 12 Dec 2025 16:31:16 +0800 Subject: Added Treemacs --- config/modeline.el | 6 ++++++ config/treemacs.el | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 config/treemacs.el diff --git a/config/modeline.el b/config/modeline.el index 20d94d4..b6941ef 100644 --- a/config/modeline.el +++ b/config/modeline.el @@ -4,6 +4,12 @@ ;;(use-package nerd-icons) (use-package nerd-icons :config + ;; Fix missing data symlink (straight.el doesn't create it automatically) + (let ((data-link (expand-file-name "straight/build/nerd-icons/data" user-emacs-directory)) + (data-source (expand-file-name "straight/repos/nerd-icons/data" user-emacs-directory))) + (unless (file-exists-p data-link) + (when (file-exists-p data-source) + (make-symbolic-link data-source data-link)))) ;; Prevent icons from becoming bold in active modeline (dolist (face (face-list)) (when (string-prefix-p "nerd-icons-" (symbol-name face)) diff --git a/config/treemacs.el b/config/treemacs.el new file mode 100644 index 0000000..07ecb41 --- /dev/null +++ b/config/treemacs.el @@ -0,0 +1,46 @@ +;; Treemacs - Simple Configuration + +(use-package treemacs + :defer t + :config + (setq treemacs-width 35 + treemacs-width-is-initially-locked nil ;; Allow resizing + treemacs-width-increment 1 ;; Smooth resize + treemacs-position 'left + treemacs-show-hidden-files t + ; treemacs-indentation 1 ;; Minimal indentation + ; treemacs-indentation-string " " ;; Just space, no lines + + ;; Disable mouse Features + treemacs-move-files-by-mouse-dragging nil ;; NO DRAGGING FILES! + treemacs-recenter-after-file-follow nil ;; Prevent mouse issues + treemacs-silent-filewatch t ;; Reduce mouse events + treemacs-show-cursor nil) ;; Hide cursor in treemacs + + ;; Disable mouse in treemacs completely + :hook + (treemacs-mode . (lambda () + ;; Disable all mouse button bindings + (define-key treemacs-mode-map [mouse-1] 'ignore) + (define-key treemacs-mode-map [mouse-2] 'ignore) + (define-key treemacs-mode-map [mouse-3] 'ignore) + (define-key treemacs-mode-map [drag-mouse-1] 'ignore) + (define-key treemacs-mode-map [down-mouse-1] 'ignore) + (define-key treemacs-mode-map [double-mouse-1] 'ignore) + (define-key treemacs-mode-map [triple-mouse-1] 'ignore))) + :bind + ("C-x t t" . treemacs)) + +;; Beautiful icons for treemacs using nerd-icons +(use-package treemacs-nerd-icons + :after treemacs + :config + ;; Reduce spacing between arrows and icons + (setq treemacs-nerd-icons-tab (propertize " " :face 'treemacs-nerd-icons-file-face)) + (treemacs-load-theme "nerd-icons")) + +;; Customize folder icon colors (for nerd-icons theme) +(with-eval-after-load 'treemacs-nerd-icons + (set-face-attribute 'treemacs-nerd-icons-file-face nil + :foreground "#74c4c4" + :inherit 'unspecified)) -- cgit v1.2.3