Skip to content

Zomboy01/emacs-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zomboy Emacs

./img/Emacs-Screen.png

Table Of Contents

Setting

Auto Pairs

(setq electric-pair-pairs '(
                           (?\{ . ?\})
                           (?\( . ?\))
                           (?\[ . ?\])
                           (?\" . ?\")
                           ))
(electric-pair-mode t)

System Load

(setq display-time-default-load-average nil)

Disable Bell

(setq ring-bell-function 'ignore)

Diminish Mode

(use-package diminish
  :ensure t
  :init
  (diminish 'which-key-mode)
  (diminish 'linum-relative-mode)
  (diminish 'hungry-delete-mode)
  (diminish 'visual-line-mode)
  (diminish 'subword-mode)
  (diminish 'beacon-mode)
  (diminish 'irony-mode)
  (diminish 'page-break-lines-mode)
  (diminish 'auto-revert-mode)
  (diminish 'rainbow-delimiters-mode)
  (diminish 'rainbow-mode)
  (diminish 'yas-minor-mode)
  (diminish 'flycheck-mode)
  (diminish 'helm-mode))

Keep Files Clean

(setq backup-directory-alist `(("." . ,(expand-file-name "tmp/backups/" user-emacs-directory))))

Make Scroll Nicer

(setq scroll-conservatively 100)

Set 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)

Kill Buffer Quickly

(setq kill-buffer-query-functions (delq 'process-kill-buffer-query-function kill-buffer-query-functions))

Change yes-or-no into y-or-n

(defalias 'yes-or-no-p 'y-or-n-p)

Uses Space Instead Of Tabs For Indentation

(setq-default indent-tabs-mode nil)

Org Mode

Setting

(setq org-hide-emphasis-markers t)
(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)
(setq org-startup-folded t)
(setq org-startup-indented t)
(setq org-startup-with-inline-images t)
(add-hook 'org-mode-hook 'org-indent-mode)

Evil Org

(use-package evil-org
  :ensure t
  :after (evil org)
  :config
  (add-hook 'org-mode-hook 'evil-org-mode)
  (add-hook 'evil-org-mode-hook
            (lambda ()
              (evil-org-set-key-theme '(navigation insert textobjects additional calendar))))
  (require 'evil-org-agenda)
  (evil-org-agenda-set-keys))

Org Roam

(use-package org-roam
  :ensure t
  :init
  (setq org-roam-v2-ack t)
  :custom
  (org-roam-directory "~/RoamNotes")
  (org-roam-completion-everywhere t)
  :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)
  :config
  (org-roam-setup))

Superstar

(use-package org-superstar 
  :ensure t
  :init
  (add-hook 'org-mode-hook (lambda () (org-superstar-mode 1)))
  (dolist (face '((org-level-1 . 1.5)
                  (org-level-2 . 1.3)
                  (org-level-3 . 1.2)
                  (org-level-4 . 1.2)
                  (org-level-5 . 1.2)
                  (org-level-6 . 1.2)
                  (org-level-7 . 1.2)
                  (org-level-8 . 1.2)))
    (set-face-attribute (car face) nil :font "FiraCode Nerd Font" :weight 'medium :height (cdr face))))

Packages

Appearence

Theme

(use-package doom-themes
  :ensure t)
(load-theme 'doom-badger t)

Icons

(use-package all-the-icons-dired
  :ensure t
  :init (add-hook 'dired-mode-hook 'all-the-icons-dired-mode))

(use-package all-the-icons
      :ensure t)

Layout

(scroll-bar-mode -1)        
(tool-bar-mode -1)           
(tooltip-mode -1)           
(fringe-mode -1)         
(menu-bar-mode -1)
(visual-line-mode 1)

Beacon Mode

(blink-cursor-mode -1)

(use-package beacon ;; This applies a beacon effect to the highlighted line
 :ensure t
   :config
   (beacon-mode 1))

Disable Relative Mode In Some Mode

(dolist (mode '(org-mode-hook
                term-mode-hook
                shell-mode-hook
                        treemacs-mode-hook
                eshell-mode-hook))
  (add-hook mode (lambda () (display-line-numbers-mode 0))))

Line Numbers Type

(setq display-line-numbers-type 'relative)

Remove Lame Startup Screen

(setq inhibit-startup-message t)

Dashboard

(use-package dashboard
  :ensure t
  :init
  (setq dashboard-show-shortcuts nil)
  (setq dashboard-set-file-icons t)
  (setq dashboard-banner-logo-title "Welcome To A Better Text Editor!")
  (setq dashboard-startup-banner "~/.emacs.d/img/icon.png")  
  (setq initial-buffer-choice (lambda () (get-buffer "*dashboard*")))
  (setq dashboard-items '((recents  . 5)
                          (bookmarks . 5)))
  (dashboard-setup-startup-hook))

Modeline

(use-package doom-modeline
  :ensure t
  :init
  (setq doom-modeline-buffer-file-name-style 'truncate-upto-project)
  (setq doom-modeline-height 33)
  (setq doom-modeline-bar-width 7) 
  (setq doom-modeline-buffer-encoding nil)
  (line-number-mode -1)
  (doom-modeline-mode 1))

Modeline Accessories

Display Time & Icon
(setq display-time-format " %b %d  %l:%M  "
      display-time-default-load-average nil)
      (display-time-mode 1)
Fancy Battery
(use-package fancy-battery
  :ensure t
  :config
  (setq fancy-battery-show-percentage t)
  (setq battery-update-interval 15)
  (fancy-battery-mode))

Font

(add-to-list 'default-frame-alist '(font . "firacode nerd font-13"))

Hightlight Matching Braces

(use-package paren
  :ensure nil
  :init
  (set-face-attribute 'show-paren-match-expression nil :background "#363e4a")
  (show-paren-mode 1))

Gmch

  (use-package gcmh
    :ensure t
    :diminish gcmh-mode
    :config
    (setq gcmh-idle-delay 5
          gcmh-high-cons-threshold (* 16 1024 1024))  ; 16mb
    (gcmh-mode 1))

  (add-hook 'emacs-startup-hook
            (lambda ()
		(setq gc-cons-percentage 0.1))) ;; Default value for `gc-cons-percentage'

  (add-hook 'emacs-startup-hook
            (lambda ()
		(message "Emacs ready in %s with %d garbage collection s."
			 (format "%.2f seconds"
				 (float-time
				  (time-subtract after-init-time before-init-time)))
			 gcs-done)))

Magit

(use-package magit
:ensure t)

Rainbow

(use-package rainbow-mode
  :ensure t
  :init (add-hook 'prog-mode-hook 'rainbow-mode))

Rainbow Delimeter

(use-package rainbow-delimiters
  :ensure t
  :init
  (rainbow-delimiters-mode 1))

Treemacs

(use-package treemacs
  :ensure t
  :bind (("M-o" . treemacs)
         ("M-t" . treemacs-select-window))
  :config
  (setq treemacs-is-never-other-window t)
  (setq treemacs-show-hidden-files t))

SlideShow

(use-package ox-reveal
  :ensure t)
(setq org-reveal-root "https://cdn.jsdelivr.net/npm/reveal.js")
(setq org-reveal-mathjax t)

(use-package htmlize
  :ensure t)

Emacs Completions

Company Mode

(use-package company
  :ensure t
  :config
  (setq company-idle-delay 1)
  (setq company-minimum-prefix-length 3)
  :init
  (company-mode 1))

(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))

Vertico

(use-package vertico
  :ensure t
  :init
  (vertico-mode))

Orderless

(use-package orderless
  :ensure t
  :custom (completion-styles '(orderless)))

Consult

(use-package consult
  :ensure t
  :bind
  ("M-b" . 'consult-bookmark)
  ("C-s" . 'consult-line)
  ("M-y" . 'consult-yank-pop))

Marginalia

(use-package marginalia
  :ensure t)
(marginalia-mode)

Writeroom Mode

(use-package writeroom-mode
  :ensure t
  :config
  (setq writeroom-maximize-window nil
        writeroom-header-line "                                                              Writer Mode"  
        writeroom-mode-line nil
        writeroom-global-effects nil) 
  (setq writeroom-width 80))

Sudo Edit

(use-package sudo-edit
  :ensure t)

YASnippet

(use-package yasnippet
  :ensure t
  :config
  (setq yas-snippet-dirs '("~/.emacs.d/etc/yasnippet/snippets"))
  (yas-global-mode 1))

Which key

(use-package which-key
  :config 
    (setq which-key-idle-delay 0.3)
    (setq which-key-popup-type 'frame)
    (which-key-mode)
    (which-key-setup-minibuffer)
    (set-face-attribute 'which-key-local-map-description-face nil 
       :weight 'bold)
    :ensure t)

Evil Mode

(use-package evil
  :ensure t  
  :init
  (setq evil-want-keybinding t)
  (setq evil-want-fine-undo t)
  (setq evil-want-keybinding nil)
  :config
  (evil-set-initial-state 'dashboard-mode 'motion)
  (evil-set-initial-state 'debugger-mode 'motion)
  (evil-set-initial-state 'pdf-view-mode 'motion)
  (evil-mode 1))

(use-package evil-collection
  :ensure t
  :after evil
  :init
  (evil-collection-init))

Terminal

(use-package vterm
  :ensure t
  :init
  (global-set-key (kbd "<S-return>") 'vterm))

General Keybinding

(use-package general
  :ensure t
  :bind ("C-q" . 'kill-current-buffer)
  :init
  (general-evil-setup t))

Keybinding

Reload Config

(defun config-reload ()
  (interactive)
  (org-babel-load-file (expand-file-name "~/.emacs.d/init.el")))
(global-set-key (kbd "C-c r") 'config-reload)

Zoom In/Out

(global-set-key (kbd "C-=") 'text-scale-increase)
(global-set-key (kbd "C--") 'text-scale-decrease)

Master Keybinding

Prefix

(general-define-key
 :states '(normal motion visual)
 :keymaps 'override
 :prefix "SPC"

Buffers

"b"  '(nil :which-key "buffer")
"bi" '(consult-buffer :which-key "switch buffers")
"bs" '(bookmark-set :which-key "set bookmark")
"br" '(bookmark-delete :which-key "delete bookmark") 
"br" '(revert-buffer :which-key "revert buffer") 

Files

 "f"  '(nil :which-key "files")
"."  '(find-file :which-key "files")
"fr" '(counsel-recentf :which-key "recent files")
"fR" '(rename-file :which-key "rename file")
"fu" '(sudo-edit-find-file :which-key "sudo find file")
"fs" '(save-buffer :which-key "save buffer")

Toggles

"t" '(nil :which-key "toggles")
"tb" '(display-battery-mode :which-key "toggle battery")
"tl" '(display-line-numbers-mode :which-key "display line number")
"tt" '(consult-theme :which-key "load theme")
"tw" '(writeroom-mode :which-key "writeroom-mode")
"tR" '(read-only-mode :which-key "read only mode")

Windows

"w" '(nil :which-key "window")
"wN" '(make-frame :which-key "make frame")
"wd" '(delete-other-windows :which-key "delete other window")
"wc" '(evil-window-delete :which-key "delete window")
"w-" '(evil-window-split :which-key "split below")
"w/" '(evil-window-vsplit :which-key "split right")
"wl" '(evil-window-right :which-key "evil-window-right")
"wh" '(evil-window-left :which-key "evil-window-left")
"wj" '(evil-window-down :which-key "evil-window-down")
"wk" '(evil-window-up :which-key "evil-window-up"))

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published