dotfiles/.emacs.d/init.el
2023-02-10 09:43:54 +01:00

186 lines
4.7 KiB
EmacsLisp

(add-hook 'emacs-startup-hook
(lambda ()
(message "tobmacs loaded in %s."
(emacs-init-time))))
(set-default-coding-systems 'utf-8)
(customize-set-variable 'visible-bell 1)
(customize-set-variable 'large-file-warning-threshold 100000000)
(add-to-list 'load-path (expand-file-name "modules/" user-emacs-directory))
(setq custom-file (expand-file-name "custom.el" user-emacs-directory))
(load custom-file 'noerror)
(add-to-list 'native-comp-eln-load-path (expand-file-name "eln-cache/" user-emacs-directory))
(setq package-archives
'(("elpa" . "https://elpa.gnu.org/packages/")
("elpa-devel" . "https://elpa.gnu.org/devel/")
("nongnu" . "https://elpa.nongnu.org/nongnu/")
("melpa" . "https://melpa.org/packages/")))
(setq package-archive-priorities
'(("elpa" . 2)
("nongnu" . 1)))
(package-initialize)
(unless package-archive-contents
(package-refresh-contents))
(unless (package-installed-p 'use-package)
(package-install 'use-package))
(require 'use-package)
(setq use-package-always-ensure t)
(use-package exec-path-from-shell)
(when (memq window-system '(mac ns x))
(exec-path-from-shell-initialize))
;; -----------------------------------------------------------------
(use-package cider
:defer t)
(use-package clj-refactor
:hook clojure-mode)
(use-package clojure-mode
:config
(use-package flycheck-clj-kondo)
(require 'flycheck-clj-kondo))
(use-package consult
:bind
(("C-x b" . consult-buffer)
("C-x 4 b" . consult-buffer-other-window)
("C-x r b" . consult-bookmark)
("C-x p b" . consult-project-buffer)
("M-y" . consult-yank-pop)
("M-g g" . consult-goto-line)
("M-g M-g" . consult-goto-line)
("M-i" . consult-imenu))
:hook
(completion-list-mode . consult-preview-at-point-mode))
(use-package corfu
:custom
(corfu-cycle t)
(corfu-preselect-first nil)
(corfu-auto t)
:init
(global-corfu-mode))
(use-package ef-themes
:config
(setq ef-themes-headings
'((0 . (variable-pitch light 2.0))
(1 . (variable-pitch light 1.5))
(2 . (variable-pitch semibold 1.2))
(t . (variable-pitch semibold 1.0))))
(setq ef-themes-mixed-fonts t
ef-themes-variable-pitch-ui t)
(mapc #'disable-theme custom-enabled-themes)
(load-theme 'ef-winter :no-confirm))
(use-package fontaine
:config
(setq fontaine-presets
'((tiny
:default-family "Iosevka Comfy Wide Fixed"
:default-height 70)
(small
:default-family "Iosevka Comfy Fixed"
:default-height 90)
(regular
:default-height 130)
(medium
:default-height 170)
(large
:default-weight semilight
:default-height 250
:bold-weight extrabold)
(presentation
:default-weight semilight
:default-height 250
:bold-weight extrabold)
(jumbo
:default-weight semilight
:default-height 300
:bold-weight extrabold)
(t
:default-family "Iosevka Comfy"
:default-weight regular
:default-height 130
:variable-pitch-family "Iosevka Comfy Duo"
:bold-weight bold
:italic-slant italic
:line-spacing 0.2)))
(fontaine-set-preset 'regular))
(use-package lsp-mode
:hook (swift-mode . lsp)
:commands lsp)
(use-package marginalia
:init
(marginalia-mode))
(use-package modus-themes
:config
(setq modus-themes-variable-pitch-headings t
modus-themes-org-blocks 'tinted-background
modus-themes-bold-constructs t
modus-themes-italic-constructs t
modus-themes-scale-headings t
modus-themes-completions 'opinionated
modus-themes-mode-line '(accented borderless)))
(use-package orderless
:custom
(completion-styles '(orderless basic))
(completion-category-overrides '((file (styles basic partial-completion)))))
(use-package org
:defer t
:config
(setq org-auto-align-tags nil
org-tags-column 0
org-special-ctrl-a/e t
org-pretty-entities t
org-hide-emphasis-markers t
org-startup-with-inline-images t))
(use-package org-modern
:init
(global-org-modern-mode))
(use-package rainbow-delimiters
:hook
((emacs-lisp-mode . rainbow-delimiters-mode)
(clojure-mode . rainbow-delimiters-mode)))
(use-package savehist
:init
(savehist-mode))
(use-package lsp-sourcekit
:after lsp-mode
:config
(setq lsp-sourcekit-executable "/Library/Developer/CommandLineTools/usr/bin/sourcekit-lsp"))
(use-package magit
:defer t)
(use-package swift-mode)
(use-package vertico
:init
(vertico-mode)
:config
(setq vertico-cycle t))
(require 'tobmacs-editor)