Compare commits
No commits in common. "master" and "v3.0" have entirely different histories.
12 changed files with 254 additions and 582 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -3,11 +3,6 @@ backups
|
||||||
eshell
|
eshell
|
||||||
elpaca
|
elpaca
|
||||||
|
|
||||||
eln-cache
|
|
||||||
elpa
|
|
||||||
org-roam.db
|
|
||||||
transient
|
|
||||||
|
|
||||||
# projectile
|
# projectile
|
||||||
projectile*
|
projectile*
|
||||||
|
|
||||||
|
|
|
||||||
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule "extra/sunrise-commander"]
|
||||||
|
path = extra/sunrise-commander
|
||||||
|
url = https://github.com/escherdragon/sunrise-commander
|
||||||
8
cheat-sheet.txt
Normal file
8
cheat-sheet.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
C-M-Space : smartparens wrapping
|
||||||
|
C-c C-c : calculator (see init.el)
|
||||||
|
C-h k <key-sequence>: lookup key sequence
|
||||||
|
C-x 0 : close current window
|
||||||
|
C-q <tab> : insert a <tab>
|
||||||
|
M-x (un)tabify : (replace) tabs
|
||||||
|
M-x describe-bindings : list of all mapped keys/commands
|
||||||
|
M-p : fill-paragraph, works for doxygen as well
|
||||||
600
config.org
600
config.org
|
|
@ -2,62 +2,61 @@
|
||||||
#+TITLE: My Emacs
|
#+TITLE: My Emacs
|
||||||
#+CREATOR: Laurens Miers
|
#+CREATOR: Laurens Miers
|
||||||
#+LANGUAGE: en
|
#+LANGUAGE: en
|
||||||
|
[[./img/dash_logo.png]]
|
||||||
|
|
||||||
|
* Elpaca
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(defvar elpaca-installer-version 0.7)
|
||||||
|
(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory))
|
||||||
|
(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory))
|
||||||
|
(defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory))
|
||||||
|
(defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git"
|
||||||
|
:ref nil :depth 1
|
||||||
|
:files (:defaults "elpaca-test.el" (:exclude "extensions"))
|
||||||
|
:build (:not elpaca--activate-package)))
|
||||||
|
(let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory))
|
||||||
|
(build (expand-file-name "elpaca/" elpaca-builds-directory))
|
||||||
|
(order (cdr elpaca-order))
|
||||||
|
(default-directory repo))
|
||||||
|
(add-to-list 'load-path (if (file-exists-p build) build repo))
|
||||||
|
(unless (file-exists-p repo)
|
||||||
|
(make-directory repo t)
|
||||||
|
(when (< emacs-major-version 28) (require 'subr-x))
|
||||||
|
(condition-case-unless-debug err
|
||||||
|
(if-let ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*"))
|
||||||
|
((zerop (apply #'call-process `("git" nil ,buffer t "clone"
|
||||||
|
,@(when-let ((depth (plist-get order :depth)))
|
||||||
|
(list (format "--depth=%d" depth) "--no-single-branch"))
|
||||||
|
,(plist-get order :repo) ,repo))))
|
||||||
|
((zerop (call-process "git" nil buffer t "checkout"
|
||||||
|
(or (plist-get order :ref) "--"))))
|
||||||
|
(emacs (concat invocation-directory invocation-name))
|
||||||
|
((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch"
|
||||||
|
"--eval" "(byte-recompile-directory \".\" 0 'force)")))
|
||||||
|
((require 'elpaca))
|
||||||
|
((elpaca-generate-autoloads "elpaca" repo)))
|
||||||
|
(progn (message "%s" (buffer-string)) (kill-buffer buffer))
|
||||||
|
(error "%s" (with-current-buffer buffer (buffer-string))))
|
||||||
|
((error) (warn "%s" err) (delete-directory repo 'recursive))))
|
||||||
|
(unless (require 'elpaca-autoloads nil t)
|
||||||
|
(require 'elpaca)
|
||||||
|
(elpaca-generate-autoloads "elpaca" repo)
|
||||||
|
(load "./elpaca-autoloads")))
|
||||||
|
(add-hook 'after-init-hook #'elpaca-process-queues)
|
||||||
|
(elpaca `(,@elpaca-order))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
;; Install use-package support
|
||||||
|
(elpaca elpaca-use-package
|
||||||
|
;; Enable use-package :ensure support for Elpaca.
|
||||||
|
(elpaca-use-package-mode)
|
||||||
|
)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
* General config
|
* General config
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package emacs
|
|
||||||
:ensure nil
|
|
||||||
:custom
|
|
||||||
(inhibit-startup-message t)
|
|
||||||
:init
|
|
||||||
(with-current-buffer (get-buffer-create "*scratch*")
|
|
||||||
(insert (format ";;
|
|
||||||
;; ██╗ ██╗███████╗██╗ ██╗ ██████╗
|
|
||||||
;; ██║ ██║██╔════╝██║ ██║ ██╔═══██╗
|
|
||||||
;; ███████║█████╗ ██║ ██║ ██║ ██║
|
|
||||||
;; ██╔══██║██╔══╝ ██║ ██║ ██║ ██║
|
|
||||||
;; ██║ ██║███████╗███████╗███████╗╚██████╔╝
|
|
||||||
;; ╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝ ╚═════╝
|
|
||||||
;;
|
|
||||||
;; ███████╗███╗ ███╗ █████╗ ██████╗███████╗
|
|
||||||
;; ██╔════╝████╗ ████║██╔══██╗██╔════╝██╔════╝
|
|
||||||
;; █████╗ ██╔████╔██║███████║██║ ███████╗
|
|
||||||
;; ██╔══╝ ██║╚██╔╝██║██╔══██║██║ ╚════██║
|
|
||||||
;; ███████╗██║ ╚═╝ ██║██║ ██║╚██████╗███████║
|
|
||||||
;; ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚══════╝
|
|
||||||
;;
|
|
||||||
;; Loading time : %s
|
|
||||||
;; Packages : %s
|
|
||||||
;;
|
|
||||||
"
|
|
||||||
(emacs-init-time)
|
|
||||||
(number-to-string (length package-activated-list)))))
|
|
||||||
|
|
||||||
(message (emacs-init-time))
|
|
||||||
)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
** Package repos
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(require 'package)
|
|
||||||
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
|
|
||||||
;; Comment/uncomment this line to enable MELPA Stable if desired. See `package-archive-priorities`
|
|
||||||
;; and `package-pinned-packages`. Most users will not need or want to do this.
|
|
||||||
;;(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t)
|
|
||||||
(package-initialize)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
** Use-package
|
|
||||||
|
|
||||||
*** Always ensure
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(require 'use-package-ensure)
|
|
||||||
(setq use-package-always-ensure t)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
** Bell
|
** Bell
|
||||||
|
|
||||||
The audible bell is annoying AF.
|
The audible bell is annoying AF.
|
||||||
|
|
@ -72,15 +71,10 @@ The audible bell is annoying AF.
|
||||||
(setq column-number-mode 1)
|
(setq column-number-mode 1)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Whitespace cleanup
|
** Delete trailing whitespaces
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package whitespace
|
(add-hook 'before-save-hook 'delete-trailing-whitespace)
|
||||||
:ensure nil
|
|
||||||
:hook (before-save-hook . delete-trailing-whitespace)
|
|
||||||
;; if we wanna remove this hook at any time, eval:
|
|
||||||
;; (remove-hook 'before-save-hook #'whitespace-cleanup)
|
|
||||||
)
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Save history and recent files
|
** Save history and recent files
|
||||||
|
|
@ -151,82 +145,22 @@ Use list-buffers bigger brother.
|
||||||
(global-set-key [remap list-buffers] 'ibuffer)
|
(global-set-key [remap list-buffers] 'ibuffer)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Eldoc
|
** Mark
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package eldoc
|
(global-set-key (kbd "M-SPC") 'mark-word)
|
||||||
:ensure nil
|
#+end_src
|
||||||
:init
|
|
||||||
(global-eldoc-mode))
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
** Isearch
|
** Isearch
|
||||||
|
|
||||||
Inspired by [[https://github.com/LionyxML/emacs-solo][emacs-solo]]:
|
Display number of matches:
|
||||||
|
#+begin_src emacs-lisp
|
||||||
#+BEGIN_SRC emacs-lisp
|
(setq-default isearch-lazy-count t)
|
||||||
(use-package isearch
|
#+end_src
|
||||||
:ensure nil
|
|
||||||
:config
|
|
||||||
(setq isearch-lazy-count t) ; Display number of matches
|
|
||||||
(setq lazy-count-prefix-format "(%s/%s) ") ; eye-candy to add braces
|
|
||||||
(defun isearch-copy-selected-word ()
|
|
||||||
"Copy the current `isearch` selection to the kill ring."
|
|
||||||
(interactive)
|
|
||||||
(when isearch-other-end
|
|
||||||
(let ((selection (buffer-substring-no-properties isearch-other-end (point))))
|
|
||||||
(kill-new selection)
|
|
||||||
(isearch-exit))))
|
|
||||||
|
|
||||||
;; Bind `M-w` in isearch to copy the selected word, so M-s M-. M-w
|
|
||||||
;; does a great job of 'copying the current word under cursor'.
|
|
||||||
(define-key isearch-mode-map (kbd "M-w") 'isearch-copy-selected-word))
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
Reference that might be interesting for later:
|
Reference that might be interesting for later:
|
||||||
https://endlessparentheses.com/leave-the-cursor-at-start-of-match-after-isearch.html
|
https://endlessparentheses.com/leave-the-cursor-at-start-of-match-after-isearch.html
|
||||||
|
|
||||||
** Flymake
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package flymake
|
|
||||||
:ensure nil
|
|
||||||
:defer t
|
|
||||||
:hook
|
|
||||||
(prog-mode-hook . flymake-mode)
|
|
||||||
:custom
|
|
||||||
(flymake-show-diagnostics-at-end-of-line 'short)
|
|
||||||
(flymake-indicator-type 'margins)
|
|
||||||
(flymake-margin-indicators-string
|
|
||||||
`((error "!" compilation-error)
|
|
||||||
(warning "?" compilation-warning)
|
|
||||||
(note "i" compilation-info))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
** Which-func
|
|
||||||
|
|
||||||
Show function we are currently in in the mode-line.
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package which-func
|
|
||||||
:ensure nil
|
|
||||||
:defer t
|
|
||||||
:custom
|
|
||||||
(which-func-display 'mode-and-header)
|
|
||||||
:hook
|
|
||||||
(prog-mode-hook . which-function-mode)
|
|
||||||
)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
** Line-numbers
|
|
||||||
|
|
||||||
Show line numbers.
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(global-display-line-numbers-mode t)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
** Abbrev
|
** Abbrev
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
|
|
@ -263,6 +197,15 @@ Narrow-region/page is a really handy feature, enable it:
|
||||||
(put 'narrow-to-region 'disabled nil)
|
(put 'narrow-to-region 'disabled nil)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
** Use-package
|
||||||
|
|
||||||
|
*** Always ensure
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(require 'use-package-ensure)
|
||||||
|
(setq use-package-always-ensure t)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
** Adaptive cursor width
|
** Adaptive cursor width
|
||||||
|
|
||||||
Make cursor the width of the character it is under f.e. full width of a tab.
|
Make cursor the width of the character it is under f.e. full width of a tab.
|
||||||
|
|
@ -271,12 +214,6 @@ Make cursor the width of the character it is under f.e. full width of a tab.
|
||||||
(setq x-stretch-cursor t)
|
(setq x-stretch-cursor t)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Enable auto-revert
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(global-auto-revert-mode t)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
* Resize-mode
|
* Resize-mode
|
||||||
|
|
||||||
Minor-mode to easily resize frames (works with EXWM (firefox, ...)).
|
Minor-mode to easily resize frames (works with EXWM (firefox, ...)).
|
||||||
|
|
@ -323,7 +260,7 @@ C-c C-c to apply."
|
||||||
(if (<= (length (window-list)) 1)
|
(if (<= (length (window-list)) 1)
|
||||||
(progn (setq resize-frame nil)
|
(progn (setq resize-frame nil)
|
||||||
(message "Only root frame exists, abort."))
|
(message "Only root frame exists, abort."))
|
||||||
(message "Use arrow-keys or C-p/n/f/b to adjust frames.")))
|
(message "Use arrow-keys or i/j/k/l to adjust frames.")))
|
||||||
|
|
||||||
(defun resize-frame-done ()
|
(defun resize-frame-done ()
|
||||||
(interactive)
|
(interactive)
|
||||||
|
|
@ -337,14 +274,15 @@ C-c C-c to apply."
|
||||||
** Minibuffer
|
** Minibuffer
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
;; Enable vertico
|
||||||
(use-package vertico
|
(use-package vertico
|
||||||
:custom
|
;; :custom
|
||||||
;; (vertico-scroll-margin 0) ;; Different scroll margin
|
;; (vertico-scroll-margin 0) ;; Different scroll margin
|
||||||
;; (vertico-count 20) ;; Show more candidates
|
;; (vertico-count 20) ;; Show more candidates
|
||||||
;; (vertico-resize t) ;; Grow and shrink the Vertico minibuffer
|
;; (vertico-resize t) ;; Grow and shrink the Vertico minibuffer
|
||||||
(vertico-cycle t) ;; Enable cycling for `vertico-next/previous'
|
;; (vertico-cycle t) ;; Enable cycling for `vertico-next/previous'
|
||||||
:hook (after-init . vertico-mode)
|
:init
|
||||||
)
|
(vertico-mode))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Consult
|
** Consult
|
||||||
|
|
@ -374,8 +312,8 @@ C-c C-c to apply."
|
||||||
;; Other custom bindings
|
;; Other custom bindings
|
||||||
("M-y" . consult-yank-pop) ;; orig. yank-pop
|
("M-y" . consult-yank-pop) ;; orig. yank-pop
|
||||||
;; M-g bindings in `goto-map'
|
;; M-g bindings in `goto-map'
|
||||||
("M-g e" . consult-compile-error)
|
;; ("M-g e" . consult-compile-error)
|
||||||
("M-g f" . consult-flymake) ;; Alternative: consult-flycheck
|
;; ("M-g f" . consult-flymake) ;; Alternative: consult-flycheck
|
||||||
("M-g g" . consult-goto-line) ;; orig. goto-line
|
("M-g g" . consult-goto-line) ;; orig. goto-line
|
||||||
("M-g M-g" . consult-goto-line) ;; orig. goto-line
|
("M-g M-g" . consult-goto-line) ;; orig. goto-line
|
||||||
;; ("M-g o" . consult-outline) ;; Alternative: consult-org-heading
|
;; ("M-g o" . consult-outline) ;; Alternative: consult-org-heading
|
||||||
|
|
@ -384,9 +322,9 @@ C-c C-c to apply."
|
||||||
("M-i" . consult-imenu)
|
("M-i" . consult-imenu)
|
||||||
("M-I" . consult-imenu-multi)
|
("M-I" . consult-imenu-multi)
|
||||||
;; M-s bindings in `search-map'
|
;; M-s bindings in `search-map'
|
||||||
("M-s d" . consult-find) ;; Alternative: consult-fd
|
;; ("M-s d" . consult-find) ;; Alternative: consult-fd
|
||||||
;; ("M-s c" . consult-locate)
|
;; ("M-s c" . consult-locate)
|
||||||
("M-s g" . consult-grep)
|
;; ("M-s g" . consult-grep)
|
||||||
;; ("M-s G" . consult-git-grep)
|
;; ("M-s G" . consult-git-grep)
|
||||||
;; ("M-s r" . consult-ripgrep)
|
;; ("M-s r" . consult-ripgrep)
|
||||||
("M-s l" . consult-line)
|
("M-s l" . consult-line)
|
||||||
|
|
@ -457,27 +395,11 @@ C-c C-c to apply."
|
||||||
)
|
)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** In-buffer completion
|
** Corfu
|
||||||
|
|
||||||
*** Consult
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(setq completion-in-region-function
|
|
||||||
(lambda (&rest args)
|
|
||||||
(apply (if vertico-mode
|
|
||||||
#'consult-completion-in-region
|
|
||||||
#'completion--in-region)
|
|
||||||
args)))
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
*** Corfu
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package corfu
|
(use-package corfu
|
||||||
;; Optional customizations
|
;; Optional customizations
|
||||||
:bind (:map corfu-map ("<tab>" . corfu-complete))
|
|
||||||
:config
|
|
||||||
(setq tab-always-indent 'complete)
|
|
||||||
:custom
|
:custom
|
||||||
(corfu-cycle t) ;; Enable cycling for `corfu-next/previous'
|
(corfu-cycle t) ;; Enable cycling for `corfu-next/previous'
|
||||||
(corfu-auto t) ;; Enable auto completion
|
(corfu-auto t) ;; Enable auto completion
|
||||||
|
|
@ -503,7 +425,7 @@ C-c C-c to apply."
|
||||||
|
|
||||||
** Orderless
|
** Orderless
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package orderless
|
(use-package orderless
|
||||||
:demand t
|
:demand t
|
||||||
:custom
|
:custom
|
||||||
|
|
@ -523,11 +445,11 @@ C-c C-c to apply."
|
||||||
;; )
|
;; )
|
||||||
;; )
|
;; )
|
||||||
)
|
)
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
** Marginalia
|
** Marginalia
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
;; Enable rich annotations using the Marginalia package
|
;; Enable rich annotations using the Marginalia package
|
||||||
(use-package marginalia
|
(use-package marginalia
|
||||||
;; Bind `marginalia-cycle' locally in the minibuffer. To make the binding
|
;; Bind `marginalia-cycle' locally in the minibuffer. To make the binding
|
||||||
|
|
@ -542,7 +464,7 @@ C-c C-c to apply."
|
||||||
;; the mode gets enabled right away. Note that this forces loading the
|
;; the mode gets enabled right away. Note that this forces loading the
|
||||||
;; package.
|
;; package.
|
||||||
(marginalia-mode))
|
(marginalia-mode))
|
||||||
#+END_SRC
|
#+end_src
|
||||||
|
|
||||||
* Dired
|
* Dired
|
||||||
|
|
||||||
|
|
@ -562,15 +484,6 @@ C-c C-c to apply."
|
||||||
))
|
))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Guess target directory
|
|
||||||
|
|
||||||
I currently prefer to have two dired windows open in the same frame.
|
|
||||||
Instruct dired to 'Prefer next windows on the same frame' when renaming/copying files.
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(setq dired-dwim-target 'dired-dwim-target-next)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
* Whole-line-or-region
|
* Whole-line-or-region
|
||||||
|
|
||||||
Source:
|
Source:
|
||||||
|
|
@ -580,6 +493,7 @@ Operate on the current line if no region is active.
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package whole-line-or-region
|
(use-package whole-line-or-region
|
||||||
|
|
||||||
:config
|
:config
|
||||||
(whole-line-or-region-global-mode 1)
|
(whole-line-or-region-global-mode 1)
|
||||||
)
|
)
|
||||||
|
|
@ -632,7 +546,8 @@ For the keybindings, we have to defien them in both raw and line mode. From the
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package monokai-theme
|
(use-package monokai-theme
|
||||||
:config
|
|
||||||
|
:init
|
||||||
(load-theme 'monokai t)
|
(load-theme 'monokai t)
|
||||||
)
|
)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
@ -641,32 +556,30 @@ For the keybindings, we have to defien them in both raw and line mode. From the
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package dashboard
|
(use-package dashboard
|
||||||
:custom
|
|
||||||
(dashboard-center-content t) ;; Center content
|
|
||||||
(dashboard-icon-type 'nerd-icons) ;; Nerd icons used
|
|
||||||
(dashboard-set-heading-icons t) ;; Heading icons enabled
|
|
||||||
(dashboard-set-file-icons t) ;; File icons enabled
|
|
||||||
(dashboard-startup-banner 'logo) ;; Use alternative logo
|
|
||||||
:config
|
:config
|
||||||
|
(add-hook 'elpaca-after-init-hook #'dashboard-insert-startupify-lists)
|
||||||
|
(add-hook 'elpaca-after-init-hook #'dashboard-initialize)
|
||||||
(dashboard-setup-startup-hook))
|
(dashboard-setup-startup-hook))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
* Hydra
|
* Hydra
|
||||||
|
|
||||||
https://github.com/abo-abo/hydra
|
Install and wait for hydra to be available since we are using it in this init.el :
|
||||||
|
#+begin_src emacs-lisp
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package hydra
|
(use-package hydra
|
||||||
:config
|
:ensure (:wait t)
|
||||||
;; Zoom hydra
|
)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Text zoom
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
(defhydra hydra-zoom (global-map "<f1>")
|
(defhydra hydra-zoom (global-map "<f1>")
|
||||||
"zoom"
|
"zoom"
|
||||||
("g" text-scale-increase "in")
|
("g" text-scale-increase "in")
|
||||||
("l" text-scale-decrease "out")
|
("l" text-scale-decrease "out")
|
||||||
)
|
)
|
||||||
|
#+end_src
|
||||||
)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
* Zygospore
|
* Zygospore
|
||||||
|
|
||||||
|
|
@ -718,34 +631,15 @@ https://github.com/victorhge/iedit
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Electric pair
|
** Electric pair
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package elec-pair
|
(add-hook 'prog-mode-hook 'electric-pair-mode)
|
||||||
:ensure nil
|
|
||||||
:defer t
|
|
||||||
:hook (prog-mode-hook . electric-pair-mode))
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
** Paren
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package paren
|
|
||||||
:ensure nil
|
|
||||||
:hook (after-init-hook . show-paren-mode)
|
|
||||||
:custom
|
|
||||||
(show-paren-delay 0)
|
|
||||||
(show-paren-style 'mixed)
|
|
||||||
(show-paren-context-when-offscreen t)) ;; show matches within window splits
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Eglot
|
** Eglot
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package eglot
|
(use-package eglot)
|
||||||
:ensure nil
|
|
||||||
:custom
|
|
||||||
(eglot-autoshutdown t)
|
|
||||||
:init
|
|
||||||
(setq eglot-stay-out-of '(xref))
|
(setq eglot-stay-out-of '(xref))
|
||||||
(add-hook 'prog-mode-hook 'eglot-ensure)
|
(add-hook 'prog-mode-hook 'eglot-ensure)
|
||||||
(add-hook 'eglot-managed-mode-hook (lambda ()
|
(add-hook 'eglot-managed-mode-hook (lambda ()
|
||||||
|
|
@ -753,17 +647,12 @@ https://github.com/victorhge/iedit
|
||||||
(add-hook 'xref-backend-functions 'eglot-xref-backend)
|
(add-hook 'xref-backend-functions 'eglot-xref-backend)
|
||||||
(remove-hook 'xref-backend-functions 'eglot-xref-backend)
|
(remove-hook 'xref-backend-functions 'eglot-xref-backend)
|
||||||
)))
|
)))
|
||||||
|
|
||||||
)
|
|
||||||
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Markdown-mode
|
** Markdown-mode
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package markdown-mode
|
(use-package markdown-mode)
|
||||||
:defer t
|
|
||||||
)
|
|
||||||
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
|
@ -774,7 +663,6 @@ https://github.com/victorhge/iedit
|
||||||
:hook
|
:hook
|
||||||
(prog-mode . yas-minor-mode)
|
(prog-mode . yas-minor-mode)
|
||||||
(org-mode . yas-minor-mode)
|
(org-mode . yas-minor-mode)
|
||||||
(text-mode . yas-minor-mode)
|
|
||||||
:config
|
:config
|
||||||
(yas-reload-all)
|
(yas-reload-all)
|
||||||
)
|
)
|
||||||
|
|
@ -782,15 +670,41 @@ https://github.com/victorhge/iedit
|
||||||
|
|
||||||
** Magit
|
** Magit
|
||||||
|
|
||||||
|
*** Transient
|
||||||
|
|
||||||
|
Magit depends on this and it seems it's not installed as a dependency, so install it explicitly.
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package transient
|
||||||
|
:ensure (:wait t)
|
||||||
|
)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
*** Core
|
*** Core
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package magit
|
(use-package magit
|
||||||
:defer t
|
:ensure (:wait t)
|
||||||
)
|
)
|
||||||
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
**** Extra commands
|
||||||
|
|
||||||
|
***** Update all submodules
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(transient-define-suffix magit-submodule-update-all ()
|
||||||
|
"Update all submodules"
|
||||||
|
:description "Update All git submodule update --init --recursive"
|
||||||
|
(interactive)
|
||||||
|
(magit-with-toplevel
|
||||||
|
(magit-run-git-async "submodule" "update" "--force")))
|
||||||
|
|
||||||
|
(transient-append-suffix 'magit-submodule "f"
|
||||||
|
'("U" magit-submodule-update-all))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
** Dumb-jump
|
** Dumb-jump
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
|
@ -827,7 +741,6 @@ Move to the end if the compilation finishes.
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package rust-mode
|
(use-package rust-mode
|
||||||
:defer t
|
|
||||||
:init
|
:init
|
||||||
(setq rust-mode-treesitter-derive t))
|
(setq rust-mode-treesitter-derive t))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
@ -835,17 +748,13 @@ Move to the end if the compilation finishes.
|
||||||
** Zig
|
** Zig
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package zig-mode
|
(use-package zig-mode)
|
||||||
:defer t
|
|
||||||
)
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Python
|
** Python
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package python-mode
|
(use-package python-mode)
|
||||||
:defer t
|
|
||||||
)
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
* Multiple cursors
|
* Multiple cursors
|
||||||
|
|
@ -882,8 +791,8 @@ https://github.com/remyferre/comment-dwim-2
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package comment-dwim-2
|
(use-package comment-dwim-2
|
||||||
:bind
|
:config
|
||||||
("M-;" . comment-dwim-2)
|
(global-set-key (kbd "M-;") 'comment-dwim-2)
|
||||||
)
|
)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
|
@ -899,117 +808,36 @@ https://github.com/remyferre/comment-dwim-2
|
||||||
(add-hook 'project-find-functions #'project-projectile)
|
(add-hook 'project-find-functions #'project-projectile)
|
||||||
)
|
)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
* Org
|
* Org
|
||||||
|
|
||||||
** General config
|
** General config
|
||||||
|
*** Super/Sub-scripts
|
||||||
|
|
||||||
|
Use ={}= for subscripting:
|
||||||
|
|
||||||
|
https://orgmode.org/manual/Subscripts-and-superscripts.html
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package org
|
(setq org-use-sub-superscripts '{})
|
||||||
:ensure nil
|
|
||||||
:defer t
|
|
||||||
:mode ("\\.org\\'" . org-mode)
|
|
||||||
:config
|
|
||||||
(setq
|
|
||||||
;; Start collapsed for speed
|
|
||||||
org-startup-folded t
|
|
||||||
;; Use ={}= for subscripting: https://orgmode.org/manual/Subscripts-and-superscripts.html
|
|
||||||
org-use-sub-superscripts '{}
|
|
||||||
;; Preserve indentation in SRC blocks
|
|
||||||
org-src-preserve-indentation t
|
|
||||||
)
|
|
||||||
;; Ellipsis styling
|
|
||||||
(setq org-ellipsis " ▼ ")
|
|
||||||
(set-face-attribute 'org-ellipsis nil :inherit 'default :box nil))
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Org-todo
|
*** Indentation
|
||||||
|
|
||||||
*** Mark parent entry as DONE when children are DONE
|
Preserve indentation in SRC blocks
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(defun org-summary-todo (n-done n-not-done)
|
(setq org-src-preserve-indentation t)
|
||||||
"Switch entry to DONE when all subentries are done, to TODO otherwise."
|
|
||||||
(let (org-log-done org-todo-log-states) ; turn off logging
|
|
||||||
(org-todo (if (= n-not-done 0) "DONE" "TODO"))))
|
|
||||||
|
|
||||||
(add-hook 'org-after-todo-statistics-hook #'org-summary-todo)
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Org bullets
|
** Org bullets
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package org-bullets
|
(use-package org-bullets
|
||||||
:defer t
|
|
||||||
:after org
|
|
||||||
:config
|
:config
|
||||||
(add-hook 'org-mode-hook (lambda () (org-bullets-mode))))
|
(add-hook 'org-mode-hook (lambda () (org-bullets-mode))))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Org Roam
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package org-roam
|
|
||||||
:demand
|
|
||||||
:custom
|
|
||||||
(org-roam-directory "~/projects/notes")
|
|
||||||
(org-roam-completion-everywhere t)
|
|
||||||
:config
|
|
||||||
(org-roam-setup)
|
|
||||||
(setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags}" 'face 'org-tag)))
|
|
||||||
(org-roam-db-autosync-mode)
|
|
||||||
;; Add todo lists to org-agenda
|
|
||||||
(custom-set-variables '(org-agenda-files (directory-files-recursively org-roam-directory "todo\\.org$")))
|
|
||||||
(load (expand-file-name "init.el" org-roam-directory) :no-error-if-file-is-missing)
|
|
||||||
)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
*** Consult
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package consult-org-roam
|
|
||||||
:ensure t
|
|
||||||
:after org-roam
|
|
||||||
:init
|
|
||||||
(require 'consult-org-roam)
|
|
||||||
;; Activate the minor mode
|
|
||||||
(consult-org-roam-mode 1)
|
|
||||||
;; :custom
|
|
||||||
;; Use `ripgrep' for searching with `consult-org-roam-search'
|
|
||||||
;; (consult-org-roam-grep-func #'consult-ripgrep)
|
|
||||||
|
|
||||||
;; Configure a custom narrow key for `consult-buffer', default is 'n', this sets it to 'r'
|
|
||||||
;; (consult-org-roam-buffer-narrow-key ?r)
|
|
||||||
|
|
||||||
;; Display org-roam buffers right after non-org-roam buffers
|
|
||||||
;; in consult-buffer (and not down at the bottom)
|
|
||||||
;; (consult-org-roam-buffer-after-buffers t)
|
|
||||||
:config
|
|
||||||
;; Eventually suppress previewing for certain functions
|
|
||||||
(consult-customize
|
|
||||||
consult-org-roam-forward-links
|
|
||||||
:preview-key "M-.")
|
|
||||||
:bind
|
|
||||||
;; Define some convenient keybindings as an addition
|
|
||||||
("C-c n f" . consult-org-roam-file-find)
|
|
||||||
("C-c n b" . consult-org-roam-backlinks)
|
|
||||||
("C-c n B" . consult-org-roam-backlinks-recursive)
|
|
||||||
("C-c n l" . consult-org-roam-forward-links)
|
|
||||||
("C-c n s" . consult-org-roam-search)
|
|
||||||
("C-c n d" . org-roam-dailies-goto-today)
|
|
||||||
)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
** Org Download
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package org-download
|
|
||||||
:defer t
|
|
||||||
:after org
|
|
||||||
:config
|
|
||||||
(add-hook 'dired-mode-hook 'org-download-enable)
|
|
||||||
)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
* Elisp
|
* Elisp
|
||||||
|
|
||||||
** Add demos to describe-function
|
** Add demos to describe-function
|
||||||
|
|
@ -1023,91 +851,6 @@ https://github.com/remyferre/comment-dwim-2
|
||||||
|
|
||||||
* Custom
|
* Custom
|
||||||
|
|
||||||
** Modeline
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(setq-default mode-line-format
|
|
||||||
'("%e" " "
|
|
||||||
;; (:propertize " " display (raise +0.1)) ;; Top padding
|
|
||||||
;; (:propertize " " display (raise -0.1)) ;; Bottom padding
|
|
||||||
(:propertize "𝝮 " face font-lock-keyword-face)
|
|
||||||
|
|
||||||
(:propertize
|
|
||||||
("" mode-line-mule-info mode-line-client mode-line-modified mode-line-remote mode-line-window-dedicated))
|
|
||||||
|
|
||||||
mode-line-frame-identification
|
|
||||||
mode-line-buffer-identification
|
|
||||||
" "
|
|
||||||
mode-line-position
|
|
||||||
mode-line-format-right-align
|
|
||||||
" "
|
|
||||||
(project-mode-line project-mode-line-format)
|
|
||||||
" "
|
|
||||||
(vc-mode vc-mode)
|
|
||||||
" "
|
|
||||||
mode-line-modes
|
|
||||||
mode-line-misc-info
|
|
||||||
mode-line-end-spaces)
|
|
||||||
project-mode-line t
|
|
||||||
mode-line-buffer-identification '(" %b")
|
|
||||||
mode-line-position-column-line-format '(" %l:%c"))
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
** Org-roam
|
|
||||||
|
|
||||||
Inspired by https://github.com/org-roam/org-roam/wiki/User-contributed-Tricks#filter-by-a-tag .
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(defun myrmi/org-roam-node-find-tag-filter ()
|
|
||||||
"Select a single tag from list and filter `org-roam-node' by it."
|
|
||||||
(interactive)
|
|
||||||
(let ((tag (car (completing-read-multiple "Tag: "
|
|
||||||
(org-roam-tag-completions)))))
|
|
||||||
(org-roam-node-find nil nil
|
|
||||||
(lambda (node)
|
|
||||||
(member tag
|
|
||||||
(org-roam-node-tags node))))))
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
** Font
|
|
||||||
|
|
||||||
'Inspired' by https://protesilaos.com/codelog/2024-11-28-basic-emacs-configuration/#h:1e4fde73-a2a2-4dc5-82ad-02cf3884ece6 .
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(let ((mono-spaced-font "Monospace")
|
|
||||||
(proportionately-spaced-font "Sans"))
|
|
||||||
(set-face-attribute 'default nil :family mono-spaced-font :height 100)
|
|
||||||
(set-face-attribute 'fixed-pitch nil :family mono-spaced-font :height 1.0)
|
|
||||||
(set-face-attribute 'variable-pitch nil :family proportionately-spaced-font :height 1.0))
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
*** Icon fonts
|
|
||||||
|
|
||||||
To make this setup work, the user must type M-x and then call the
|
|
||||||
command 'nerd-icons-install-fonts'. This will store the icon font files
|
|
||||||
in a local directory (on Linux this is ~/.local/share/fonts).
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package nerd-icons
|
|
||||||
:ensure t)
|
|
||||||
|
|
||||||
(use-package nerd-icons-completion
|
|
||||||
:ensure t
|
|
||||||
:after marginalia
|
|
||||||
:config
|
|
||||||
(add-hook 'marginalia-mode-hook #'nerd-icons-completion-marginalia-setup))
|
|
||||||
|
|
||||||
(use-package nerd-icons-corfu
|
|
||||||
:ensure t
|
|
||||||
:after corfu
|
|
||||||
:config
|
|
||||||
(add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter))
|
|
||||||
|
|
||||||
(use-package nerd-icons-dired
|
|
||||||
:ensure t
|
|
||||||
:hook
|
|
||||||
(dired-mode . nerd-icons-dired-mode))
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
** Sudo current buffer
|
** Sudo current buffer
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
|
@ -1123,6 +866,7 @@ in a local directory (on Linux this is ~/.local/share/fonts).
|
||||||
)
|
)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
|
||||||
** Save symbol at point
|
** Save symbol at point
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
|
@ -1195,58 +939,12 @@ This should normally be done by the init.el to load this configuration.
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(defun myrmi/visit-config ()
|
(defun myrmi/visit-config ()
|
||||||
"Visit emacs config"
|
"Reloads ~/.emacs.d/config.org at runtime"
|
||||||
(interactive)
|
(interactive)
|
||||||
(find-file my-config-file))
|
(find-file my-config-file))
|
||||||
|
|
||||||
(defun myrmi/reload-config ()
|
(defun myrmi/reload-config ()
|
||||||
"Reload emacs config at runtime"
|
"Reloads ~/.emacs.d/config.org at runtime"
|
||||||
(interactive)
|
(interactive)
|
||||||
(org-babel-load-file my-config-file))
|
(org-babel-load-file my-config-file))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Tips and Tricks
|
|
||||||
|
|
||||||
*** Cheat-sheet
|
|
||||||
|
|
||||||
| Key | Explanation |
|
|
||||||
|-----------------------+-----------------------------------------------------------|
|
|
||||||
| C-h k <key-sequence> | Lookup key sequencesmartparens wrapping |
|
|
||||||
| C-q <key> | Insert <key> quoted/explicitly. F.e. to insert a tab, ... |
|
|
||||||
| M-x untabify/tabify | Convert to spaces/tabs |
|
|
||||||
| M-x describe-bindings | List all mapped keys/commands |
|
|
||||||
| M-q | Fill paragraph |
|
|
||||||
|
|
||||||
** Minibuffer
|
|
||||||
|
|
||||||
*** Close minibuffer when pressing C-g
|
|
||||||
|
|
||||||
'Inspired' by https://protesilaos.com/codelog/2024-11-28-basic-emacs-configuration/#h:1e4fde73-a2a2-4dc5-82ad-02cf3884ece6 .
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(defun myrmi/keyboard-quit-dwim ()
|
|
||||||
"Do-What-I-Mean behaviour for a general `keyboard-quit'.
|
|
||||||
|
|
||||||
The generic `keyboard-quit' does not do the expected thing when
|
|
||||||
the minibuffer is open. Whereas we want it to close the
|
|
||||||
minibuffer, even without explicitly focusing it.
|
|
||||||
|
|
||||||
The DWIM behaviour of this command is as follows:
|
|
||||||
|
|
||||||
- When the region is active, disable it.
|
|
||||||
- When a minibuffer is open, but not focused, close the minibuffer.
|
|
||||||
- When the Completions buffer is selected, close it.
|
|
||||||
- In every other case use the regular `keyboard-quit'."
|
|
||||||
(interactive)
|
|
||||||
(cond
|
|
||||||
((region-active-p)
|
|
||||||
(keyboard-quit))
|
|
||||||
((derived-mode-p 'completion-list-mode)
|
|
||||||
(delete-completion-window))
|
|
||||||
((> (minibuffer-depth) 0)
|
|
||||||
(abort-recursive-edit))
|
|
||||||
(t
|
|
||||||
(keyboard-quit))))
|
|
||||||
|
|
||||||
(define-key global-map (kbd "C-g") #'myrmi/keyboard-quit-dwim)
|
|
||||||
|
|
||||||
#+END_SRC
|
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,9 @@
|
||||||
;;; early-init.el --- Early Init -*- lexical-binding: t; -*-
|
|
||||||
|
|
||||||
;;; Commentary:
|
|
||||||
;; Early init configuration for Emacs Solo
|
|
||||||
;;
|
|
||||||
|
|
||||||
;;; Code:
|
|
||||||
|
|
||||||
|
|
||||||
;; Only care about errors in *Messages* buffer
|
|
||||||
(setq warning-minimum-level :error)
|
|
||||||
|
|
||||||
;; We control when packages are enabled
|
|
||||||
(setq package-enable-at-startup nil)
|
(setq package-enable-at-startup nil)
|
||||||
|
|
||||||
(provide 'early-init)
|
|
||||||
|
|
||||||
;;; early-init.el ends here
|
;; Local Variables:
|
||||||
|
;; no-byte-compile: t
|
||||||
|
;; no-native-compile: t
|
||||||
|
;; no-update-autoloads: t
|
||||||
|
;; End:
|
||||||
|
|
||||||
|
|
|
||||||
1
extra/sunrise-commander
Submodule
1
extra/sunrise-commander
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit cf8305a149a321d028858057e7a7c92f0038a06a
|
||||||
BIN
img/dash_logo.png
Normal file
BIN
img/dash_logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 64 KiB |
16
init.el
16
init.el
|
|
@ -1,12 +1,3 @@
|
||||||
;;; init.el --- Init -*- lexical-binding: t; -*-
|
|
||||||
|
|
||||||
|
|
||||||
;;; Commentary:
|
|
||||||
;;; Load init files
|
|
||||||
|
|
||||||
|
|
||||||
;;; Code:
|
|
||||||
|
|
||||||
;;; Increase garbage collection threshold during init but leave it to the default value after
|
;;; Increase garbage collection threshold during init but leave it to the default value after
|
||||||
;;; There are a LOT of articles/sites/... discussing this:
|
;;; There are a LOT of articles/sites/... discussing this:
|
||||||
;;; https://bling.github.io/blog/2016/01/18/why-are-you-changing-gc-cons-threshold/
|
;;; https://bling.github.io/blog/2016/01/18/why-are-you-changing-gc-cons-threshold/
|
||||||
|
|
@ -20,9 +11,6 @@
|
||||||
(when (file-readable-p my-config-file)
|
(when (file-readable-p my-config-file)
|
||||||
(org-babel-load-file (expand-file-name my-config-file)))
|
(org-babel-load-file (expand-file-name my-config-file)))
|
||||||
|
|
||||||
(load custom-file :no-error-if-file-is-missing)
|
(when (file-readable-p custom-file)
|
||||||
|
(load custom-file))
|
||||||
)
|
)
|
||||||
|
|
||||||
(provide 'init)
|
|
||||||
|
|
||||||
;;; init.el ends here
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
# -*- mode: snippet -*-
|
|
||||||
# name: kaboom
|
|
||||||
# key: kb
|
|
||||||
# --
|
|
||||||
|
|
||||||
char (*__kaboom)[sizeof($1)] = 1;
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- mode: snippet -*-
|
# -*- mode: snippet -*-
|
||||||
# name: Start emacs source block
|
# name: Lisp source code block
|
||||||
# key: se
|
# key: s>
|
||||||
# --
|
# --
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
# -*- mode: snippet -*-
|
|
||||||
# name: Filetags
|
|
||||||
# key: ft
|
|
||||||
# --
|
|
||||||
|
|
||||||
#+FILETAGS: :$1:
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
# -*- mode: snippet -*-
|
# -*- mode: snippet -*-
|
||||||
# name: Org source code block
|
# name: Start emacs source block
|
||||||
# key: s
|
# key: se>
|
||||||
# --
|
# --
|
||||||
|
|
||||||
#+BEGIN_SRC
|
#+BEGIN_SRC emacs-lisp
|
||||||
${1}
|
${1}
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue