You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dotfiles/emacs

229 lines
6.4 KiB

2 years ago
(require 'package)
(add-to-list 'package-archives
'("melpa" . "http://melpa.org/packages/") t)
(package-initialize)
(setq-default cursor-type 'bar)
(global-hl-line-mode 1)
(toggle-scroll-bar -1)
(scroll-bar-mode -1)
(menu-bar-mode -1)
(tool-bar-mode -1)
(column-number-mode t)
(set-fringe-mode 5)
(setq doc-view-scale-internally nil)
(setq visible-bell t)
(setq vc-handled-backends nil)
(fset 'yes-or-no-p 'y-or-n-p)
(show-paren-mode t)
(setq show-paren-style 'expression)
(save-place-mode t)
(setq-default indent-tabs-mode nil
tab-width 4)
(setq custom-file (concat user-emacs-directory "custom.el"))
(load custom-file 'noerror)
(setq interprogram-cut-function nil)
(setq backup-directory-alist '(("" . "~/.emacs.d/backup")))
; lets you move windows with shift
(when (fboundp 'windmove-default-keybindings)
(windmove-default-keybindings))
(setq package-check-signature nil)
(defun ensure-package-installed (&rest packages)
"Assure every package is installed, ask for installation if it’s not.
Return a list of installed packages or nil for every skipped package."
(mapcar
(lambda (package)
;; (package-installed-p 'evil)
(if (package-installed-p package)
nil
(if (y-or-n-p (format "Package %s is missing. Install it? " package))
(package-install package)
package)))
packages))
(ensure-package-installed 'use-package 'ivy 'centaur-tabs 'company 'all-the-icons 'smex 'counsel 'swiper 'dashboard 'org-super-agenda 'origami 'verb 'org-roam'kaolin-themes)
(eval-when-compile
(require 'use-package))
(use-package all-the-icons)
(use-package company
:custom
(company-minimum-prefix-length 1)
(company-idle-delay 0.0)
(company-tooltip-align-annotations t)
:config
(global-company-mode)
)
(use-package ivy :ensure t
:diminish ivy-mode
:config
(ivy-mode 1)
(setq ivy-height 13)
(setq ivy-wrap t)
(setq ivy-use-virtual-buffers t)
(setq ivy-count-format "(%d/%d) "))
(use-package counsel
:ensure t
:bind*
(("M-x" . counsel-M-x)
("C-c d d" . counsel-descbinds)
("C-x C-f" . counsel-find-file)
("C-x r f" . counsel-recentf)
("C-c g g" . counsel-git)
("C-c g G" . counsel-git-grep)
("C-x l" . counsel-locate)
("C-c g s" . counsel-grep-or-swiper)
("C-M-y" . counsel-yank-pop)
("C-c C-r" . ivy-resume)
("C-c i m" . counsel-imenu)
("C-c i M" . ivy-imenu-anywhere)
("C-c d s" . describe-symbol)))
(use-package swiper
:bind*
(("C-s" . swiper)))
(setq search-default-mode #'char-fold-to-regexp)
(use-package centaur-tabs
:init
(setq centaur-tabs-enable-key-bindings t
centaur-tabs-set-icons t
centaur-tabs-set-modified-marker t
centaur-tabs-style "chamfer"
centaur-tabs-gray-out-icons 'buffer)
:config
(centaur-tabs-group-by-projectile-project)
(centaur-tabs-headline-match)
(centaur-tabs-mode 1))
(use-package dashboard
:after org
:init
(setq dashboard-set-footer nil
dashboard-org-agenda-categories '("Tasks" "appointments")
dashboard-center-content t
dashboard-set-heading-icons t
dashboard-set-file-icons t
initial-buffer-choice (lambda () (get-buffer "*dashboard*")))
:ensure t
:config (dashboard-setup-startup-hook))
(use-package org
:mode ("\\.org\\'" . org-mode)
:bind
(:map org-mode-map
("C-c C-r" . verb-command-map))
(:map global-map
("C-c a" . org-agenda)
("C-c l" . org-store-link))
:config
(setq org-replace-disputed-keys t
org-enforce-todo-dependencies t
org-enforce-todo-checkbox-dependencies t
org-log-done nil
org-clock-idle-time 10
org-startup-with-inline-images t
org-startup-folded t
org-pretty-entities t
org-hide-leading-stars t
org-hide-emphasis-markers t
org-fontify-whole-heading-line t
org-fontify-done-headline t
org-fontify-quote-and-verse-blocks t
org-startup-with-latex-preview t
org-src-tab-acts-natively t
org-src-fontify-natively t
org-confirm-elisp-link-function nil
org-display-custom-times t
org-time-stamp-custom-formats '("<%a %b %e %Y>" . "<%a %b %e %Y %H:%M>")
org-tag-alist '(("bug" . ?b) ("feature" . ?f) ("polish" . ?p) ("optimization" . ?o) ("devops" . ?d) ("reading" . ?r) ("writing" . ?w))
org-agenda-custom-commands
'(("p" "Projects" todo "TODO"
((org-agenda-files '("~/Documents/org-mode/projects.org"))
(org-agenda-sorting-strategy '(priority-down)))
))
org-agenda-skip-scheduled-if-done t
org-agenda-skip-deadline-if-done t
org-agenda-todo-ignore-deadlines t
org-agenda-todo-ignore-with-date t
org-agenda-todo-ignore-scheduled t
org-agenda-start-on-weekday nil
org-agenda-skip-additional-timestamps-same-entry nil
org-agenda-compact-blocks t
org-agenda-block-separator nil
org-agenda-start-day "+0d")
:hook
(org-agenda-mode . origami-mode)
)
(use-package org-alert
:ensure t
:config
(org-alert-enable)
(setq alert-default-style 'libnotify
org-alert-notify-cutoff 300
))
(setq org-agenda-files
(list
"~/Documents/org-mode/school.org"
"~/Documents/org-mode/personal.org"
"~/Documents/org-mode/tweaking.org"
"~/Documents/org-mode/projects.org"
)
)
(use-package org-super-agenda
:after org
:ensure t
:config
(setq org-super-agenda-groups
'(
(:auto-category t)
)
)
)
;;(use-package org-roam
;; :ensure t
;; :after org
;; :init
;; (setq org-roam-v2-ack t)
;; :bind* (("C-c n l" . org-roam-buffer-toggle)
;; ("C-c n f" . org-roam-node-find)
;; ("C-c n c" . org-roam-dailies-capture-today))
;; :bind (:map org-mode-map
;; ("C-c n i" . org-roam-node-insert))
;; :custom
;; (org-roam-directory "~/Documents/slipbox")
;; (org-roam-capture-templates
;; '(("d" "default" plain
;; "%?"
;; :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n")
;; :unnarrowed t)
;; ("e" "encrypted" plain "%?"
;; :target (file+head "${slug}.org.gpg"
;; "#+title: ${title}\n")
;; :unnarrowed t)
;; )
;; )
;; (org-roam-completion-everywhere t)
;; (org-roam-completion-system 'default)
;; (org-roam-dailies-directory "daily/")
;; :config
;; (use-package org-roam-dailies)
;; (org-roam-setup)
;; (org-roam-db-autosync-mode))
(add-hook 'org-mode-hook 'flyspell-mode)