88 lines
2.7 KiB
EmacsLisp
88 lines
2.7 KiB
EmacsLisp
;; -*- lexical-binding: t -*-
|
|
|
|
(defvar bootstrap-version)
|
|
(let ((bootstrap-file
|
|
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
|
|
(bootstrap-version 6))
|
|
(unless (file-exists-p bootstrap-file)
|
|
(with-current-buffer
|
|
(url-retrieve-synchronously
|
|
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
|
|
'silent 'inhibit-cookies)
|
|
(goto-char (point-max))
|
|
(eval-print-last-sexp)))
|
|
(load bootstrap-file nil 'nomessage))
|
|
|
|
(straight-use-package 'doom-themes)
|
|
(setq custom-safe-themes t)
|
|
|
|
(custom-set-variables
|
|
'(custom-enabled-themes '(doom-palenight)))
|
|
(custom-set-faces
|
|
'(dashboard-items-face ((t (:inherit widget-button :weight normal)))))
|
|
|
|
|
|
(set-face-attribute 'default nil :family "Fira Code Nerd Font Mono" :height 120)
|
|
|
|
(setq-default c-basic-offset 4) ;; This is annoying
|
|
(setq-default indent-tabs-mode nil)
|
|
(setq-default tab-width 4)
|
|
(setq-default line-spacing 5)
|
|
(setq indent-line-function #'indent-relative)
|
|
|
|
(set-default 'truncate-lines t)
|
|
(set-default 'truncate-partial-width-windows nil)
|
|
|
|
(setq evil-want-keybinding nil)
|
|
(setq evil-want-C-u-scroll t)
|
|
(setq evil-want-Y-yank-to-eol t)
|
|
(setq evil-disable-insert-state-bindings t)
|
|
(setq evil-echo-state nil)
|
|
(straight-use-package 'evil)
|
|
(straight-use-package 'evil-collection)
|
|
|
|
(evil-mode t)
|
|
(evil-collection-init)
|
|
|
|
;; TODO: We need 3 bindings; 1.) close buffer 2.) close window 3.) close buffer and window
|
|
;; To disable a keybinding just bind it to nil
|
|
(evil-set-leader nil (kbd "C-SPC"))
|
|
(evil-set-leader 'normal (kbd "SPC"))
|
|
|
|
(evil-global-set-key 'insert (kbd "C-w") #'evil-delete-backward-word)
|
|
(evil-global-set-key 'normal (kbd "C-s") #'save-buffer)
|
|
|
|
(straight-use-package 'all-the-icons-completion)
|
|
(straight-use-package '(vertico :files (:defaults "extensions/*")))
|
|
|
|
(vertico-mode)
|
|
|
|
(define-key vertico-map (kbd "C-w") #'vertico-directory-delete-word)
|
|
|
|
(setq vertico-count 17
|
|
vertico-resize nil
|
|
vertico-cycle t)
|
|
|
|
(require 'savehist)
|
|
(savehist-mode)
|
|
(add-hook 'minibuffer-setup-hook #'vertico-repeat-save)
|
|
(add-to-list 'savehist-additional-variables 'vertico-repeat-history)
|
|
|
|
(straight-use-package 'orderless)
|
|
(setq completion-styles '(orderless basic)
|
|
completion-category-overrides '((file (styles basic partial-completion))))
|
|
|
|
|
|
(straight-use-package 'magit)
|
|
|
|
(defun joe/magit-kill-buffers (param)
|
|
"Restore window configuration and kill all Magit buffers."
|
|
(let ((buffers (magit-mode-get-buffers)))
|
|
(magit-restore-window-configuration)
|
|
(mapc #'kill-buffer buffers))
|
|
(kill-emacs))
|
|
|
|
(setq magit-bury-buffer-function #'joe/magit-kill-buffers)
|
|
(setq magit-clone-set-remote.pushDefault t)
|
|
(setq magit-clone-default-directory "~/Development/")
|