Config

Swami Vivekanand
April 2026

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)

Emacs 29.3 (Org mode 9.6.15)