Config
Abstract
My Emacs config
dashboard
(use-package dashboard :ensure t :config (dashboard-setup-startup-hook) ;; (setq dashboard-startup-banner "~/Pictures/pakeezah-album.jpeg") (setq dashboard-items '((recents . 5) (bookmarks . 5) (projects . 5) (agenda . 7) (registers . 5))) (setq dashboard-banner-logo-title "hi swamiii <3")) (setq dashboard-week-agenda t)
sudo edit
(use-package sudo-edit :bind ("s-e" . sudo-edit))
Org
basic configs
(setq org-ellipsis " ") (setq org-src-fontify-natively t) (setq org-src-tab-acts-natively t) (setq org-confirm-babel-evaluate nil) (setq org-export-with-smart-quotes t) (setq org-src-window-setup 'current-window) (add-hook 'org-mode-hook 'org-indent-mode)
Org bullets
(use-package org-bullets :ensure t :config (add-hook 'org-mode-hook(lambda () (org-bullets-mode))))
faces for heading level
(dolist (face '((org-level-1 . 1.2) (org-level-2 . 1.1) (org-level-3 . 1.05) (org-level-4 . 1.0) (org-level-5 . 1.1) (org-level-6 . 1.1) (org-level-7 . 1.1) (org-level-8 . 1.1))) (set-face-attribute (car face) nil :font "Monospace" :weight 'regular :height (cdr face)))
Org code block activate by "<-s-tab"
(require 'org-tempo)
Org roam
setup
(use-package org-roam :ensure t :init (setq org-roam-v2-ack t) :custom (org-roam-directory "~/sync/docs/orgnotes/") (org-roam-completion-everywhere t) (org-roam-capture-templates '(("d" "default" plain "%?" :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+date: %U\n") :unnarrowed t) ("n" "NEET" plain "* Characteristics\n\n- Family: %?\n- Inspired by: \n\n* Reference:\n\n" :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n") :unnarrowed t) ("b" "book notes" plain (file "~/sync/docs/orgnotes/Templates/BookNoteTemplate.org") :if-new (file+head "%<%Y%m%d%h%m%s>-${slug}.org" "#+title: ${title}\n") :unnarrowed t) ("p" "project" plain "* Goals\n\n%?\n\n* Tasks\n\n** TODO Add initial tasks\n\n* Dates\n\n" :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+category: ${title}\n#+filetags: Project") :unnarrowed t) ;; add templates here )) :bind (("C-c n l" . org-roam-buffer-toggle) ("C-c n f" . org-roam-node-find) ("C-c n i" . org-roam-node-insert) :map org-mode-map ("C-M-i" . completion-at-point)) :config (org-roam-setup))
dailies
(use-package org-roam :ensure t :init (setq org-roam-v2-ack t) :custom (org-roam-directory "~/sync/docs/orgnotes") (org-roam-completion-everywhere t) (org-roam-dailies-capture-templates '(("d" "default" entry "* %<%I:%M %p>: %?" :if-new (file+head "%<%Y-%m-%d>.org" "#+title: %<%Y-%m-%d>\n")))) :bind (("C-c n l" . org-roam-buffer-toggle) ("C-c n f" . org-roam-node-find) ("C-c n i" . org-roam-node-insert) :map org-mode-map ("C-M-i" . completion-at-point) :map org-roam-dailies-map ("Y" . org-roam-dailies-capture-yesterday) ("T" . org-roam-dailies-capture-tomorrow)) :bind-keymap ("C-c n d" . org-roam-dailies-map) :config (require 'org-roam-dailies) (org-roam-db-autosync-mode))
fast node insertion
(global-set-key (kbd "C-c n I") 'org-roam-node-insert-immediate)
Org agenda
Basic settings
cursor posn
(setq column-number-mode t) (setq display-line-numbers-type 'relative) (global-display-line-numbers-mode 1)
Scrolling
(setq scroll-conservatively 100)
subword
(global-subword-mode 1)
clock
(setq display-time-24hr-format t) (display-time-mode 2) (setq display-time-format "%H:%M - %d %B %Y")
electric
(setq electric-pair-pairs '(
(?\{ . ?\})
(?\( . ?\))
(?\[ . ?\])
(?\" . ?\")
))
(electric-pair-mode t)
GUI toggles
GNU Emacs front page, tool bar, menu bar, scroll bar
(setq inhibit-startup-message t)
(tool-bar-mode -1)
(menu-bar-mode -1)
(scroll-bar-mode -1)
Remove bell
(setq ring-bell-function (lambda () (invert-face 'mode-line) (run-with-timer 0.1 nil #'invert-face 'mode-line)))
Key bindings
(when window-system (global-prettify-symbols-mode t))
export org into file formats
(global-set-key (kbd "C-c p") 'org-export-dispatch)
y-or-n
(defalias 'yes-or-no-p 'y-or-n-p)
Decors
(global-hl-line-mode t)
Async
(use-package async :ensure t :init (dired-async-mode 1))
UTF-8 encoding
(setq locale-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
screenshots
will configure later
convenient settings
rainbow
(use-package rainbow-mode :ensure t :init (add-hook 'prog-mode-hook 'rainbow-mode))
macros
line numbering
(global-display-line-numbers-mode)
buffers
kill all buffers
(defun close-all-buffers () (interactive) (mapc 'kill-buffer (buffer-list))) (global-set-key (kbd "C-M-s-k") 'close-all-buffers)
kill current buffer
(defun kill-current-buffer () "Kills the current buffer." (interactive) (kill-buffer (current-buffer))) (global-set-key (kbd "C-x k") 'kill-current-buffer)
enable ibuffer
(global-set-key (kbd "C-x b") 'ibuffer)
expert mode
(setq ibuffer-expert t)
Text manipulation
mark multiple
(use-package mark-multiple :ensure t :bind ("C-c q" . 'mark-next-like-this))
copy line
(defun daedreth/copy-whole-line () "Copies a line without regard for cursor position." (interactive) (save-excursion (kill-new (buffer-substring (point-at-bol) (point-at-eol))))) (global-set-key (kbd "C-c l c") 'daedreth/copy-whole-line)
kill line
(global-set-key (kbd "C-c l k") 'kill-whole-line)
copy word
(defun daedreth/copy-whole-word () (interactive) (save-excursion (forward-char 1) (backward-word) (kill-word 1) (yank))) (global-set-key (kbd "C-c w c") 'daedreth/copy-whole-word)
kill word
(defun daedreth/kill-inner-word () "Kills the entire word your cursor is in. Equivalent to 'ciw' in vim." (interactive) (forward-char 1) (backward-word) (kill-word 1)) (global-set-key (kbd "C-c w k") 'daedreth/kill-inner-word)
modeline
spaceline
(use-package spaceline :ensure t :config (require 'spaceline-config) (setq spaceline-buffer-encoding-abbrev-p nil) (setq spaceline-line-column-p nil) (setq spaceline-line-p nil) (setq powerline-default-separator (quote arrow)) (spaceline-spacemacs-theme))
diminish
(use-package diminish :ensure t :init (diminish 'which-key-mode) (diminish 'beacon-mode) (diminish 'rainbow-delimiters-mode) (diminish 'rainbow-mode))
swiper
(use-package swiper :ensure t :bind ("C-s" . 'swiper))
yasnippet
(use-package yasnippet :ensure t :config (use-package yasnippet-snippets :ensure t) (yas-reload-all))
kill ring
popup
(use-package popup-kill-ring :ensure t :bind ("M-y" . popup-kill-ring))
maxm entries
(setq kill-ring-max 100)
window splitting function
(defun split-and-follow-horizontally () (interactive) (split-window-below) (balance-windows) (other-window 1)) (global-set-key (kbd "C-x 2") 'split-and-follow-horizontally) (defun split-and-follow-vertically () (interactive) (split-window-right) (balance-windows) (other-window 1)) (global-set-key (kbd "C-x 3") 'split-and-follow-vertically)
auto completion
(use-package company :ensure t :init (add-hook 'after-init-hook 'global-company-mode)) (with-eval-after-load 'company (define-key company-active-map (kbd "M-n") nil) (define-key company-active-map (kbd "M-p") nil) (define-key company-active-map (kbd "C-n") #'company-select-next) (define-key company-active-map (kbd "C-p") #'company-select-previous) (define-key company-active-map (kbd "SPC") #'company-abort))
IDO
enable ido mode
(setq ido-enable-flex-matching nil) (setq ido-create-new-buffer 'always) (setq ido-everywhere t) (ido-mode 1)
ido vertical
(use-package ido-vertical-mode :ensure t :init (ido-vertical-mode 1)) (setq ido-vertical-define-keys 'C-n-and-C-p-only)
SMEX
(use-package smex :ensure t :init (smex-initialize) :bind ("M-x" . smex))
switch buffer
(global-set-key (kbd "C-x C-b") 'ido-switch-buffer)
which-key
(use-package which-key :ensure t :init (which-key-mode))
avy
(use-package avy :ensure t :bind ("M-s" . avy-goto-char))
config edit/reload
edit
(defun config-visit () (interactive) (find-file "~/.emacs.d/config.org")) (global-set-key (kbd "C-c e") 'config-visit)
reload
(defun config-reload () (interactive) (org-babel-load-file (expand-file-name "~/.emacs.d/config.org"))) (global-set-key (kbd "C-c r") 'config-reload)
switch window
(use-package switch-window :ensure t :config (setq switch-window-input-style 'minibuffer) (setq switch-window-increae 4) (setq switch-window-threshold 2) (setq switch-window-shortcut-style 'qwerty) (setq switch-window-qwerty-shortcuts '("a" "s" "d" "f" "j" "k" "l")) :bind ([remap other-window] . switch-window))
symon
media
install
httpd
(use-package simple-httpd :ensure t)