Files
dotfiles/Emacs/.config/emacs/init.el
2020-06-21 02:00:21 +01:00

154 lines
4.3 KiB
EmacsLisp

(setq user-emacs-directory (expand-file-name "~/.config/emacs/"))
(setq straight-use-package-by-default t)
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 5))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
(straight-use-package 'use-package)
(setq ring-bell-function 'ignore)
(tool-bar-mode -1)
(scroll-bar-mode -1)
(tab-bar-mode -1)
(add-hook 'prog-mode-hook #'hs-minor-mode)
(load-theme 'tango-dark)
(use-package evil
:config
(evil-mode +1))
(use-package evil-surround
:after (evil)
:config
(evil-surround-mode +1))
(use-package which-key
:config
(which-key-mode +1))
(use-package general
:config
(general-create-definer leader
:prefix "SPC"
:states 'normal
:keymaps 'override)
(general-create-definer localleader
:prefix ","
:states 'normal
:keymaps 'override)
(general-def
"M-s" nil
"M-s" #'occur)
(leader
"!" #'async-shell-command
"f" '(:ignore t :wk "File")
"s" '(:ignore t :wk "Search")
"b" '(:ignore t :wk "Buffer"))
(general-def
:states 'visual
"gr" #'eval-region)
(leader
:infix "b"
"n" #'next-buffer
"p" #'previous-buffer
"b" #'counsel-switch-buffer
"i" #'ibuffer)
(leader
:infix "o"
"-" #'dired)
(leader
:infix "f"
"s" #'save-buffer
"f" #'find-file
"p" #'((lambda () (interactive) (find-file "~/.config/emacs/init.el"))
:wk "Open init.el")))
(use-package counsel
:general
(leader
"SPC" #'counsel-M-x)
(leader
:infix "s"
"s" #'(swiper :wk "Search buffer")
"r" #'(counsel-rg :wk "Ripgrep"))
(general-def
:keymaps 'ivy-mode-map
"C-j" #'ivy-next-line-or-history
"C-k" #'ivy-previous-line-or-history)
:init
(counsel-mode +1))
(use-package org)
(use-package magit)
(use-package evil-magit)
(use-package telephone-line
:hook (after-init . telephone-line-mode)
:init
; Faces
(defface my-accent-dark '((t (:foreground "Black" :background "Cadet Blue"))) "")
(defface my-evil-dark '((t (:foreground "White" :background "Black"))) "")
(defface my-accent-light '((t (:foreground "black" :background "Light Slate Grey"))) "")
(defface my-evil-light '((t (:foreground "black" :background "Sky Blue"))) "")
;; Set telephone line faces
(setq telephone-line-faces
'((evil . (my-evil-dark . my-evil-dark))
(modal . telephone-line-modal-face)
(ryo . telephone-line-ryo-modal-face)
(accent . (my-accent-dark . 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 "")))
; LHS
(setq telephone-line-lhs
'((evil . (telephone-line-evil-tag-segment
telephone-line-buffer-modified-segment))
(accent . (telephone-line-vc-segment
telephone-line-filesize-segment
telephone-line-buffer-name-segment
telephone-line-erc-modified-channels-segment
telephone-line-process-segment))
(nil . ())))
; RHS
(setq telephone-line-rhs
'((nil . (telephone-line-misc-info-segment))
(accent . (telephone-line-major-mode-segment
+oreoline-lsp-segment
telephone-line-flycheck-segment))
(evil . (telephone-line-airline-position-segment))))
(telephone-line-mode +1)
:config
(size-indication-mode +1))