Skip to content

marc1/.emacs.d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

Bootstrap straight.el

(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 straight-use-package-by-default t)

Raise GC threshold

(setq gc-cons-threshold (* 100 1024 1024))

Directories & Customize

(setq default-directory "~/")
(setq custom-file (expand-file-name "custom.el" user-emacs-directory))
(load-file (expand-file-name "custom.el" user-emacs-directory))

Disable clutter

(setq inhibit-startup-message t)
(setq inhibit-splash-screen t)
(setq initial-scratch-message nil)

(scroll-bar-mode -1)
(tooltip-mode -1)
(menu-bar-mode -1)
(tool-bar-mode -1)

(fringe-mode 20)

(add-to-list 'default-frame-alist '(undecorated . t))
(setq frame-title-format '("%b (emacs@" system-name ")"))

;; remove dialog "Risky local variables"
(defun risky-local-variable-p (sym &optional _ignored) nil)

Fonts & Theme

(set-face-attribute 'default nil :family "Julia Mono" :height 150)
(load-theme 'modus-operandi)

Org

(use-package org
  :defer
  :init
  (add-hook 'org-mode-hook 'org-indent-mode)
  (require 'org-tempo)
  :config
  (setq org-latex-packages-alist '(("" "preamble" t)))
  (setq org-export-with-toc nil)
  (setq org-directory "~/w/school")
  (setq org-agenda-files (list "schedule.org"))
  (setq org-startup-folded 'showeverything)
  (setq org-special-ctrl-a/e t)
  (setq calendar-week-start-day 1)
  (setq org-hide-emphasis-markers t)
  :bind (("C-c a" . 'org-agenda)))

Roam

(use-package org-roam
  :init
  (org-roam-db-autosync-mode)
  :bind
  (("C-c n l" . org-roam-buffer-toggle)
   ("C-c n f" . org-roam-node-find)
   ("C-c n g" . org-roam-ui-open)
   ("C-c n i" . org-roam-node-insert)
   ("C-c n c" . org-roam-capture)
   ("C-c n m" . org-id-get-create)))

(setq org-roam-directory "~/doc/base")
(define-key minibuffer-local-completion-map (kbd "SPC") 'self-insert-command)

(use-package org-roam-ui
  :straight
  (:host github :repo "org-roam/org-roam-ui" :branch "main" :files ("*.el" "out"))
  :after org-roam
  :config
  (setq org-roam-ui-sync-theme t
        org-roam-ui-follow t
        org-roam-ui-update-on-save t
        org-roam-ui-open-on-start nil))

Fragtog

(use-package org-fragtog
  :init
  (add-hook 'org-mode-hook 'org-fragtog-mode))

Anki

(use-package org-anki
  :config
  (setq org-anki-default-deck "discrete")
  :bind
  ("C-c f s e" . org-anki-sync-entry)
  ("C-c f s a" . org-anki-sync-all)
  ("C-c f d e" . org-anki-delete-entry)
  ("C-c f d a" . org-anki-delete-all))

Journal

(use-package org-journal
  :config
  (setq org-journal-dir "~/doc/journal")
  :bind
  ("C-c j n" . org-journal-new-entry))

Editing behaviour

(global-auto-revert-mode)
(setq tab-width 4)

(setq-default auto-fill-function 'do-auto-fill)
(setq-default fill-column 100)

Rust

(use-package rustic
  :defer
  :bind (("M-j" . lsp-ui-imenu)
         ("M-?" . lsp-find-references)
         ("C-c C-c l" . flycheck-list-errors)
         ("C-c C-c a" . lsp-execute-code-action)
         ("C-c C-c r" . lsp-rename)
         ("C-c C-c q" . lsp-workspace-restart)
         ("C-c C-c Q" . lsp-workspace-shutdown)
         ("C-c C-c s" . lsp-rust-analyzer-status))
    :config
  ;; uncomment for less flashiness
  (setq lsp-eldoc-hook nil)
  (setq lsp-enable-symbol-highlighting nil)
  (setq lsp-signature-auto-activate nil)

  ;; comment to disable rustfmt on save
  (setq rustic-format-on-save t)
  (add-hook 'rustic-mode-hook 'rk/rustic-mode-hook))

(defun rk/rustic-mode-hook ()
  ;; so that run C-c C-c C-r works without having to confirm, but don't try to
  ;; save rust buffers that are not file visiting. Once
  ;; https://github.com/brotzeit/rustic/issues/253 has been resolved this should
  ;; no longer be necessary.
  (when buffer-file-name
    (setq-local buffer-save-without-query t))
  (add-hook 'before-save-hook 'lsp-format-buffer nil t))
(use-package lsp-mode
  :ensure
  :commands lsp
  :custom
  ;; what to use when checking on-save. "check" is default, I prefer clippy
  (lsp-rust-analyzer-cargo-watch-command "clippy")
  (lsp-eldoc-render-all t)
  (lsp-idle-delay 0.6)
  ;; enable / disable the hints as you prefer:
  (lsp-rust-analyzer-server-display-inlay-hints t)
  (lsp-rust-analyzer-display-lifetime-elision-hints-enable "skip_trivial")
  (lsp-rust-analyzer-display-chaining-hints t)
  (lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names nil)
  (lsp-rust-analyzer-display-closure-return-type-hints t)
  (lsp-rust-analyzer-display-parameter-hints nil)
  (lsp-rust-analyzer-display-reborrow-hints nil)
  :config
  (add-hook 'lsp-mode-hook 'lsp-ui-mode))

(use-package lsp-ui
  :commands lsp-ui-mode
  :custom
  (lsp-ui-peek-always-show nil)
  (lsp-ui-sideline-show-hover nil)
  (lsp-ui-doc-enable nil)
  (setq lsp-signature-auto-activate nil)
  (setq lsp-enable-symbol-highlighting nil))

PDFTools

(use-package pdf-tools)
(pdf-tools-install)

Haskell

(use-package haskell-mode)

About

short and simple Emacs configuration

Resources

Stars

Watchers

Forks