summaryrefslogtreecommitdiff
path: root/config/treemacs.el
blob: 07ecb411d265bb6324b5071f80f49970c40bcbad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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))