Skip to content
Snippets Groups Projects
Commit 6cd7ded7 authored by Tim van Deurzen's avatar Tim van Deurzen
Browse files

Add initial custom emacs configuration.

parent 96632aab
No related branches found
No related tags found
No related merge requests found
......@@ -2,6 +2,10 @@
target = "~/.config/nvim/"
type = "symbolic"
[emacs.files.emacs]
target = "~/.config/emacs/"
type = "symbolic"
[dunst.files.dunst]
target = "~/.config/dunst/"
type = "symbolic"
......
(setq user-emacs-directory "~/.dotfiles/emacs/")
(customize-set-value 'custom-theme-directory user-emacs-directory)
(setq warning-levels
:error)
(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)
(use-package no-littering
:straight t)
(setq auto-save-file-name-transforms
`((".*" ,(no-littering-expand-var-file-name "auto-save/") t)))
(use-package which-key
:straight t
:init (which-key-mode)
:diminish which-key-mode
:config
(setq which-key-idle-delay 0.1))
(use-package doom-themes
:straight t :init (load-theme 'doom-one t))
(use-package gruvbox-theme
:straight t)
;; UI
(setq inhibit-startup-message t)
(scroll-bar-mode -1)
(tool-bar-mode -1)
(tooltip-mode -1)
(menu-bar-mode -1)
(column-number-mode)
(dolist (mode '(term-mode-hook
shell-mode-hook
treemacs-mode-hook
eshell-mode-hook
org-agenda-mode))
(add-hook mode (lambda () (nlinum-mode 0))))
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
(set-face-attribute 'default nil :font "consolas" :height 115)
;; Set the fixed pitch face
(set-face-attribute 'fixed-pitch nil :font "consolas" :height 115)
(use-package general
:straight t
:init
(general-evil-setup)
:config
(general-create-definer tvd/leader-key
:keymaps 'override
:states '(normal visual)
:prefix "SPC")
(general-create-definer tvd/local-leader-key
:keymaps 'override
:states '(normal visual)
:prefix "SPC m")
(tvd/leader-key
"f" '(:ignore t :which-key "file prefix")
"ff" '(counsel-find-file :which-key "find file")
"b" '(:ignore t :which-key "buffer prefix")
"bb" '(counsel-switch-buffer :which-key "switch buffer")
;; "zm" '(zen-mode :which-key "zen mode")
"/" '(swiper :which-key "search")))
(use-package evil
:straight t
:init
(setq evil-want-integration t
evil-want-keybinding nil
evil-want-C-u-scroll t
evil-want-C-i-jump nil
evil-undo-system 'undo-redo)
:config
(evil-mode 1)
(define-key evil-insert-state-map (kbd "C-g") 'evil-normal-state)
(define-key evil-insert-state-map (kbd "C-h") 'evil-delete-backward-char-and-join)
(evil-global-set-key 'motion "j" 'evil-next-visual-line)
(evil-global-set-key 'motion "k" 'evil-previous-visual-line)
(evil-set-initial-state 'messages-buffer-mode 'normal))
(use-package evil-collection
:straight t
:after evil
:config
(evil-collection-init))
(use-package evil-colemak-basics
:straight t
:config
(global-evil-colemak-basics-mode))
(use-package all-the-icons
:straight t)
(use-package doom-modeline
:straight t
:init (doom-modeline-mode 1)
:custom ((doom-modeline-height 15)))
(use-package ivy
:straight t
:diminish
;; :bind
;; (("C-s" . swiper)
;; :map ivy-minibuffer-map
;; ("TAB" . ivy-alt-done)
;; ("C-l" . ivy-alt-done)
;; ("C-j" . ivy-next-line)
;; ("C-k" . ivy-previous-line)
;; :map ivy-switch-buffer-map
;; ("C-k" . ivy-previous-line)
;; ("C-l" . ivy-done)
;; ("C-d" . ivy-switch-buffer-kill)
;; :map ivy-reverse-i-search-map
;; ("C-k" . ivy-previous-line)
;; ("C-d" . ivy-reverse-i-search-kill))
:config
(ivy-mode 1))
(use-package counsel
:straight t
:bind
(("C-M-j" . 'counsel-switch-buffer)
:map minibuffer-local-map
("C-r" . 'counsel-minibuffer-history))
:config
(counsel-mode 1)
:custom
(counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only))
(use-package ivy-rich
:straight t
:init
(ivy-rich-mode 1))
(use-package ivy-prescient
:straight t
:after counsel
:config
(ivy-prescient-mode 1)
:custom
(ivy-prescient-enable-filtering nil))
(use-package helpful
:straight t
:custom
(counsel-describe-function-function #'helpful-callable)
(counsel-describe-variable-function #'helpful-variable)
:bind
([remap describe-function] . counsel-describe-function)
([remap describe-command] . helpful-command)
([remap describe-variable] . counsel-describe-variable)
([remap describe-key] . helpful-key))
(use-package projectile
:straight t
:diminish projectile-mode
:config (projectile-mode)
:custom ((projectile-completion-system 'ivy))
;; :bind-keymap
;; ()
:init
(when (file-directory-p "~/src")
(setq projectile-project-search-path '("~/src")))
(setq projectile-switch-project-action #'projectile-dired))
(use-package counsel-projectile
:straight t
:config (counsel-projectile-mode))
(use-package magit
:straight t
:custom
(magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1))
(use-package evil-nerd-commenter
:straight t
:bind ("M-/" . evilnc-comment-or-uncomment-lines))
(use-package rainbow-delimiters
:straight t
:hook (prog-mode . rainbow-delimiters-mode))
(use-package zen-mode
:straight (zen-mode :type git :host github :repo "aki237/zen-mode"))
(use-package lsp-mode
:straight t
:commands (lsp lsp-deferred)
;;:hook (lsp-mode . efs/lsp-mode-setup)
:init
(setq lsp-keymap-prefix "SPC m") ;; Or 'C-l', 's-l'
:config
(lsp-enable-which-key-integration t))
(use-package lsp-ui
:straight t
:hook (lsp-mode . lsp-ui-mode)
:custom
(lsp-ui-doc-position 'bottom))
(use-package lsp-ivy
:straight t)
(use-package company
:straight t
:after prog-mode
:hook (prog-mode . company-mode)
:bind
(:map lsp-mode-map
("<tab>" . company-indent-or-complete-common))
:custom
(company-minimum-prefix-length 1)
(company-idle-delay 0.0))
(use-package company-box
:straight t
:hook (company-mode . company-box-mode))
(defun tvd/org-mode-setup ()
(org-indent-mode)
(visual-line-mode 1))
(use-package org
:straight t
;; :pin org
:hook (org-mode . tvd/org-mode-setup)
:custom
(org-agenda-files '(
"~/org/planning/2021-week-02.org"
"~/org/planning/2021-week-01.org"
"~/org/planning/2020-week-53.org"
"~/org/planning/2020-week-52.org"
"~/org/planning/2020-week-51.org"
"~/org/planning/2020-week-50.org"
"~/org/planning/2020-week-49.org"
"~/org/planning/2020-week-48.org"
"~/house/vve/bestuur/org/main.org"
"~/org/personal.org"
"~/work/eolas/org/main.org"
"~/finances/org/main.org"
"~/work/copperspice/org/main.org"
"~/work/bux/org/main.org"
"~/org/main.org"
"~/org/agendas/google.org"))
:config
(setq org-ellipsis " ▾")
(setq org-agenda-start-with-log-mode t)
(setq org-log-done 'time)
(setq org-log-into-drawer t)
(setq org-todo-keywords
'((sequence "TODO(t)" "NEXT(n!)" "|" "DONE(d!)")
(sequence "WAITING(w@/!)" "MAYBE(m)" "SOMEDAY(s)" "|" "CANCELED(c@)")))
(setq org-clock-rounding-minutes 5)
(setq org-clock-persist t)
(setq org-hide-emphasis-markers t)
(setq org-clock-in-resume t)
(setq org-clock-persist-query-resume nil)
(setq org-clock-into-drawer t)
(setq org-clock-out-remove-zero-time-clocks t)
(setq org-clock-report-include-clocking-task t)
(setq org-log-into-drawer t)
(setq org-enforce-todo-dependencies t)
(setq org-enforce-todo-checkbox-dependencies t)
(setq alert-default-style 'libnotify)
(setq org-refile-use-outline-path 'full-file-path)
(setq org-outline-path-complete-in-steps nil)
(setq org-refile-allow-creating-parent-nodes 'confirm)
(setq org-habit-show-habits t)
(setq org-habit-following-days 7)
(setq org-habit-preceding-days 21)
(setq org-habit-show-habits-only-for-today t)
(setq org-startup-folded 'fold)
(setq org-agenda-skip-deadline-if-done t
org-agenda-skip-scheduled-if-done t)
(setq org-capture-templates
`(
("d" "Day planning" entry
(file+headline (lambda() (format-time-string "~/org/planning/%Y-week-%V.org")) "Day planning")
(file "~/org/templates/day-planning.org"))
("w" "Week planning" entry
(file (lambda() (format-time-string "~/org/planning/%Y-week-%V.org")))
(file "~/org/templates/week-planning.org"))
("t" "Task" entry
(file+headline "~/org/inbox.org" "Tasks")
"* TODO %? %^G"
)
))
(setq org-refile-targets
'((nil :maxlevel . 3)
(org-agenda-files :maxlevel . 3)))
;(setq org-clocktable-defaults '(:step day))
(setq org-pretty-entities t)
(setq org-time-clocksum-format (quote (:hours "%d" :require-hours t :minutes ":%02d" :require-minutes t)))
(setq org-duration-format (quote h:mm))
(setq org-roam-directory "~/org/roam/")
(setq deft-directory "~/org/roam")
(setq deft-extensions '("org"))
(setq org-noter-default-notes-file-names '("notes.org"))
(setq org-noter-notes-search-path '("~/org/roam/noter/" "~/org/roam"))
(setq org-roam-server-host "127.0.0.1"
org-roam-server-port 9090
org-roam-server-authenticate nil
org-roam-server-export-inline-images t
org-roam-server-serve-files nil
org-roam-server-served-file-extensions '("pdf")
org-roam-server-network-poll t
org-roam-server-network-arrows nil
org-roam-server-network-label-truncate t
org-roam-server-network-label-truncate-length 60
org-roam-server-network-label-wrap-length 20)
;; (setq-default auto-fill-function 'do-auto-fill)
(setq org-gcal-client-id "363943479757-e67275ue1tshm2ihnq4pbbp71i17u560.apps.googleusercontent.com"
org-gcal-client-secret "6AQ7_vtvqLTeL-ltDcwrIvao"
org-gcal-file-alist '(("tim.vandeurzen@gmail.com" . "~/org/agendas/google.org")))
(setq org-agenda-format-date (lambda (date) (concat "\n"
(make-string (window-width) 9472)
"\n"
(org-agenda-format-date-aligned date))))
)
(use-package org-super-agenda
:straight t
:config
(setq org-agenda-custom-commands
'(("z" "Custom Day"
((agenda "" ((org-agenda-span 'day)
(org-super-agenda-groups
'((:log t)
(:name "Schedule"
:time-grid t)
(:habit t)
(:name "Scheduled future"
:scheduled future)
(:name "Scheduled past"
:scheduled past)
(:name "Due today"
:deadline today)
(:name "Overdue"
:deadline past)
(:name "Due soon"
:deadline future)
(:name "Waiting"
:todo "WAITING"
:order 10)
))))))
("w" "Custom Week"
((agenda "" ((org-agenda-span 'week)
(org-super-agenda-groups
'((:log t)
(:name "Schedule"
:time-grid t)
(:name "Planning"
:scheduled t)
(:name "Due"
:deadline t)
(:name "Overdue"
:deadline past)
))))))
))
(org-super-agenda-mode))
(use-package org-bullets
:straight t
:after org
:hook (org-mode . org-bullets-mode))
(defun tvd/org-mode-visual-fill ()
(setq visual-fill-column-width 100
visual-fill-column-center-text t))
(use-package visual-fill-column
:straight t
:hook (org-mode . tvd/org-mode-visual-fill))
(defun tvd/nlinum-constant-width ()
(when global-nlinum-mode
(setq-local nlinum-format
(concat " %" (number-to-string
;; Guesstimate number of buffer lines.
(ceiling (log (max 1 (/ (buffer-size) 80)) 10)))
"d \u2502"))))
(use-package nlinum
:straight t
:hook (nlinum-mode-hook . tvd/nlinum-constant-width)
:init (global-nlinum-mode))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment