dotfiles/emacs/init.el

136 lines
4.4 KiB
EmacsLisp

;; Disable UI elements
(setq inhibit-splash-screen t)
(menu-bar-mode -1)
(toggle-scroll-bar -1)
(tool-bar-mode -1)
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
(package-initialize)
(package-refresh-contents)
(when (not (package-installed-p 'use-package))
(package-install 'use-package))
(require 'use-package)
(setq use-package-always-ensure t)
;; Add personal elisp lib dir
(add-to-list 'load-path "~/.emacs.d/lisp/")
;; Auto refresh buffers if the file has been changed on disk
(global-auto-revert-mode t)
;; Theme
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
(use-package gruvbox-theme)
(load-theme 'gruvbox t)
;; Set the font size
(set-face-attribute 'default nil :height 140)
;; Nov.el
(add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode))
;; Org Mode configs
(require 'org)
(define-key global-map "\C-cl" 'org-store-link)
(define-key global-map "\C-ca" 'org-agenda)
(setq org-hide-emphasis-markers t)
(setq org-log-done t)
(setq org-agenda-files (list "~/Journal"))
(setq org-todo-keywords
'((sequence "TODO" "NEXT" "STARTED" "|" "DONE")))
(font-lock-add-keywords 'org-mode
'(("^ *\\([-]\\) "
(0 (prog1 () (compose-region (match-beginning 1) (match-end 1) ""))))))
(setq-default fill-column 80)
(add-hook 'org-mode-hook 'visual-line-mode)
(add-hook 'org-mode-hook (lambda () (set-fill-column 95)))
(add-hook 'org-mode-hook 'visual-fill-column-mode)
(add-hook 'org-mode-hook
(lambda ()
(org-indent-mode t))
t)
(use-package org-bullets
:config
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
(let* ((variable-tuple
(cond ((x-list-fonts "Source Sans Pro") '(:font "Source Sans Pro"))
((x-list-fonts "Lucida Grande") '(:font "Lucida Grande"))
((x-list-fonts "Verdana") '(:font "Verdana"))
((x-family-fonts "Sans Serif") '(:family "Sans Serif"))
(nil (warn "Cannot find a Sans Serif Font. Install Source Sans Pro."))))
(base-font-color (face-foreground 'default nil 'default))
(headline `(:inherit default)))
(custom-theme-set-faces
'user
'(org-indent ((t (:inherit (org-hide fixed-pitch)))))
`(org-level-8 ((t (,@headline ,@variable-tuple))))
`(org-level-7 ((t (,@headline ,@variable-tuple))))
`(org-level-6 ((t (,@headline ,@variable-tuple))))
`(org-level-5 ((t (,@headline ,@variable-tuple))))
`(org-level-4 ((t (,@headline ,@variable-tuple))))
`(org-level-3 ((t (,@headline ,@variable-tuple))))
`(org-level-2 ((t (,@headline ,@variable-tuple :height 1.05))))
`(org-level-1 ((t (,@headline ,@variable-tuple :height 1.12))))
`(org-document-title ((t (,@headline ,@variable-tuple :height 1.25 :underline nil))))))
(custom-theme-set-faces
'user
'(variable-pitch ((t (:family "Source Sans Pro" :height 180 :weight light))))
'(fixed-pitch ((t ( :family "Inconsolata" :slant normal :weight normal :height 1.0 :width normal)))))
(require 'ob-java)
(add-to-list 'org-babel-load-languages '(java . t))
;; Configure Language Server Protocol
(use-package lsp-mode)
(use-package dap-mode)
(use-package company)
(use-package lsp-ui)
(use-package lsp-treemacs)
(use-package lsp-java)
(use-package rust-mode)
(add-hook 'java-mode-hook #'lsp)
;; Automatically open some files in a buffer
(use-package treemacs
:ensure t
:defer t)
(find-file "/home/alex/.emacs.d/init.el")
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(ido-mode 'both nil (ido))
'(markdown-code-lang-modes
'(("ocaml" . tuareg-mode)
("elisp" . emacs-lisp-mode)
("ditaa" . artist-mode)
("asymptote" . asy-mode)
("dot" . fundamental-mode)
("sqlite" . sql-mode)
("calc" . fundamental-mode)
("C" . c-mode)
("cpp" . c++-mode)
("C++" . c++-mode)
("screen" . shell-script-mode)
("shell" . sh-mode)
("bash" . sh-mode)
("html" . html-mode)))
'(org-export-backends '(ascii html icalendar latex md odt))
'(org-export-with-toc nil)
'(org-tag-faces nil)
'(org-tags-column 0)
'(package-selected-packages
'(rust-mode yaml-mode visual-fill-column nov use-package org-bullets lsp-ui lsp-java htmlize gruvbox-theme flycheck-rust dap-mode company-capf)))