diff --git a/emacs/init.el b/emacs/init.el index b265cb4..3378749 100644 --- a/emacs/init.el +++ b/emacs/init.el @@ -1,12 +1,19 @@ +;; MELPA + (require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) (package-initialize) (package-refresh-contents) +;; Install packages + (unless (package-installed-p 'use-package) (package-install 'use-package)) +(unless (package-installed-p 'which-key) + (package-install 'which-key)) + (unless (package-installed-p 'undo-tree) (package-install 'undo-tree)) (require 'undo-tree) @@ -25,6 +32,17 @@ (evil-mode 1) (evil-set-undo-system 'undo-redo) +(unless (package-installed-p 'general) + (package-install 'general)) + +;; Configure packages + +(use-package evil-collection + :after evil + :config + (setq evil-collection-mode-list '(dashboard dired ibuffer)) + (evil-collection-init)) + (use-package evil :init (setq evil-want-integration t) @@ -32,8 +50,58 @@ (setq evil-vsplit-window-right t) (setq evil-split-window-below t) (evil-mode)) -(use-package evil-collection - :after evil - :config - (setq evil-collection-mode-list '(dashboard dired ibuffer)) - (evil-collection-init)) + +;; Keybinds + +(use-package which-key + :init + (which-key-mode 1) + :config + (setq which-key-side-window-location 'bottom + which-key-sort-order #'which-key-key-order-alpha + which-key-sort-uppercase-first nil + which-key-add-column-padding 1 + which-key-max-display-columns nil + which-key-min-display-lines 6 + which-key-side-window-slot -10 + which-key-side-window-max-height 0.25 + which-key-idle-delay 0.8 + which-key-max-description-length 25 + which-key-allow-imprecise-window-fit t + which-key-separator " → " )) + +(use-package general + :config + (general-evil-setup) + (general-create-definer leader-keys + :states '(normal insert visual emacs) + :keymaps 'override + :prefix "SPC" + :global-prefix "M-SPC") + + (leader-keys + "bn" '(next-buffer :wk "Next buffer") + "bk" '(kill-this-buffer :wk "Kill this buffer"))) + +;; Theming + +(menu-bar-mode 0) +(tool-bar-mode 0) +(scroll-bar-mode 0) +(global-display-line-numbers-mode 1) +(global-visual-line-mode t) + +(set-face-attribute 'default nil + :font "JetBrains Mono" + :height 110 + :weight 'normal) + +(set-face-attribute 'fixed-pitch nil + :font "JetBrains Mono" + :height 110 + :weight 'normal) + +(set-face-attribute 'font-lock-comment-face nil + :slant 'italic) + +(add-to-list 'default-frame-alist '(font . "JetBrains Mono-10"))