fix emacs config
This commit is contained in:
+272
-271
@@ -367,63 +367,64 @@ Defining the various fonts emacs will use
|
|||||||
;; are not right unless I also add this method of setting the default font.
|
;; are not right unless I also add this method of setting the default font.
|
||||||
(add-to-list 'default-frame-alist '(font . "FiraCodeNerdFontMono-15"))
|
(add-to-list 'default-frame-alist '(font . "FiraCodeNerdFontMono-15"))
|
||||||
|
|
||||||
;; UNCOMMENT THE FOLLOWING LINE IF LINE SPACING NEEDS ADJUSTING.
|
;; uncomment the following line if line spacing needs adjusting.
|
||||||
;; (SETQ-DEFAULT LINE-SPACING 0.12)
|
;; (setq-default line-spacing 0.12)
|
||||||
|
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
** ZOOM IN/OUT
|
** Zoom In/Out
|
||||||
ENABLE ZOOM IN/OUT WITH C-=/- AND ALSO FOR C-SCRL-UP/DOWN
|
Enable zoom in/out with c-=/- and also for c-scrl-up/down
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(GLOBAL-SET-KEY (KBD "C-=") 'TEXT-SCALE-INCREASE)
|
(global-set-key (kbd "C-=") 'text-scale-increase)
|
||||||
(GLOBAL-SET-KEY (KBD "C--") 'TEXT-SCALE-DECREASE)
|
(global-set-key (kbd "C--") 'text-scale-decrease)
|
||||||
(GLOBAL-SET-KEY (KBD "<C-WHEEL-UP>") 'TEXT-SCALE-INCREASE)
|
(global-set-key (kbd "<C-wheel-up>") 'text-scale-increase)
|
||||||
(GLOBAL-SET-KEY (KBD "<C-WHEEL-DOWN>") 'TEXT-SCALE-DECREASE)
|
(global-set-key (kbd "<c-wheel-down>") 'text-scale-decrease)
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* GNUPLOT
|
* GNUPLOT
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(USE-PACKAGE GNUPLOT-MODE)
|
(use-package gnuplot-mode)
|
||||||
;; AUTOMATICALLY OPEN FILES ENDING WITH .GP OR .GNUPLOT IN GNUPLOT MODE
|
;; automatically open files ending with .gp or .gnuplot in gnuplot mode
|
||||||
;; (SETQ AUTO-MODE-ALIST
|
;; (setq auto-mode-alist
|
||||||
;; (APPEND '(("\\.\\(GP\\|GNUPLOT\\)$" . GNUPLOT-MODE)) AUTO-MODE-ALIST)))
|
;; (append '(("\\.\\(gp\\|gnuplot\\)$" . gnuplot-mode)) auto-mode-alist)))
|
||||||
|
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* IMAGE DIR-ED
|
* IMAGE DIR-ED
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(USE-PACKAGE IMAGE-DIRED+)
|
(use-package image-dired+)
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* INDENTING/TABS
|
* INDENTING/TABS
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(SETQ-DEFAULT INDENT-TABS-MODE NIL)
|
(setq-default indent-tabs-mode nil)
|
||||||
(SETQ-DEFAULT TAB-WIDTH 2)
|
(setq-default tab-width 2)
|
||||||
(SETQ-DEFAULT INDENT-LINE-FUNCTION 'INSERT-TAB)
|
(setq-default indent-line-function 'insert-tab)
|
||||||
(SETQ-DEFAULT C-DEFAULT-STYLE "LINUX"
|
(setq-default c-default-style "linux"
|
||||||
C-BASIC-OFFSET 2)
|
c-basic-offset 2)
|
||||||
;; IF INDENT-TABS-MODE IS OFF, UNTABIFY BEFORE SAVING
|
;; if indent-tabs-mode is off, untabify before saving
|
||||||
;;(ADD-HOOK 'WRITE-FILE-HOOKS
|
;;(add-hook 'write-file-hooks
|
||||||
;; (LAMBDA () (IF (NOT INDENT-TABS-MODE)
|
;; (lambda () (if (not indent-tabs-mode)
|
||||||
;; (UNTABIFY (POINT-MIN) (POINT-MAX)))))
|
;; (untabify (point-min) (point-max)))))
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* LIGATURES
|
* LIGATURES
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
;; THIS ASSUMES YOU'VE INSTALLED THE PACKAGE VIA MELPA.
|
;; this assumes you've installed the package via melpa.
|
||||||
(USE-PACKAGE LIGATURE
|
(use-package ligature
|
||||||
:CONFIG
|
:config
|
||||||
;; ENABLE THE "WWW" LIGATURE IN EVERY POSSIBLE MAJOR MODE
|
;; enable the "www" ligature in every possible major mode
|
||||||
(LIGATURE-SET-LIGATURES 'T '("WWW"))
|
(ligature-set-ligatures 't '("www"))
|
||||||
;; ENABLE TRADITIONAL LIGATURE SUPPORT IN EWW-MODE, IF THE
|
;; enable traditional ligature support in eww-mode, if the
|
||||||
;; `VARIABLE-PITCH' FACE SUPPORTS IT
|
;; `variable-pitch' face supports it
|
||||||
(LIGATURE-SET-LIGATURES 'EWW-MODE '("FF" "FI" "FFI"))
|
(ligature-set-ligatures 'eww-mode '("ff" "fi" "ffi"))
|
||||||
;; ENABLE ALL CASCADIA CODE LIGATURES IN PROGRAMMING MODES
|
;; enable all cascadia code ligatures in programming modes
|
||||||
(LIGATURE-SET-LIGATURES 'PROG-MODE '("|||>" "<|||" "<==>" "<!--" "####" "~~>" "***" "||=" "||>"
|
(ligature-set-ligatures 'prog-mode '("|||>" "<|||" "<==>" "<!--" "####" "~~>" "***" "||=" "||>"
|
||||||
":::" "::=" "=:=" "===" "==>" "=!=" "=>>" "=<<" "=/=" "!=="
|
":::" "::=" "=:=" "===" "==>" "=!=" "=>>" "=<<" "=/=" "!=="
|
||||||
"!!." ">=>" ">>=" ">>>" ">>-" ">->" "->>" "-->" "---" "-<<"
|
"!!." ">=>" ">>=" ">>>" ">>-" ">->" "->>" "-->" "---" "-<<"
|
||||||
"<~~" "<~>" "<*>" "<||" "<|>" "<$>" "<==" "<=>" "<=<" "<->"
|
"<~~" "<~>" "<*>" "<||" "<|>" "<$>" "<==" "<=>" "<=<" "<->"
|
||||||
"<--" "<-<" "<<=" "<<-" "<<<" "<+>" "</>" "###" "#_(" "..<"
|
"<--" "<-<" "<<=" "<<-" "<<<" "<+>" "</>" "###" "#_(" "..<"
|
||||||
"..." "+++" "/==" "///" "_|_" "WWW" "&&" "^=" "~~" "~@" "~="
|
"..." "+++" "/==" "///" "_|_" "www" "&&" "^=" "~~" "~@" "~="
|
||||||
"~>" "~-" "**" "*>" "*/" "||" "|}" "|]" "|=" "|>" "|-" "{|"
|
"~>" "~-" "**" "*>" "*/" "||" "|}" "|]" "|=" "|>" "|-" "{|"
|
||||||
"[|" "]#" "::" ":=" ":>" ":<" "$>" "==" "=>" "!=" "!!" ">:"
|
"[|" "]#" "::" ":=" ":>" ":<" "$>" "==" "=>" "!=" "!!" ">:"
|
||||||
">=" ">>" ">-" "-~" "-|" "->" "--" "-<" "<~" "<*" "<|" "<:"
|
">=" ">>" ">-" "-~" "-|" "->" "--" "-<" "<~" "<*" "<|" "<:"
|
||||||
@@ -431,300 +432,300 @@ ENABLE ZOOM IN/OUT WITH C-=/- AND ALSO FOR C-SCRL-UP/DOWN
|
|||||||
"##" "#(" "#?" "#_" "%%" ".=" ".-" ".." ".?" "+>" "++" "?:"
|
"##" "#(" "#?" "#_" "%%" ".=" ".-" ".." ".?" "+>" "++" "?:"
|
||||||
"?=" "?." "??" ";;" "/*" "/=" "/>" "//" "__" "~~" "(*" "*)"
|
"?=" "?." "??" ";;" "/*" "/=" "/>" "//" "__" "~~" "(*" "*)"
|
||||||
"\\\\" "://"))
|
"\\\\" "://"))
|
||||||
;; ENABLES LIGATURE CHECKS GLOBALLY IN ALL BUFFERS. YOU CAN ALSO DO IT
|
;; enables ligature checks globally in all buffers. you can also do it
|
||||||
;; PER MODE WITH `LIGATURE-MODE'.
|
;; per mode with `ligature-mode'.
|
||||||
(GLOBAL-LIGATURE-MODE T))
|
(global-ligature-mode t))
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* MARKDOWN MODE
|
* MARKDOWN MODE
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(USE-PACKAGE MARKDOWN-MODE
|
(use-package markdown-mode
|
||||||
:ENSURE T
|
:ensure t
|
||||||
:MODE ("README\\.MD\\'" . GFM-MODE)
|
:mode ("readme\\.md\\'" . gfm-mode)
|
||||||
:INIT (SETQ MARKDOWN-COMMAND "MULTIMARKDOWN"))
|
:init (setq markdown-command "multimarkdown"))
|
||||||
|
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* ORG DOWNLOAD
|
* ORG DOWNLOAD
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(USE-PACKAGE ORG-DOWNLOAD
|
(use-package org-download
|
||||||
:AFTER ORG
|
:after org
|
||||||
:DEFER NIL
|
:defer nil
|
||||||
:CUSTOM
|
:custom
|
||||||
(ORG-DOWNLOAD-METHOD 'DIRECTORY)
|
(org-download-method 'directory)
|
||||||
(ORG-DOWNLOAD-IMAGE-DIR "~/EMACS/IMAGES/")
|
(org-download-image-dir "~/emacs/images/")
|
||||||
(ORG-DOWNLOAD-HEADING-LVL 0)
|
(org-download-heading-lvl 0)
|
||||||
(ORG-DOWNLOAD-TIMESTAMP "ORG_%Y%M%D-%H%M%S_")
|
(org-download-timestamp "org_%y%m%d-%h%m%s_")
|
||||||
(ORG-IMAGE-ACTUAL-WIDTH 400)
|
(org-image-actual-width 400)
|
||||||
(ORG-DOWNLOAD-SCREENSHOT-METHOD "WAYLAND_DISPLAY=WAYLAND-1 WL-PASTE -T IMAGE/PNG > '%S'.PNG")
|
(org-download-screenshot-method "wayland_display=wayland-1 wl-paste -t image/png > '%s'.png")
|
||||||
:BIND
|
:bind
|
||||||
("C-M-Y" . ORG-DOWNLOAD-SCREENSHOT)
|
("C-M-y" . org-download-screenshot)
|
||||||
:CONFIG
|
:config
|
||||||
(REQUIRE 'ORG-DOWNLOAD))
|
(require 'org-download))
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* PULSE
|
* PULSE
|
||||||
PULSE HIGHLIGHT A LINE ON CERTAIN ACTIONS
|
Pulse highlight a line on certain actions
|
||||||
|
|
||||||
# #+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
# (USE-PACKAGE PULSE
|
(use-package pulse
|
||||||
# :ENSURE NIL
|
:ensure nil
|
||||||
# :DEFER
|
:defer
|
||||||
# :INIT
|
:init
|
||||||
# (DEFUN PULSE-LINE (&REST _)
|
(defun pulse-line (&rest _)
|
||||||
# "PULSE THE CURRENT LINE"
|
"pulse the current line"
|
||||||
# (PULSE-MOMENTARY-HIGHLIGHT-ONE-LINE (POINT)))
|
(pulse-momentary-highlight-one-line (point)))
|
||||||
|
|
||||||
# (DOLIST (COMMAND '(SCROLL-UP-COMMAND
|
(dolist (command '(scroll-up-command
|
||||||
# SCROLL-DOWN-COMMAND
|
scroll-down-command
|
||||||
# WINDMOVE-LEFT
|
windmove-left
|
||||||
# WINDMOVE-RIGHT
|
windmove-right
|
||||||
# WINDMOVE-UP
|
windmove-up
|
||||||
# WINDMOVE-DOWN
|
windmove-down
|
||||||
# MOVE-TO-WINDOW-LINE-TOP-BOTTOM
|
move-to-window-line-top-bottom
|
||||||
# RECENTER-TOP-BOTTOM
|
recenter-top-bottom
|
||||||
# OTHER-WINDOW))
|
other-window))
|
||||||
# (ADVICE-ADD COMMAND :AFTER #'PULSE-LINE)))
|
(advice-add command :after #'pulse-line)))
|
||||||
# #+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* PDF TOOLS
|
* PDF TOOLS
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(USE-PACKAGE PDF-TOOLS)
|
(use-package pdf-tools)
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
* PROJECTILE
|
* PROJECTILE
|
||||||
[[HTTPS://GITHUB.COM/BBATSOV/PROJECTILE][PROJECTILE]] IS A PROJECT INTERACTION LIBRARY FOR EMACS.
|
[[HTTPS://GITHUB.COM/BBATSOV/PROJECTILE][Projectile]] is a project interaction library for emacs.
|
||||||
|
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(USE-PACKAGE PROJECTILE
|
(use-package projectile
|
||||||
:DIMINISH
|
:diminish
|
||||||
:CONFIG
|
:config
|
||||||
(PROJECTILE-MODE 1))
|
(projectile-mode 1))
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* RAINBOW MODE
|
* RAINBOW MODE
|
||||||
DISPLAY THE ACTUAL COLOR AS A BACKGROUND FOR ANY HEX COLOR VALUE (EX. #FFFFFF). THE CODE BLOCK BELOW ENABLES RAINBOW-MODE IN ALL PROGRAMMING MODES (PROG-MODE) AS WELL AS ORG-MODE, WHICH IS WHY RAINBOW WORKS IN THIS DOCUMENT.
|
Display the actual color as a background for any hex color value (ex. #ffffff). The code block below enables rainbow-mode in all programming modes (prog-mode) as well as org-mode, which is why rainbow works in this document.
|
||||||
|
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(USE-PACKAGE RAINBOW-MODE
|
(use-package rainbow-mode
|
||||||
:DIMINISH
|
:diminish
|
||||||
:HOOK
|
:hook
|
||||||
((ORG-MODE PROG-MODE) . RAINBOW-MODE))
|
((org-mode prog-mode) . rainbow-mode))
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* RELOAD EMACS
|
* RELOAD EMACS
|
||||||
THIS IS JUST AN EXAMPLE OF HOW TO CREATE A SIMPLE FUNCTION IN EMACS. USE THIS FUNCTION TO RELOAD EMACS AFTER ADDING CHANGES TO THE CONFIG. YES, I AM LOADING THE USER-INIT-FILE TWICE IN THIS FUNCTION, WHICH IS A HACK BECAUSE FOR SOME REASON, JUST LOADING THE USER-INIT-FILE ONCE DOES NOT WORK PROPERLY.
|
This is just an example of how to create a simple function in emacs. Use this function to reload emacs after adding changes to the config. Yes, i am loading the user-init-file twice in this function, which is a hack because for some reason, just loading the user-init-file once does not work properly.
|
||||||
|
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(DEFUN RELOAD-INIT-FILE ()
|
(defun reload-init-file ()
|
||||||
(INTERACTIVE)
|
(interactive)
|
||||||
(LOAD-FILE USER-INIT-FILE)
|
(load-file user-init-file)
|
||||||
(LOAD-FILE USER-INIT-FILE))
|
(load-file user-init-file))
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* SHELLS AND TERMINALS
|
* SHELLS AND TERMINALS
|
||||||
|
|
||||||
** ESHELL
|
** ESHELL
|
||||||
|
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(USE-PACKAGE ESHELL-SYNTAX-HIGHLIGHTING
|
(use-package eshell-syntax-highlighting
|
||||||
:AFTER ESH-MODE
|
:after esh-mode
|
||||||
:CONFIG
|
:config
|
||||||
(ESHELL-SYNTAX-HIGHLIGHTING-GLOBAL-MODE +1))
|
(eshell-syntax-highlighting-global-mode +1))
|
||||||
|
|
||||||
(SETQ ESHELL-RC-SCRIPT (CONCAT USER-EMACS-DIRECTORY "ESHELL/PROFILE")
|
(setq eshell-rc-script (concat user-emacs-directory "eshell/profile")
|
||||||
ESHELL-ALIASES-FILE (CONCAT USER-EMACS-DIRECTORY "ESHELL/ALIASES")
|
eshell-aliases-file (concat user-emacs-directory "eshell/aliases")
|
||||||
ESHELL-HISTORY-SIZE 5000
|
eshell-history-size 5000
|
||||||
ESHELL-BUFFER-MAXIMUM-LINES 5000
|
eshell-buffer-maximum-lines 5000
|
||||||
ESHELL-HIST-IGNOREDUPS T
|
eshell-hist-ignoredups t
|
||||||
ESHELL-SCROLL-TO-BOTTOM-ON-INPUT T
|
eshell-scroll-to-bottom-on-input t
|
||||||
ESHELL-DESTROY-BUFFER-WHEN-PROCESS-DIES T
|
eshell-destroy-buffer-when-process-dies t
|
||||||
ESHELL-VISUAL-COMMANDS'("BASH" "FISH" "HTOP" "SSH" "TOP" "ZSH"))
|
eshell-visual-commands'("bash" "fish" "htop" "ssh" "top" "zsh"))
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* SUDO EDIT
|
* SUDO EDIT
|
||||||
ENABLE EDITING OF PRIVILEGED FILES
|
Enable editing of privileged files
|
||||||
|
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(USE-PACKAGE SUDO-EDIT
|
(use-package sudo-edit
|
||||||
:CONFIG
|
:config
|
||||||
(LM/LEADER-KEYS
|
(lm/leader-keys
|
||||||
"FU" '(SUDO-EDIT-FIND-FILE :WK "SUDO FIND FILE")
|
"fu" '(sudo-edit-find-file :wk "sudo find file")
|
||||||
"FU" '(SUDO-EDIT :WK "SUDO EDIT FILE")))
|
"fu" '(sudo-edit :wk "sudo edit file")))
|
||||||
|
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* THEME
|
* THEME
|
||||||
SET THEMES DIR, LOAD CHOSEN THEME - THEME MADE WITH [[HTTPS://EMACSFODDER.GITHUB.IO/EMACS-THEME-EDITOR/][EMACS THEME EDITOR]].
|
Set themes dir, load chosen theme - theme made with [[https://emacsfodder.github.io/emacs-theme-editor/][emacs theme editor]].
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
;;(ADD-TO-LIST 'CUSTOM-THEME-LOAD-PATH "~/.CONFIG/EMACS/THEMES")
|
;;(add-to-list 'custom-theme-load-path "~/.config/emacs/themes")
|
||||||
;;(LOAD-THEME 'SOFT-CHARCOAL T)
|
;;(load-theme 'soft-charcoal t)
|
||||||
|
|
||||||
(USE-PACKAGE DOOM-THEMES
|
(use-package doom-themes
|
||||||
:ENSURE T
|
:ensure t
|
||||||
:CONFIG
|
:config
|
||||||
;; GLOBAL SETTINGS (DEFAULTS)
|
;; global settings (defaults)
|
||||||
(SETQ DOOM-THEMES-ENABLE-BOLD T ; IF NIL, BOLD IS UNIVERSALLY DISABLED
|
(setq doom-themes-enable-bold t ; if nil, bold is universally disabled
|
||||||
DOOM-THEMES-ENABLE-ITALIC T) ; IF NIL, ITALICS IS UNIVERSALLY DISABLED
|
doom-themes-enable-italic t) ; if nil, italics is universally disabled
|
||||||
(LOAD-THEME 'DOOM-MONOKAI-SPECTRUM T)
|
(load-theme 'doom-monokai-spectrum t)
|
||||||
;; (LOAD-THEME 'DOOM-MONOKAI-MACHINE T)
|
;; (load-theme 'doom-monokai-machine t)
|
||||||
|
|
||||||
;; ENABLE FLASHING MODE-LINE ON ERRORS
|
;; enable flashing mode-line on errors
|
||||||
(DOOM-THEMES-VISUAL-BELL-CONFIG)
|
(doom-themes-visual-bell-config)
|
||||||
;; ENABLE CUSTOM NEOTREE THEME (ALL-THE-ICONS MUST BE INSTALLED!)
|
;; enable custom neotree theme (all-the-icons must be installed!)
|
||||||
(DOOM-THEMES-NEOTREE-CONFIG)
|
(doom-themes-neotree-config)
|
||||||
;; OR FOR TREEMACS USERS
|
;; or for treemacs users
|
||||||
(SETQ DOOM-THEMES-TREEMACS-THEME "DOOM-COLORS") ; USE "DOOM-COLORS" FOR LESS MINIMAL ICON THEME
|
(setq doom-themes-treemacs-theme "doom-colors") ; use "doom-colors" for less minimal icon theme
|
||||||
(DOOM-THEMES-TREEMACS-CONFIG)
|
(doom-themes-treemacs-config)
|
||||||
;; CORRECTS (AND IMPROVES) ORG-MODE'S NATIVE FONTIFICATION.
|
;; corrects (and improves) org-mode's native fontification.
|
||||||
(DOOM-THEMES-ORG-CONFIG))
|
(doom-themes-org-config))
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* TRANSPARENCY
|
* TRANSPARENCY
|
||||||
TRUE TRANSPARENCY SUPPORT AS OF EMACS 29
|
True transparency support as of emacs 29
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(ADD-TO-LIST 'DEFAULT-FRAME-ALIST '(ALPHA-BACKGROUND . 90)) ;; FOR ALL NEW FRAMES
|
(add-to-list 'default-frame-alist '(alpha-background . 90)) ;; for all new frames
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
* GUI TWEAKS
|
* GUI TWEAKS
|
||||||
MAKING THE UI LOOK NICER
|
Making the ui look nicer
|
||||||
|
|
||||||
** DISABLE MENUBAR, TOOLBARS AND SCROLLBARS
|
** Disable menubar, toolbars and scrollbars
|
||||||
|
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(MENU-BAR-MODE -1)
|
(menu-bar-mode -1)
|
||||||
(TOOL-BAR-MODE -1)
|
(tool-bar-mode -1)
|
||||||
(SCROLL-BAR-MODE -1)
|
(scroll-bar-mode -1)
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
** DISPLAY LINE NUMBERS AND TRUNCATED LINES
|
** Display line numbers and truncated lines
|
||||||
|
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(GLOBAL-DISPLAY-LINE-NUMBERS-MODE 0)
|
(global-display-line-numbers-mode 0)
|
||||||
(MENU-BAR--DISPLAY-LINE-NUMBERS-MODE-RELATIVE)
|
(menu-bar--display-line-numbers-mode-relative)
|
||||||
;; (SETQ DISPLAY-LINE-NUMBERS-MODE-RELATIVE 'T)
|
;; (setq display-line-numbers-mode-relative 't)
|
||||||
|
|
||||||
(GLOBAL-VISUAL-LINE-MODE T)
|
(global-visual-line-mode t)
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* IVY (COUNSEL)
|
* IVY (COUNSEL)
|
||||||
+ IVY, A GENERIC COMPLETION MECHANISM FOR EMACS.
|
+ Ivy, a generic completion mechanism for emacs.
|
||||||
+ COUNSEL, A COLLECTION OF IVY-ENHANCED VERSIONS OF COMMON EMACS COMMANDS.
|
+ Counsel, a collection of ivy-enhanced versions of common emacs commandS.
|
||||||
+ IVY-RICH ALLOWS US TO ADD DESCRIPTIONS ALONGSIDE THE COMMANDS IN M-X.
|
+ Ivy-rich allows us to add descriptions alongside the commands in m-x.
|
||||||
|
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(USE-PACKAGE COUNSEL
|
(use-package counsel
|
||||||
:AFTER IVY
|
:after ivy
|
||||||
:DIMINISH
|
:diminish
|
||||||
:CONFIG (COUNSEL-MODE))
|
:config (counsel-mode))
|
||||||
|
|
||||||
(USE-PACKAGE IVY
|
(use-package ivy
|
||||||
:BIND
|
:bind
|
||||||
;; IVY-RESUME RESUMES THE LAST IVY-BASED COMPLETION.
|
;; ivy-resume resumes the last ivy-based completion.
|
||||||
(("C-C C-R" . IVY-RESUME)
|
(("C-c C-r" . ivy-resume)
|
||||||
("C-X B" . IVY-SWITCH-BUFFER-OTHER-WINDOW))
|
("C-x b" . ivy-switch-buffer-other-window))
|
||||||
:DIMINISH
|
:diminish
|
||||||
:CUSTOM
|
:custom
|
||||||
(SETQ IVY-USE-VIRTUAL-BUFFERS T)
|
(setq ivy-use-virtual-buffers t)
|
||||||
(SETQ IVY-COUNT-FORMAT "(%D/%D) ")
|
(setq ivy-count-format "(%d/%d) ")
|
||||||
(SETQ ENABLE-RECURSIVE-MINIBUFFERS T)
|
(setq enable-recursive-minibuffers t)
|
||||||
:CONFIG
|
:config
|
||||||
(IVY-MODE))
|
(ivy-mode))
|
||||||
|
|
||||||
(USE-PACKAGE ALL-THE-ICONS-IVY-RICH
|
(use-package all-the-icons-ivy-rich
|
||||||
:ENSURE T
|
:ensure t
|
||||||
:DIMINISH
|
:diminish
|
||||||
:INIT (ALL-THE-ICONS-IVY-RICH-MODE 1))
|
:init (all-the-icons-ivy-rich-mode 1))
|
||||||
|
|
||||||
(USE-PACKAGE IVY-RICH
|
(use-package ivy-rich
|
||||||
:AFTER IVY
|
:after ivy
|
||||||
:DIMINISH
|
:diminish
|
||||||
:ENSURE T
|
:ensure t
|
||||||
:INIT (IVY-RICH-MODE 1) ;; THIS GETS US DESCRIPTIONS IN M-X.
|
:init (ivy-rich-mode 1) ;; this gets us descriptions in m-x.
|
||||||
:CUSTOM
|
:custom
|
||||||
(IVY-VIRTUAL-ABBREVIATE 'FULL
|
(ivy-virtual-abbreviate 'full
|
||||||
IVY-RICH-SWITCH-BUFFER-ALIGN-VIRTUAL-BUFFER T
|
ivy-rich-switch-buffer-align-virtual-buffer t
|
||||||
IVY-RICH-PATH-STYLE 'ABBREV)
|
ivy-rich-path-style 'abbrev)
|
||||||
:CONFIG
|
:config
|
||||||
(IVY-SET-DISPLAY-TRANSFORMER 'IVY-SWITCH-BUFFER
|
(ivy-set-display-transformer 'ivy-switch-buffer
|
||||||
'IVY-RICH-SWITCH-BUFFER-TRANSFORMER))
|
'ivy-rich-switch-buffer-transformer))
|
||||||
|
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* LANGUAGE SUPPORT
|
* LANGUAGE SUPPORT
|
||||||
EMACS HAS BUILT-IN PROGRAMMING LANGUAGE MODES FOR LISP, SCHEME, DSSSL, ADA, ASM, AWK, C, C++, FORTRAN, ICON, IDL (CORBA), IDLWAVE, JAVA, JAVASCRIPT, M4, MAKEFILES, METAFONT, MODULA2, OBJECT PASCAL, OBJECTIVE-C, OCTAVE, PASCAL, PERL, PIKE, POSTSCRIPT, PROLOG, PYTHON, RUBY, SIMULA, SQL, TCL, VERILOG, AND VHDL. OTHER LANGUAGES WILL REQUIRE YOU TO INSTALL ADDITIONAL MODES.
|
Emacs has built-in programming language modes for lisp, scheme, dsssl, ada, asm, awk, c, c++, fortran, icon, idl (corba), idlwave, java, javascript, m4, makefiles, metafont, modula2, object pascal, objective-c, octave, pascal, perl, pike, postscript, prolog, python, ruby, simula, sql, tcl, verilog, and vhdl. Other languages will require you to install additional modes.
|
||||||
|
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(USE-PACKAGE ZIG-MODE)
|
(use-package zig-mode)
|
||||||
(USE-PACKAGE NIX-MODE)
|
(use-package nix-mode)
|
||||||
;; (USE-PACKAGE JAI-MODE)
|
;; (use-package jai-mode)
|
||||||
(USE-PACKAGE RUST-MODE)
|
(use-package rust-mode)
|
||||||
(USE-PACKAGE CARGO-MODE)
|
(use-package cargo-mode)
|
||||||
(USE-PACKAGE LUA-MODE)
|
(use-package lua-mode)
|
||||||
(ADD-TO-LIST 'LOAD-PATH "~/.CONFIG/EMACS/MANUAL-PACKAGES")
|
(add-to-list 'load-path "~/.config/emacs/manual-packages")
|
||||||
(REQUIRE 'ODIN-MODE)
|
(require 'odin-mode)
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
* ORG MODE
|
* ORG MODE
|
||||||
** ENABLING TABLE OF CONTENTS
|
** Enabling table of contents
|
||||||
|
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(USE-PACKAGE TOC-ORG
|
(use-package toc-org
|
||||||
:COMMANDS TOC-ORG-ENABLE
|
:commands toc-org-enable
|
||||||
:INIT (ADD-HOOK 'ORG-MODE-HOOK 'TOC-ORG-ENABLE))
|
:init (add-hook 'org-mode-hook 'toc-org-enable))
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
** ENABLING ORG BULLETS
|
** Enabling org bullets
|
||||||
ORG-BULLETS GIVE BULLET POINTS INSTEAD OF ASTERISKS
|
Org-bullets give bullet points instead of asterisks
|
||||||
|
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(ADD-HOOK 'ORG-MODE-HOOK 'ORG-INDENT-MODE)
|
(add-hook 'org-mode-hook 'org-indent-mode)
|
||||||
;;(SETQ (SETQ ORG-RETURN-FOLLOWS-LINK T)
|
;;(setq (setq org-return-follows-link t)
|
||||||
(USE-PACKAGE ORG-BULLETS)
|
(use-package org-bullets)
|
||||||
(ADD-HOOK 'ORG-MODE-HOOK (LAMBDA () (ORG-BULLETS-MODE 1)))
|
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1)))
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
** SOURCE CODE BLOCK TAG EXPANSION
|
** SOURCE CODE BLOCK TAG EXPANSION
|
||||||
ORG-TEMPO IS NOT A SEPARATE PACKAGE BUT A MODULE WITHIN ORG THAT CAN BE ENABLED. ORG-TEMPO ALLOWS FOR '<S' FOLLOWED BY TAB TO EXPAND TO A BEGIN_SRC TAG. OTHER EXPANSIONS AVAILABLE INCLUDE:
|
Org-tempo is not a separate package but a module within org that can be enabled. Org-tempo allows for '<s' followed by tab to expand to a begin_src tag. Other expansions available include:
|
||||||
|
|
||||||
| TYPING THE BELOW + TAB | EXPANDS TO ... |
|
| typing the below + tab | expands to ... |
|
||||||
|------------------------+-----------------------------------------|
|
|------------------------+-----------------------------------------|
|
||||||
| <A | '#+BEGIN_EXPORT ASCII' … '#+END_EXPORT |
|
| <a | '#+begin_export ascii' … '#+end_export |
|
||||||
| <C | '#+BEGIN_CENTER' … '#+END_CENTER' |
|
| <c | '#+begin_center' … '#+end_center' |
|
||||||
| <C | '#+BEGIN_COMMENT' … '#+END_COMMENT' |
|
| <c | '#+begin_comment' … '#+end_comment' |
|
||||||
| <E | '#+BEGIN_EXAMPLE' … '#+END_EXAMPLE' |
|
| <e | '#+begin_example' … '#+end_example' |
|
||||||
| <E | '#+BEGIN_EXPORT' … '#+END_EXPORT' |
|
| <e | '#+begin_export' … '#+end_export' |
|
||||||
| <H | '#+BEGIN_EXPORT HTML' … '#+END_EXPORT' |
|
| <h | '#+begin_export html' … '#+end_export' |
|
||||||
| <L | '#+BEGIN_EXPORT LATEX' … '#+END_EXPORT' |
|
| <l | '#+begin_export latex' … '#+end_export' |
|
||||||
| <Q | '#+BEGIN_QUOTE' … '#+END_QUOTE' |
|
| <q | '#+begin_quote' … '#+end_quote' |
|
||||||
| <S | '#+BEGIN_SRC' … '#+END_SRC' |
|
| <s | '#+begin_src' … '#+end_src' |
|
||||||
| <V | '#+BEGIN_VERSE' … '#+END_VERSE' |
|
| <v | '#+begin_verse' … '#+end_verse' |
|
||||||
|
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(REQUIRE 'ORG-TEMPO)
|
(require 'org-tempo)
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* WHICH-KEY
|
* WHICH-KEY
|
||||||
|
|
||||||
#+BEGIN_SRC EMACS-LISP
|
#+begin_src emacs-lisp
|
||||||
(USE-PACKAGE WHICH-KEY
|
(use-package which-key
|
||||||
:INIT
|
:init
|
||||||
(WHICH-KEY-MODE 1)
|
(which-key-mode 1)
|
||||||
:DIMINISH
|
:diminish
|
||||||
:CONFIG
|
:config
|
||||||
(SETQ WHICH-KEY-SIDE-WINDOW-LOCATION 'BOTTOM
|
(setq which-key-side-window-location 'bottom
|
||||||
WHICH-KEY-SORT-ORDER #'WHICH-KEY-KEY-ORDER-ALPHA
|
which-key-sort-order #'which-key-key-order-alpha
|
||||||
WHICH-KEY-SORT-UPPERCASE-FIRST NIL
|
which-key-sort-uppercase-first nil
|
||||||
WHICH-KEY-ADD-COLUMN-PADDING 1
|
which-key-add-column-padding 1
|
||||||
WHICH-KEY-MAX-DISPLAY-COLUMNS NIL
|
which-key-max-display-columns nil
|
||||||
WHICH-KEY-MIN-DISPLAY-LINES 6
|
which-key-min-display-lines 6
|
||||||
WHICH-KEY-SIDE-WINDOW-SLOT -10
|
which-key-side-window-slot -10
|
||||||
WHICH-KEY-SIDE-WINDOW-MAX-HEIGHT 0.25
|
which-key-side-window-max-height 0.25
|
||||||
WHICH-KEY-IDE-DELAY 0.8
|
which-key-ide-delay 0.8
|
||||||
WHICH-KEY-MAX-DESCRIPTION-LENGTH 25
|
which-key-max-description-length 25
|
||||||
WHICH-KEY-ALLOW-IMPRECISE-WINDOW-FIT NIL
|
which-key-allow-imprecise-window-fit nil
|
||||||
WHICH-KEY-SEPARATOR " -> " ))
|
which-key-separator " -> " ))
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|||||||
Reference in New Issue
Block a user