aboutsummaryrefslogtreecommitdiff
path: root/Doom/.doom.d/modules/private/oreoline/config.el
blob: 0bc3a41710a855d3e91d2af154901ac5d92b662e (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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
;;; ui/telephone/config.el -*- lexical-binding: t; -*-

(use-package! telephone-line
  :hook (after-init . telephone-line-mode)
  :init
  ;; Faces
  (defface +oreoline-accent-dark   '((t (:foreground "black" :background "Cadet Blue"      ))) "")
  (defface +oreoline-evil-dark     '((t (:foreground "white"    :background "dark green"           ))) "")
  (defface +oreoline-evil-inactive '((t (:foreground "cornsilk" :background "gray26"          ))) "")

  (defface +oreoline-accent-light  '((t (:foreground "black"    :background "Light Slate Grey"))) "")
  (defface +oreoline-evil-light    '((t (:foreground "black"    :background "Sky Blue"        ))) "")

  ;; Set telephone line faces
  (setq telephone-line-faces
        '((evil          . (+oreoline-evil-dark   . +oreoline-evil-inactive))
          (modal         . telephone-line-modal-face)
          (ryo           . telephone-line-ryo-modal-face)
          (accent        . (+oreoline-accent-dark . telephone-line-accent-inactive))
          (nil mode-line . mode-line-inactive)))
  (when (featurep! +light)
    (setq telephone-line-faces
          '((evil          . (+oreoline-evil-light   . +oreoline-evil-inactive))
            (modal         . telephone-line-modal-face)
            (ryo           . telephone-line-ryo-modal-face)
            (accent        . (+oreoline-accent-light . telephone-line-accent-inactive))
            (nil mode-line . mode-line-inactive))))

  ;; Seperators
  (setq telephone-line-primary-left-separator    'telephone-line-abs-left
        telephone-line-secondary-left-separator  'telephone-line-identity-hollow-left
        telephone-line-primary-right-separator   'telephone-line-abs-right
        telephone-line-secondary-right-separator 'telephone-line-identity-hollow-right)

  ;; LSP segment
  (telephone-line-defsegment +oreoline-lsp-segment ()
    (if (bound-and-true-p lsp-mode)
        (propertize "")
      (propertize "")))

  ;; Visual line check
  (telephone-line-defsegment +oreoline-visual-segment ()
    (if mark-active
        (let ((lines (count-lines (region-beginning) (region-end)))
              (chars (- (region-end) (region-beginning))))
          (if (< lines 2)
              (propertize (format "%sC" chars))
            (propertize (format "%sL %sC" lines chars))))
      (propertize "~")))

  (setq
   ;; LHS
   telephone-line-lhs
   '((evil   . (telephone-line-evil-tag-segment
                telephone-line-buffer-modified-segment))
     (accent . (telephone-line-filesize-segment
                telephone-line-buffer-name-segment
                telephone-line-erc-modified-channels-segment
                telephone-line-process-segment))
     (nil    . ()))
   ;; RHS
   telephone-line-rhs
   '((nil    . (telephone-line-misc-info-segment))
     (accent . (telephone-line-vc-segment
                +oreoline-lsp-segment
                telephone-line-major-mode-segment
                telephone-line-flycheck-segment))
     (modal  . (+oreoline-visual-segment))
     (evil   . (telephone-line-airline-position-segment))))
  :config
  (size-indication-mode +1))

(use-package! evil-anzu
  :after-call evil-ex-start-search evil-ex-start-word-search evil-ex-search-activate-highlight)