* TODO [1/59] Reorganize this file to follow Emacs manual :PROPERTIES: :CREATED: [2026-03-25 Wed 12:28] :ID: 94287925-725f-49da-9c7a-961e1b4189b7 :EDITED: [2026-04-07 Tue 13:42] :END: *** TODO [2/8] Help **** TODO [1/8] Completion ***** TODO [0/1] Company :LOGBOOK: - State "DONE" from "TODO" [2023-07-05 Wed 16:46] :END: #+begin_src elisp :tangle no (use-package company :diminish company-mode :config (defvar company-minimum-prefix-length 3) (defvar company-idle-delay 0) (defvar company-global-modes t) (defvar company-selection-wrap-around t) (defvar company-tooltip-align-annotations t) (defvar company-backends '(( company-capf company-dabbrev-code company-dabbrev company-ispell company-files company-web company-shell company-posframe ))) (global-company-mode) (add-hook 'after-init-hook 'global-company-mode) (add-hook 'after-init-hook 'company-tng-mode) (with-eval-after-load 'company (define-key company-active-map (kbd "M-/") #'company-complete)) (with-eval-after-load 'company (define-key company-active-map (kbd "TAB") #'company-complete-common-or-cycle) (define-key company-active-map (kbd "") (lambda () (interactive) (company-complete-common-or-cycle -1)))) :bind ( ( "" . company-indent-or-complete-common) ( "C-c C-l" . company-other-backend) ) ) #+end_src #+begin_src elisp :tangle no (use-package company-shell :after company :config (add-to-list 'company-backends '(company-shell company-shell-env company-fish-shell ) ) (setq company-transformers '(delete-consecutive-dups company-sort-by-occurrence)) ) #+end_src #+begin_src elisp :tangle no (use-package company-capf :after company :config (add-to-list 'company-backends '(company-capf)) ) #+end_src #+begin_src elisp :tangle no (use-package company-ispell :after company ) (add-to-list 'company-backends '(company-ispell)) #+end_src #+begin_src elisp :tangle no (use-package company-files :after company ) (add-to-list 'company-backends '(company-files)) #+end_src ****** TODO Required for proportional font :LOGBOOK: - State "DONE" from "TODO" [2023-07-05 Wed 16:46] :END: #+begin_src elisp :tangle no (use-package company-posframe :diminish company-posframe-mode :config (company-posframe-mode) ) #+end_src ***** DONE [5/5] [[https://tuhdo.github.io/helm-intro.html][Helm]] :LOGBOOK: - State "DONE" from "NEXT" [2023-08-18 Fri 12:57] :END: ****** CNCL Basic Helm #+begin_src elisp :tangle no (use-package helm :init (helm-mode) :config (defvar helm-M-x-fuzzy-match t) (defvar helm-recentf-fuzzy-match t) (defvar helm-buffers-fuzzy-matching t) (defvar helm-locate-fuzzy-match t) (defvar helm-mode-fuzzy-match t) (defvar helm-split-window-inside-p nil) ; open helm buffer inside current window, not occupy whole other window (defvar helm-lisp-fuzzy-completion t) :bind ( ("M-x" . helm-M-x) ;; Evaluate functions ("C-x C-f" . helm-find-files) ;; Open or create files ("C-x b" . helm-mini) ;; Select buffers ("C-x C-r" . helm-recentf) ;; Select recently saved files ("C-c i" . helm-imenu) ;; Select document heading ("M-y" . helm-show-kill-ring) ;; Show the kill ring (:map helm-map ("C-z" . helm-select-action) ("" . helm-execute-persistent-action)) ) ) #+end_src ****** CNCL Interface to silversearch-ag for fast search among entire folders :LOGBOOK: - State "DONE" from "TODO" [2024-02-12 Mon 16:13] :END: #+begin_src elisp :tangle no (use-package helm-ag) #+end_src ****** CNCL [[https://github.com/emacs-helm/helm-firefox][Display firefox bookmarks with emacs helm interface]] :emacs:web:archive: :PROPERTIES: :TITLE: GitHub - emacs-helm/helm-firefox: Display firefox bookmarks with emacs helm interface :URI: tps://github.com/emacs-helm/helm-firefox :CREATED: [2023-01-28 Sat 09:11] :END: :LOGBOOK: - State "CNCL" from "TODO" [2023-08-18 Fri 12:56] \\ Not using Firefox bookmarks for now. :END: #+begin_src elisp :tangle no (use-package helm-firefox) #+end_src ****** CNCL Allow refiling to level, override Helm to complete refiling target :LOGBOOK: - State "DONE" from "TODO" [2023-07-07 Fri 16:50] :END: #+begin_src elisp :tangle no (setq org-refile-use-outline-path 'file) #+end_src ****** CNCL Shell history :LOGBOOK: - State "DONE" from "TODO" [2023-08-18 Fri 13:01] :END: #+begin_src elisp :tangle no (use-package helm-shell-history) #+end_src ***** TODO [4/5] [[https://kristofferbalintona.me/posts/202202211546/][Vertico, Marginalia, All-the-icons-completion, and Orderless]] :LOGBOOK: - State "DONE" from "DONE" [2024-07-19 Fri 14:12] - State "DONE" from "TODO" [2024-07-19 Fri 13:56] :END: ****** DONE [[https://github.com/minad/vertico][Vertico]] :LOGBOOK: - State "DONE" from "TODO" [2024-07-19 Fri 13:34] :END: #+begin_src elisp (use-package vertico :demand t ; Otherwise won't get loaded immediately :init (vertico-mode) :straight (vertico :files (:defaults "extensions/*") ; Special recipe to load extensions conveniently :includes (vertico-indexed vertico-flat vertico-grid vertico-mouse vertico-quick vertico-buffer vertico-repeat vertico-reverse vertico-directory vertico-multiform vertico-unobtrusive )) :config (setq vertico-cycle t) (setq vertico-count 13) (setq vertico-resize nil) (setq vertico-cycle nil) ;; Extensions (setq vertico-grid-separator " ") (setq vertico-grid-lookahead 50) (setq vertico-buffer-display-action '(display-buffer-reuse-window)) (setq vertico-multiform-categories '((file reverse) (consult-grep buffer) (consult-location) (imenu buffer) (library reverse indexed) (org-roam-node reverse indexed) (t reverse) ) ) (setq vertico-multiform-commands '(("flyspell-correct-*" grid reverse) (org-refile grid reverse indexed) (consult-yank-pop indexed) (consult-flycheck) (consult-lsp-diagnostics) ) ) ;; Extensions (vertico-multiform-mode) :bind (:map vertico-map ("C-j" . vertico-next) ("C-k" . vertico-previous) ("C-f" . vertico-exit) :map minibuffer-local-map ("M-h" . backward-kill-word)) ) #+end_src #+begin_src elisp (use-package savehist :init (savehist-mode) ) #+end_src #+begin_src elisp ;; A few more useful configurations... (use-package emacs :custom ;; Support opening new minibuffers from inside existing minibuffers. (enable-recursive-minibuffers t) ;; Emacs 28 and newer: Hide commands in M-x which do not work in the current ;; mode. Vertico commands are hidden in normal buffers. This setting is ;; useful beyond Vertico. (read-extended-command-predicate #'command-completion-default-include-p) :init ;; Add prompt indicator to `completing-read-multiple'. ;; We display [CRM], e.g., [CRM,] if the separator is a comma. (defun crm-indicator (args) (cons (format "[CRM%s] %s" (replace-regexp-in-string "\\`\\[.*?]\\*\\|\\[.*?]\\*\\'" "" crm-separator) (car args)) (cdr args))) (advice-add #'completing-read-multiple :filter-args #'crm-indicator) ;; Do not allow the cursor in the minibuffer prompt (setq minibuffer-prompt-properties '(read-only t cursor-intangible t face minibuffer-prompt)) (add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)) #+end_src ****** DONE [[https://github.com/minad/marginalia/][Marginalia]] :LOGBOOK: - State "DONE" from "TODO" [2024-07-19 Fri 13:35] :END: #+begin_src elisp (use-package marginalia :init (marginalia-mode) :config (setq marginalia-max-relative-age 0) (setq marginalia-align 'right) :bind (("M-A" . marginalia-cycle) :map minibuffer-local-map ("M-A" . marginalia-cycle)) ) #+end_src ****** DONE [[https://github.com/oantolin/orderless][Orderless]] Seast space separated words with no order. #+begin_src elisp (use-package orderless :config (setq completion-styles '(orderless basic)) (setq completion-category-overrides '((file (styles basic partial-completion)))) ) #+end_src ****** DONE [[https://github.com/minad/consult][Consult]] :LOGBOOK: - State "DONE" from "TODO" [2024-07-19 Fri 13:35] :END: #+begin_src elisp ;; Example configuration for Consult (use-package consult ;; Replace bindings. Lazily loaded by `use-package'. :bind (;; C-c bindings in `mode-specific-map' ("C-c M-x" . consult-mode-command) ("C-c h" . consult-history) ("C-c k" . consult-kmacro) ("C-c m" . consult-man) ("C-c i" . consult-info) ([remap Info-search] . consult-info) ;; C-x bindings in `ctl-x-map' ("C-x M-:" . consult-complex-command) ;; orig. repeat-complex-command ("C-x b" . consult-buffer) ;; orig. switch-to-buffer ("C-x 4 b" . consult-buffer-other-window) ;; orig. switch-to-buffer-other-window ("C-x 5 b" . consult-buffer-other-frame) ;; orig. switch-to-buffer-other-frame ("C-x t b" . consult-buffer-other-tab) ;; orig. switch-to-buffer-other-tab ("C-x r b" . consult-bookmark) ;; orig. bookmark-jump ("C-x p b" . consult-project-buffer) ;; orig. project-switch-to-buffer ;; Custom M-# bindings for fast register access ("M-#" . consult-register-load) ("M-'" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated) ("C-M-#" . consult-register) ;; Other custom bindings ("M-y" . consult-yank-pop) ;; orig. yank-pop ;; M-g bindings in `goto-map' ("M-g e" . consult-compile-error) ("M-g f" . consult-flymake) ;; Alternative: consult-flycheck ("M-g 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 m" . consult-mark) ("M-g k" . consult-global-mark) ("M-g i" . consult-imenu) ("M-g I" . consult-imenu-multi) ;; M-s bindings in `search-map' ("M-s d" . consult-find) ;; Alternative: consult-fd ("M-s c" . consult-locate) ("M-s g" . consult-grep) ("M-s G" . consult-git-grep) ("M-s r" . consult-ripgrep) ("M-s l" . consult-line) ("M-s L" . consult-line-multi) ("M-s k" . consult-keep-lines) ("M-s u" . consult-focus-lines) ;; Isearch integration ("M-s e" . consult-isearch-history) :map isearch-mode-map ("M-e" . consult-isearch-history) ;; orig. isearch-edit-string ("M-s e" . consult-isearch-history) ;; orig. isearch-edit-string ("M-s l" . consult-line) ;; needed by consult-line to detect isearch ("M-s L" . consult-line-multi) ;; needed by consult-line to detect isearch ;; Minibuffer history :map minibuffer-local-map ("M-s" . consult-history) ;; orig. next-matching-history-element ("M-r" . consult-history)) ;; orig. previous-matching-history-element ;; Enable automatic preview at point in the *Completions* buffer. This is ;; relevant when you use the default completion UI. :hook (completion-list-mode . consult-preview-at-point-mode) ;; The :init configuration is always executed (Not lazy) :init ;; Optionally configure the register formatting. This improves the register ;; preview for `consult-register', `consult-register-load', ;; `consult-register-store' and the Emacs built-ins. (setq register-preview-delay 0.5 register-preview-function #'consult-register-format) ;; Optionally tweak the register preview window. ;; This adds thin lines, sorting and hides the mode line of the window. (advice-add #'register-preview :override #'consult-register-window) ;; Use Consult to select xref locations with preview (setq xref-show-xrefs-function #'consult-xref xref-show-definitions-function #'consult-xref) ;; Configure other variables and modes in the :config section, ;; after lazily loading the package. :config ;; Optionally configure preview. The default value ;; is 'any, such that any key triggers the preview. ;; (setq consult-preview-key 'any) ;; (setq consult-preview-key "M-.") ;; (setq consult-preview-key '("S-" "S-")) ;; For some commands and buffer sources it is useful to configure the ;; :preview-key on a per-command basis using the `consult-customize' macro. (consult-customize consult-theme :preview-key '(:debounce 0.2 any) consult-ripgrep consult-git-grep consult-grep consult-bookmark consult-recent-file consult-xref consult--source-bookmark consult--source-file-register consult--source-recent-file consult--source-project-recent-file ;; :preview-key "M-." :preview-key '(:debounce 0.4 any)) ;; Optionally configure the narrowing key. ;; Both < and C-+ work reasonably well. (setq consult-narrow-key "<") ;; "C-+" ;; Optionally make narrowing help available in the minibuffer. ;; You may want to use `embark-prefix-help-command' or which-key instead. ;; (keymap-set consult-narrow-map (concat consult-narrow-key " ?") #'consult-narrow-help) ) #+end_src ****** TODO All the icons completion :LOGBOOK: - State "DONE" from "TODO" [2024-07-19 Fri 13:35] :END: #+begin_src elisp :tangle no (use-package all-the-icons-completion :after (marginalia all-the-icons) :hook (marginalia-mode . all-the-icons-completion-marginalia-setup) :init (all-the-icons-completion-mode) ) #+end_src **** DONE Repeating Minibuffer Commands :LOGBOOK: - State "DONE" from "TODO" [2024-07-24 Wed 11:30] :END: Instead of C-x o, C-x o, C-x o, you can use C-x o o o. #+begin_src elisp (repeat-mode) #+end_src **** DONE Yes or No Prompts :LOGBOOK: - State "DONE" from "TODO" [2024-07-24 Wed 11:30] :END: #+begin_src elisp (defalias 'yes-or-no-p 'y-or-n-p) #+end_src **** TODO [1/11] 10 Help ***** DONE Add ~/org/info to when searching for INFO documentation after Info-mode has started #+begin_src elisp ;; Define the variable globally (outside any hook) (defvar info-additiononal-directory-list nil "List of additional directories to search for Info files.") ;; Set the variable inside the hook (add-hook 'info-mode-hook (lambda () (setq info-additional-directory-list (list (concat org-directory "/info"))) ) ) (global-set-key (kbd "C-c l") #'dictionary-lookup-definition) #+end_src **** TODO [7/29] 18 File Handling ***** TODO 18.20 Filesets ***** DONE Recent files #+begin_src elisp ;; Recentf mode changes (defvar recentf-max-saved-items 1000) (defvar recentf-exclude '("/tmp/" "/ssh:")) (recentf-mode) #+end_src ***** DONE Backup Keep folders clean (create new directory when not yet existing) #+begin_src elisp (make-directory (expand-file-name "backups/" org-directory) t) (setq backup-directory-alist `(("." . ,(expand-file-name "backups/" org-directory)))) #+end_src ***** DONE Save versions :LOGBOOK: - State "DONE" from "TODO" [2023-07-05 Wed 14:10] :END: I am not sure if I will end up using this or git, but here we are for now #+begin_src elisp (setq delete-old-versions -1) (setq version-control t) (setq vc-make-backup-files t) (setq auto-save-file-name-transforms '((".*" "~/.emacs.d/auto-save-list/" t))) #+end_src ***** DONE Auto saving Away from my file tree #+begin_src elisp (setq auto-save-file-name-transforms `((".*" ,temporary-file-directory t)) create-lockfiles nil) #+end_src ***** DONE Large file warning :LOGBOOK: - State "DONE" from "TODO" [2024-07-19 Fri 15:11] :END: #+begin_src elisp (setq large-file-warning-threshold (* 15 1024 1024)) #+end_src ***** DONE Move deleted files to trash :LOGBOOK: - State "DONE" from "TODO" [2024-07-19 Fri 15:15] :END: #+begin_src elisp (setq delete-by-moving-to-trash t) #+end_src ***** DONE [[https://github.com/magit/magit][Magit]] :PROPERTIES: :CREATED: [2023-01-29 Sun 10:12] :CLOSED: [2023-02-01 Wed 21:58] :END: :LOGBOOK: - State "DONE" from "TODO" [2024-07-19 Fri 15:15] :END: #+begin_src elisp (use-package magit) #+end_src ***** TODO [[https://github.com/DerBeutlin/filetags.el][Filetags: manage filetags in the filename]] :PROPERTIES: :TITLE: Filetags: Emacs package to manage filetags in the filename :URI: https://github.com/DerBeutlin/filetags.el :CREATED: [2023-01-28 Sat 08:58] :END: :LOGBOOK: - State "DONE" from "TODO" [2023-07-12 Wed 12:43] :END: #+begin_src elisp :tangle no (use-package filetags :config (setq filetags-enforce-controlled-vocabulary nil) (setq filetags-controlled-vocabulary '(("winter" "summer") ("emacs"))) (setq filetags-load-controlled-vocabulary-from-file nil) ) #+end_src ***** TODO [[https://github.com/joostkremers/pandoc-mode][pandoc-mode]] :PROPERTIES: :TITLE: GitHub - joostkremers/pandoc-mode: An Emacs minor mode for interacting with Pandoc. :URI: https://github.com/joostkremers/pandoc-mode :CREATED: [2023-01-29 Sun 10:20] :END: :LOGBOOK: - State "DONE" from "TODO" [2023-08-18 Fri 13:04] - State "DONE" from "WAIT" [2023-07-07 Fri 15:00] - State "DONE" from "TODO" [2023-07-07 Fri 14:53] :END: #+begin_src elisp :tangle no (use-package pandoc-mode :after hydra :config (add-hook 'markdown-mode-hook 'pandoc-mode) ;; Pandoc minor mode in markdown (add-hook 'pandoc-mode-hook 'pandoc-load-default-settings) ;; if a settings file for this format exists ) #+end_src ****** DONE Install [[https://pandoc.org/index.html][Pandoc - index]] CLOSED: [2023-01-31 Tue 05:11] :PROPERTIES: :CREATED: [2023-01-29 Sun 10:15] :CLOSED: [2023-01-31 Tue 05:11] :END: **** TODO [3/9] Buffers ***** TODO [1/2] Icons :LOGBOOK: - State "DONE" from "TODO" [2024-07-09 Tue 17:08] :END: ****** DONE [[https://github.com/domtronn/all-the-icons.el][all-the-icons.el]] :LOGBOOK: - State "DONE" from "TODO" [2024-07-19 Fri 14:01] - State "DONE" from "TODO" [2024-06-27 Thu 11:02] - State "DONE" from "TODO" [2023-08-28 Mon 18:55] - State "DONE" from "DONE" [2023-08-18 Fri 12:31] :END: #+begin_src elisp (use-package all-the-icons :if (display-graphic-p) ) #+end_src ****** TODO [0/4] all-the-icons Mode Line :LOGBOOK: - State "DONE" from "TODO" [2024-07-09 Tue 17:07] - State "DONE" from "TODO" [2024-07-09 Tue 15:57] - State "DONE" from "TODO" [2023-08-28 Mon 18:54] :END: #+begin_src elisp :tangle no (setq mode-line-format '("%e" (:eval (concat (custom-modeline-modified) (custom-modeline-region-info) (custom-modeline-flycheck-status) (custom-modeline-icon-vc) ) ) ) ) #+end_src ******* TODO Modified or read only :LOGBOOK: - State "DONE" from "TODO" [2024-06-27 Thu 11:15] :END: #+begin_src elisp :tangle no (defun custom-modeline-modified () (let* ((config-alist '( ("*" all-the-icons-faicon-family all-the-icons-faicon "chain-broken" :height 1.2 :v-adjust -0.0) ("-" all-the-icons-faicon-family all-the-icons-faicon "link" :height 1.2 :v-adjust -0.0) ("%" all-the-icons-octicon-family all-the-icons-octicon "lock" :height 1.2 :v-adjust 0.1) ) ) (result (cdr (assoc (format-mode-line "%*") config-alist))) ) (propertize (apply (cadr result) (cddr result)) 'face `(:family ,(funcall (car result))) ) ) ) #+end_src ******* TODO Region marking :LOGBOOK: - State "DONE" from "TODO" [2024-06-27 Thu 11:15] - State "DONE" from "TODO" [2023-08-18 Fri 12:16] :END: #+begin_src elisp :tangle no (defun custom-modeline-region-info () (when mark-active (let ((words (count-lines (region-beginning) (region-end))) (chars (count-words (region-end) (region-beginning)))) (concat (propertize (format " %s" (all-the-icons-octicon "pencil") words chars) 'face `(:family ,(all-the-icons-octicon-family)) 'display '(raise -0.0)) (propertize (format " (%s, %s)" words chars) 'face `(:height 0.9)))))) #+end_src ******* TODO Version control icon :LOGBOOK: - State "DONE" from "TODO" [2024-06-27 Thu 11:15] - State "DONE" from "TODO" [2023-08-18 Fri 12:16] - State "DONE" from "TODO" [2023-07-07 Fri 12:17] :END: #+begin_src elisp :tangle no (defun -custom-modeline-github-vc () (let ((branch (mapconcat 'concat (cdr (split-string vc-mode "[:-]")) "-"))) (concat (propertize (format " %s" (all-the-icons-alltheicon "git")) 'face `(:height 1.2) 'display '(raise -0.1)) " · " (propertize (format "%s" (all-the-icons-octicon "git-branch")) 'face `(:height 1.3 :family ,(all-the-icons-octicon-family)) 'display '(raise -0.1)) (propertize (format " %s" branch) 'face `(:height 0.9))))) (defun -custom-modeline-svn-vc () (let ((revision (cadr (split-string vc-mode "-")))) (concat (propertize (format " %s" (all-the-icons-faicon "cloud")) 'face `(:height 1.2) 'display '(raise -0.1)) (propertize (format " · %s" revision) 'face `(:height 0.9))))) (defun custom-modeline-icon-vc () (when vc-mode (cond ((string-match "Git[:-]" vc-mode) (-custom-modeline-github-vc)) ((string-match "SVN-" vc-mode) (-custom-modeline-svn-vc)) (t (format "%s" vc-mode))))) #+end_src ******* TODO Flycheck checker information :LOGBOOK: - State "DONE" from "TODO" [2024-06-27 Thu 11:16] - State "DONE" from "TODO" [2023-08-18 Fri 11:49] :END: #+begin_src elisp :tangle no (defun custom-modeline-flycheck-status () (let* ((text (pcase flycheck-last-status-change (`finished (if flycheck-current-errors (let ((count (let-alist (flycheck-count-errors flycheck-current-errors) (+ (or .warning 0) (or .error 0))))) (format "✖ %s Issue%s" count (unless (eq 1 count) "s"))) "✔ No Issues")) (`running "⟲ Running") (`no-checker "⚠ No Checker") (`not-checked "✖ Disabled") (`errored "⚠ Error") (`interrupted "⛔ Interrupted") (`suspicious "")))) (propertize text 'help-echo "Show Flycheck Errors" 'mouse-face '(:box 1) 'local-map (make-mode-line-mouse-map 'mouse-1 (lambda () (interactive) (flycheck-list-errors)))))) #+end_src ***** TODO Scroll to the first and last line of the buffer #+begin_src elisp :tangle no (setq scroll-error-top-bottom t) #+end_src ***** DONE Narrow to region #+begin_src elisp (put 'narrow-to-region 'disabled nil) #+end_src ***** DONE Paragraph text wrapping #+begin_src elisp (setq global-visual-line-mode t) #+end_src ***** TODO Increase line spacing #+begin_src elisp :tangle no (setq line-spacing 6) #+end_src ***** TODO RTL Support :LOGBOOK: - State "DONE" from "TODO" [2023-07-05 Wed 12:19] :END: For a correct RTL display you can add the following snippet to your init file: #+begin_src elisp :tangle no (defun set-bidi-env () (interactive) (setq bidi-paragraph-direction 'nil) ) (add-hook 'org-mode-hook 'set-bidi-env) #+end_src ***** TODO File encoding system #+begin_src elisp :tangle no (prefer-coding-system 'utf-8) (setq buffer-file-coding-system 'utf-8-auto-unix) #+end_src ***** DONE Overwrite selected text #+begin_src elisp (delete-selection-mode t) #+end_src ***** TODO Expand region :LOGBOOK: - State "DONE" from "NEXT" [2023-08-03 Thu 13:11] :END: #+begin_src elisp :tangle no (use-package expand-region :bind ("C-=" . er/expand-region) ) #+end_src **** TODO [3/22] 21 Frames and Graphical Displays ***** TODO 21.1 Mouse Commands for Editing ***** TODO 21.2 Mouse Commands for Words and Lines ***** TODO 21.3 Following References with the Mouse ***** TODO 21.4 Mouse Clicks for Menus ***** TODO 21.5 Mode Line Mouse Commands ***** TODO 21.6 Creating Frames ***** TODO 21.7 Frame Commands ***** TODO 21.8 Fonts ***** TODO 21.9 Speedbar Frames ***** TODO 21.10 Multiple Displays ***** TODO 21.11 Frame Parameters ***** DONE 21.12 Scroll Bars :LOGBOOK: - State "DONE" from "TODO" [2024-07-29 Mon 16:50] :END: #+begin_src elisp (when window-system (scroll-bar-mode 0) ) #+end_src ***** TODO 21.13 Window Dividers ***** TODO 21.14 Drag and Drop ***** DONE 21.15 Menu Bars :LOGBOOK: - State "DONE" from "TODO" [2024-07-29 Mon 16:49] :END: #+begin_src elisp (when window-system (menu-bar-mode 0) ) #+end_src ***** DONE 21.16 Tool Bars :LOGBOOK: - State "DONE" from "TODO" [2024-07-29 Mon 16:49] :END: #+begin_src elisp (when window-system (tool-bar-mode 0) ) #+end_src ***** TODO 21.17 Tab Bars ***** TODO 21.18 Using Dialog Boxes ***** TODO 21.19 Tooltips ***** TODO 21.20 Mouse Avoidance ***** TODO 21.21 Non-Window Terminals ***** TODO 21.22 Using a Mouse in Text Terminals **** DONE [7/7] Frames :LOGBOOK: - State "DONE" from "TODO" [2024-07-20 Sat 11:07] :END: ***** DONE Set the initial frame size and position :LOGBOOK: - State "DONE" from "TODO" [2024-07-20 Sat 11:03] - State "DONE" from "TODO" [2024-07-08 Mon 22:11] :END: #+begin_src elisp ;; initial frame (setq initial-frame-alist '((width . 192) ; characters in a line (height . 37) ; number of lines (top . 1) ; top position (left . 1) ; left position ) ) ;; sebsequent frame (setq default-frame-alist '((width . 192) ; characters in a line (height . 37) ; number of lines ) ) #+end_src ***** DONE Set frame margins to zero, window margins to zero #+begin_src elisp (modify-all-frames-parameters '((internal-border-width . 0))) #+end_src ***** DONE Initial screen :LOGBOOK: - State "DONE" from "TODO" [2024-07-19 Fri 13:59] :END: #+begin_src elisp (setq inhibit-splash-screen t) (setq inhibit-startup-message t) (setq initial-scratch-message "") (setq initial-major-mode 'org-mode) #+end_src ***** DONE Startup echo message #+begin_src elisp (defun display-startup-echo-area-message () "Display a welcome message." (message "Ladies and gentlemen, we are floating in space!") ) #+end_src ***** DONE [[https://protesilaos.com/emacs/ef-themes][Theme]] :LOGBOOK: - State "DONE" from "TODO" [2024-07-16 Tue 19:50] - State "DONE" from "TODO" [2024-07-10 Wed 17:06] :END: #+begin_src elisp ;; Make customisations that affect Emacs faces BEFORE loading a theme ;; (any change needs a theme re-load to take effect). ;; (require 'ef-themes) (use-package ef-themes :config ;; If you like two specific themes and want to switch between them, you ;; can specify them in `ef-themes-to-toggle' and then invoke the command ;; `ef-themes-toggle'. All the themes are included in the variable ;; `ef-themes-collection'. (defvar ef-themes-to-toggle '(ef-summer ef-winter)) (defvar ef-themes-headings ; read the manual's entry or the doc string '((0 variable-pitch light 1.9) (1 variable-pitch light 1.8) (2 variable-pitch regular 1.7) (3 variable-pitch regular 1.6) (4 variable-pitch regular 1.5) (5 variable-pitch 1.4) ; absence of weight means `bold' (6 variable-pitch 1.3) (7 variable-pitch 1.2) (t variable-pitch 1.1))) ;; They are nil by default... (defvar ef-themes-mixed-fonts t) (defvar ef-themes-variable-pitch-ui t) ;; Disable all other themes to avoid awkward blending: (mapc #'disable-theme custom-enabled-themes) ;; Load the theme of choice: (load-theme 'ef-winter :no-confirm) ;; OR use this to load the theme which also calls `ef-themes-post-load-hook': (ef-themes-select 'ef-winter) ;; The themes we provide are recorded in the `ef-themes-dark-themes', ;; `ef-themes-light-themes'. ;; We also provide these commands, but do not assign them to any key: ;; ;; - `ef-themes-toggle' ;; - `ef-themes-select' ;; - `ef-themes-select-dark' ;; - `ef-themes-select-light' ;; - `ef-themes-load-random' ;; - `ef-themes-preview-colors' ;; - `ef-themes-preview-colors-current' ) #+end_src ***** DONE Set the cursor shape and blinking :LOGBOOK: - State "DONE" from "TODO" [2024-07-20 Sat 11:05] :END: #+begin_src elisp (setq-default cursor-type '(box . 1)) ; Bar cursor (blink-cursor-mode -1) ; Don't blink the cursor #+end_src **** TODO [9/10] Windows :LOGBOOK: - State "DONE" from "DONE" [2024-07-16 Tue 20:04] :END: ***** DONE Save windows arrangement #+begin_src elisp (when (fboundp 'winner-mode) (winner-mode t) ) #+end_src ***** DONE Switch to other-window :LOGBOOK: - State "DONE" from "TODO" [2024-07-16 Tue 20:04] :END: #+begin_src elisp (use-package ace-window :config (defvar aw-dispatch-always nil) ; works for less than three buffers :bind ("M-o" . ace-window) ) #+end_src ***** DONE Neotree :LOGBOOK: - State "DONE" from "TODO" [2024-07-19 Fri 15:22] - State "DONE" from "TODO" [2023-07-05 Wed 16:48] :END: #+begin_src elisp (use-package neotree :init (defvar neo-smart-open t) :config (defvar neo-theme (if (display-graphic-p) 'icons 'arrow)) ) #+end_src ***** DONE Tab Line :LOGBOOK: - State "DONE" from "TODO" [2024-07-16 Tue 19:51] :END: #+begin_src elisp (global-tab-line-mode) #+end_src ***** DONE [3/3] Mode Line :LOGBOOK: - State "DONE" from "TODO" [2024-07-20 Sat 11:10] - State "DONE" from "DONE" [2024-07-09 Tue 17:08] :END: ****** DONE Basic settings #+begin_src elisp (use-package mood-line ;; Enable mood-line :config (mood-line-mode) ;; Use pretty Fira Code-compatible glyphs (defvar mood-line-glyph-alist mood-line-glyphs-fira-code) ) #+end_src ****** DONE [3/3] Format :LOGBOOK: - State "DONE" from "TODO" [2024-07-19 Fri 15:26] :END: ******** DONE Default format #+begin_src elisp ;; Default format: ;; * init.el 4:32 Top ELisp ! Issues: 2 (defvar mood-line-format mood-line-format-default) #+end_src ******** CNCL Extended format #+begin_src elisp :tangle no ;; Extended format: ;; * init.el 4:32:52 Top SPCx2 LF UTF-8 ELisp ! Issues: 2 (defvar mood-line-format mood-line-format-default-extended) #+end_src ******** CNCL Custom format #+begin_src elisp :tangle no ;; Custom format: ;; * init.el : ELisp Top 4:32 | ! Issues: 2 (setq mood-line-format (mood-line-defformat :left (((mood-line-segment-buffer-status) . " ") ((mood-line-segment-buffer-name) . " : ") (mood-line-segment-major-mode)) :right (((mood-line-segment-scroll) . " ") ((mood-line-segment-cursor-position) . " ") ((when (mood-line-segment-checker) "|") . " ") ((mood-line-segment-checker) . " ")))) #+end_src ****** DONE [3/3] Glyphs ******** CNCL Default glyphs #+begin_src elisp :tangle no ;; The default set of glyphs: ;; * myModifiedFile.js Replace*3 + main JavaScript ! Issues: 2 (defvar mood-line-glyph-alist mood-line-glyphs-ascii) #+end_src ******** CNCL Fira Code-compatible Unicode glyphs #+begin_src elisp :tangle no ;; A set of Fira Code-compatible Unicode glyphs: ;; ● myModifiedFile.js Replace×3 + main JavaScript → Issues: 2 (setq mood-line-glyph-alist mood-line-glyphs-fira-code) #+end_src ******** DONE Unicode glyphs #+begin_src elisp ;; A set of Unicode glyphs: ;; ● myModifiedFile.js Replace✕3 🞤 main JavaScript ⚑ Issues: 2 (defvar mood-line-glyph-alist mood-line-glyphs-unicode) #+end_src ***** CNCL Add clock :LOGBOOK: - State "DONE" from "TODO" [2023-07-05 Wed 16:48] :END: Modify this later to show clock only in full-screen mode #+begin_src elisp :tangle no (display-time-mode nil) #+end_src ***** DONE [[https://github.com/emacsmirror/diminish][Diminish]] minor modes from the mode line :LOGBOOK: - State "DONE" from "NEXT" [2023-08-03 Thu 13:05] :END: #+begin_src elisp (use-package diminish :demand t :diminish (visual-line-mode . "ω") :diminish abbrev-mode :diminish auto-fill-function ) #+end_src ***** DONE [[https://github.com/justbur/emacs-which-key][Which-key]] Figure out the next keystroke. which-key package opens a small buffer at the bottom with suggestions for next keystroke and possible commands that are available #+begin_src elisp (use-package which-key :config (defvar which-key-sort-order 'which-key-key-order-alpha) (defvar which-key-idle-delay 0.05) (which-key-mode) (which-key-setup-minibuffer) (which-key-setup-side-window-right) ) #+end_src **** TODO [0/19] 22 International Character Set Support ***** TODO 22.1 Introduction to International Character Sets ***** TODO 22.2 Language Environments ***** TODO 22.3 Input Methods ***** TODO 22.4 Selecting an Input Method ***** TODO 22.5 Coding Systems ***** TODO 22.6 Recognizing Coding Systems ***** TODO 22.7 Specifying a File’s Coding System ***** TODO 22.8 Choosing Coding Systems for Output ***** TODO 22.9 Specifying a Coding System for File Text ***** TODO 22.10 Coding Systems for Interprocess Communication ***** TODO 22.11 Coding Systems for File Names ***** TODO 22.12 Coding Systems for Terminal I/O ***** TODO 22.13 Fontsets ***** TODO 22.14 Defining Fontsets ***** TODO 22.15 Modifying Fontsets ***** TODO 22.16 Undisplayable Characters ***** TODO 22.17 Unibyte Editing Mode ***** TODO 22.18 Charsets ***** TODO 22.19 Bidirectional Editing **** TODO [0/2] International ***** TODO [0/1] Fonts :LOGBOOK: - State "DONE" from [2023-08-22 Tue 11:10] :END: #+begin_src elisp (set-face-attribute 'default nil :font "Cantarell") ;; default font ; (set-fontset-font t nil "sans-serif" nil 'append) ;; fallback font (set-face-attribute 'fixed-pitch nil :family "Monospace") ; (set-fontset-font t 'arabic "Amiri") ;; default Arabic font ; (set-fontset-font t 'arabic "Simplified Arabic" nil 'append) ;; default Arabic fallback ; (set-fontset-font t 'arabic (font-spec :script 'arabic) nil 'append) ;; if font not available, don't display boxes #+end_src ***** TODO [[https://github.com/rolandwalker/unicode-fonts][Unicode Fonts]] [[https://www.emacswiki.org/emacs/UnicodeFonts][EmacsWiki]]: If you are using a language written in Chinese or Arabic script, try customizing ‘unicode-fonts-skip-font-groups’ to control which script you see, and send a friendly bug report. #+begin_src elisp :tangle no (use-package unicode-fonts :config (defvar unicode-fonts-block-font-mapping '(("Emoticons" ("Apple Color Emoji" "Symbola" "Quivira")))) (defvar unicode-fonts-fontset-names '("fontset-default")) (defvar unicode-skip-font-groups '("")) (unicode-fonts-setup) ) #+end_src **** TODO [1/4] 23 Major and Minor Modes ***** TODO 23.1 Major Modes ***** TODO 23.2 Minor Modes ***** TODO 23.3 Choosing File Modes ***** CNCL Discover major mode :LOGBOOK: - State "CNCL" from "DONE" [2024-07-10 Wed 11:30] \\ Not needed - State "DONE" from "TODO" [2023-07-05 Wed 16:48] :END: #+begin_src elisp :tangle no (use-package discover-my-major :bind (("C-h C-m" . discover-my-major) ("C-h M-m" . discover-my-mode) ) ) #+end_src **** TODO [0/4] 24 Indentation ***** TODO 24.1 Indentation Commands ***** TODO 24.2 Tab Stops ***** TODO 24.3 Tabs vs. Spaces ***** TODO 24.4 Convenience Features for Indentation **** TODO [0/16] 25 Commands for Human Languages ***** TODO 25.1 Words ***** TODO 25.2 Sentences ***** TODO 25.3 Paragraphs ***** TODO 25.4 Pages ***** TODO 25.5 Quotation Marks ***** TODO [0/4] 25.6 Filling Text ****** TODO 25.6.1 Auto Fill Mode ****** TODO 25.6.2 Explicit Fill Commands ****** TODO 25.6.3 The Fill Prefix ****** TODO 25.6.4 Adaptive Filling ***** TODO 25.7 Case Conversion Commands ***** TODO 25.8 Text Mode ***** TODO [0/5] 25.9 Outline Mode ****** TODO 25.9.1 Format of Outlines ****** TODO 25.9.2 Outline Motion Commands ****** TODO 25.9.3 Outline Visibility Commands ****** TODO 25.9.4 Viewing One Outline in Multiple Views ****** TODO 25.9.5 Folding Editing ***** TODO [0/2] 25.10 Org Mode ****** TODO 25.10.1 Org as an organizer ****** TODO 25.10.2 Org as an authoring system ***** TODO [0/4] 25.11 TeX Mode ****** TODO 25.11.1 TeX Editing Commands ****** TODO 25.11.2 LaTeX Editing Commands ****** TODO 25.11.3 TeX Printing Commands ****** TODO 25.11.4 TeX Mode Miscellany ***** TODO 25.12 SGML and HTML Modes ***** TODO 25.13 Nroff Mode ***** TODO [0/7] 25.14 Enriched Text ****** TODO 25.14.1 Enriched Mode ****** TODO 25.14.2 Hard and Soft Newlines ****** TODO 25.14.3 Editing Format Information ****** TODO 25.14.4 Faces in Enriched Text ****** TODO 25.14.5 Indentation in Enriched Text ****** TODO 25.14.6 Justification in Enriched Text ****** TODO 25.14.7 Setting Other Text Properties ***** TODO [0/8] 25.15 Editing Text-based Tables ****** TODO 25.15.1 What is a Text-based Table? ****** TODO 25.15.2 Creating a Table ****** TODO 25.15.3 Table Recognition ****** TODO 25.15.4 Commands for Table Cells ****** TODO 25.15.5 Cell Justification ****** TODO 25.15.6 Table Rows and Columns ****** TODO 25.15.7 Converting Between Plain Text and Tables ****** TODO 25.15.8 Table Miscellany ***** TODO 25.16 Two-Column Editing **** TODO [0/14] 26 Editing Programs ***** TODO 26.1 Major Modes for Programming Languages ***** TODO [0/4] 26.2 Top-Level Definitions, or Defuns ****** TODO 26.2.1 Left Margin Convention ****** TODO 26.2.2 Moving by Defuns ****** TODO 26.2.3 Imenu ****** TODO 26.2.4 Which Function Mode ***** TODO [0/5] 26.3 Indentation for Programs ****** TODO 26.3.1 Basic Program Indentation Commands ****** TODO 26.3.2 Indenting Several Lines ****** TODO 26.3.3 Customizing Lisp Indentation ****** TODO 26.3.4 Commands for C Indentation ****** TODO 26.3.5 Customizing C Indentation ***** TODO [0/3] 26.4 Commands for Editing with Parentheses ****** TODO 26.4.1 Expressions with Balanced Parentheses ****** TODO 26.4.2 Moving in the Parenthesis Structure ****** TODO 26.4.3 Matching Parentheses ***** TODO [0/3] 26.5 Manipulating Comments ****** TODO 26.5.1 Comment Commands ****** TODO 26.5.2 Multiple Lines of Comments ****** TODO 26.5.3 Options Controlling Comments ***** TODO [0/3] 26.6 Documentation Lookup ****** TODO 26.6.1 Info Documentation Lookup ****** TODO 26.6.2 Man Page Lookup ****** TODO 26.6.3 Emacs Lisp Documentation Lookup ***** TODO 26.7 Hideshow minor mode ***** TODO 26.8 Completion for Symbol Names ***** TODO 26.9 MixedCase Words ***** TODO 26.10 Semantic ***** TODO 26.11 Other Features Useful for Editing Programs ***** TODO [0/4] 26.12 C and Related Modes ****** TODO 26.12.1 C Mode Motion Commands ****** TODO 26.12.2 Electric C Characters ****** TODO 26.12.3 Hungry Delete Feature in C ****** TODO 26.12.4 Other Commands for C Mode ***** TODO 26.13 Asm Mode ***** TODO [0/6] 26.14 Fortran Mode ****** TODO 26.14.1 Motion Commands ****** TODO [0/5] 26.14.2 Fortran Indentation ******* TODO 26.14.2.1 Fortran Indentation and Filling Commands ******* TODO 26.14.2.2 Continuation Lines ******* TODO 26.14.2.3 Line Numbers ******* TODO 26.14.2.4 Syntactic Conventions ******* TODO 26.14.2.5 Variables for Fortran Indentation ****** TODO 26.14.3 Fortran Comments ****** TODO 26.14.4 Auto Fill in Fortran Mode ****** TODO 26.14.5 Checking Columns in Fortran ****** TODO 26.14.6 Fortran Keyword Abbrevs **** TODO [0/11] 27 Compiling and Testing Programs ***** TODO 27.1 Running Compilations under Emacs ***** TODO 27.2 Compilation Mode ***** TODO 27.3 Subshells for Compilation ***** TODO 27.4 Searching with Grep under Emacs ***** TODO 27.5 Finding Syntax Errors On The Fly ***** TODO [0/5] 27.6 Running Debuggers Under Emacs ****** TODO 27.6.1 Starting GUD ****** TODO 27.6.2 Debugger Operation ****** TODO 27.6.3 Commands of GUD ****** TODO 27.6.4 GUD Customization ****** TODO [0/8] 27.6.5 GDB Graphical Interface ******* TODO 27.6.5.1 GDB User Interface Layout ******* TODO 27.6.5.2 Source Buffers ******* TODO 27.6.5.3 Breakpoints Buffer ******* TODO 27.6.5.4 Threads Buffer ******* TODO 27.6.5.5 Stack Buffer ******* TODO 27.6.5.6 Other GDB Buffers ******* TODO 27.6.5.7 Watch Expressions ******* TODO 27.6.5.8 Multithreaded Debugging ***** TODO 27.7 Executing Lisp Expressions ***** TODO 27.8 Libraries of Lisp Code for Emacs ***** TODO 27.9 Evaluating Emacs Lisp Expressions ***** TODO 27.10 Lisp Interaction Buffers ***** TODO 27.11 Running an External Lisp **** TODO [0/7] 28 Maintaining Large Programs ***** TODO [0/13] 28.1 Version Control ****** TODO [0/7] 28.1.1 Introduction to Version Control ******* TODO 28.1.1.1 Understanding the Problems it Addresses ******* TODO 28.1.1.2 Supported Version Control Systems ******* TODO 28.1.1.3 Concepts of Version Control ******* TODO 28.1.1.4 Merge-based vs Lock-based Version Control ******* TODO 28.1.1.5 Changeset-based vs File-based Version Control ******* TODO 28.1.1.6 Decentralized vs Centralized Repositories ******* TODO 28.1.1.7 Types of Log File ****** TODO 28.1.2 Version Control and the Mode Line ****** TODO [0/3] 28.1.3 Basic Editing under Version Control ******* TODO 28.1.3.1 Basic Version Control with Merging ******* TODO 28.1.3.2 Basic Version Control with Locking ******* TODO 28.1.3.3 Advanced Control in C-x v v ****** TODO 28.1.4 Features of the Log Entry Buffer ****** TODO 28.1.5 Registering a File for Version Control ****** TODO 28.1.6 Examining And Comparing Old Revisions ****** TODO 28.1.7 VC Change Log ****** TODO 28.1.8 Undoing Version Control Actions ****** TODO 28.1.9 Ignore Version Control Files ****** TODO [0/2] 28.1.10 VC Directory Mode ******* TODO 28.1.10.1 The VC Directory Buffer ******* TODO 28.1.10.2 VC Directory Commands ****** TODO [0/4] 28.1.11 Version Control Branches ******* TODO 28.1.11.1 Switching between Branches ******* TODO 28.1.11.2 Pulling/Pushing Changes into/from a Branch ******* TODO 28.1.11.3 Merging Branches ******* TODO 28.1.11.4 Creating New Branches ****** TODO [0/4] 28.1.12 Miscellaneous Commands and Features of VC ******* TODO 28.1.12.1 Change Logs and VC ******* TODO 28.1.12.2 Deleting and Renaming Version-Controlled Files ******* TODO 28.1.12.3 Revision Tags ******* TODO 28.1.12.4 Inserting Version Control Headers ****** TODO [0/3] 28.1.13 Customizing VC ******* TODO 28.1.13.1 General Options ******* TODO 28.1.13.2 Options for RCS and SCCS ******* TODO 28.1.13.3 Options specific for CVS ***** TODO [0/4] 28.2 Working with Projects ****** TODO 28.2.1 Project Commands That Operate on Files ****** TODO 28.2.2 Project Commands That Operate on Buffers ****** TODO 28.2.3 Switching Projects ****** TODO 28.2.4 Managing the Project List File ***** TODO [0/2] 28.3 Change Logs ****** TODO 28.3.1 Change Log Commands ****** TODO 28.3.2 Format of ChangeLog ***** TODO [0/3] 28.4 Find Identifier References ****** TODO [0/4] 28.4.1 Find Identifiers ******* TODO 28.4.1.1 Looking Up Identifiers ******* TODO 28.4.1.2 Commands Available in the *xref* Buffer ******* TODO 28.4.1.3 Searching and Replacing with Identifiers ******* TODO 28.4.1.4 Identifier Inquiries ****** TODO [0/3] 28.4.2 Tags Tables ******* TODO 28.4.2.1 Source File Tag Syntax ******* TODO 28.4.2.2 Creating Tags Tables ******* TODO 28.4.2.3 Etags Regexps ****** TODO 28.4.3 Selecting a Tags Table ***** TODO 28.5 Emacs Development Environment ***** TODO [0/7] 28.6 Merging Files with Emerge ****** TODO 28.6.1 Overview of Emerge ****** TODO 28.6.2 Submodes of Emerge ****** TODO 28.6.3 State of a Difference ****** TODO 28.6.4 Merge Commands ****** TODO 28.6.5 Exiting Emerge ****** TODO 28.6.6 Combining the Two Versions ****** TODO 28.6.7 Fine Points of Emerge ***** TODO 28.7 Bug Reference **** TODO [0/8] 29 Abbrevs ***** TODO 29.1 Abbrev Concepts ***** TODO 29.2 Defining Abbrevs ***** TODO 29.3 Controlling Abbrev Expansion ***** TODO 29.4 Abbrevs Suggestions ***** TODO 29.5 Examining and Editing Abbrevs ***** TODO 29.6 Saving Abbrevs ***** TODO 29.7 Dynamic Abbrev Expansion ***** TODO 29.8 Customizing Dynamic Abbreviation **** TODO [0/22] 30 Dired, the Directory Editor ***** TODO 30.1 Entering Dired ***** TODO 30.2 Navigation in the Dired Buffer ***** TODO 30.3 Deleting Files with Dired ***** TODO 30.4 Flagging Many Files at Once ***** TODO 30.5 Visiting Files in Dired ***** TODO 30.6 Dired Marks vs. Flags ***** TODO 30.7 Operating on Files ***** TODO 30.8 Shell Commands in Dired ***** TODO 30.9 Transforming File Names in Dired ***** TODO 30.10 File Comparison with Dired ***** TODO 30.11 Subdirectories in Dired ***** TODO 30.12 Subdirectory Switches in Dired ***** TODO 30.13 Moving Over Subdirectories ***** TODO 30.14 Hiding Subdirectories ***** TODO 30.15 Updating the Dired Buffer ***** TODO 30.16 Dired and find ***** TODO 30.17 Editing the Dired Buffer ***** TODO 30.18 Viewing Image Thumbnails in Dired ***** TODO 30.19 Other Dired Features ***** TODO Basic settings #+begin_src elisp :tangle no (use-package dired :init (setq dired-dwim-target t) (setq dired-recursive-copies 'top) (setq dired-recursive-deletes 'top) (setq dired-listing-switches "-alh") (setq dired-listing-switches "-agho --group-directories-first") ; Sort Dired buffers (setq dired-dwim-target t) ; Copy and move files netween dired buffers :config (add-hook 'dired-mode-hook 'dired-hide-details-mode) (add-hook 'dired-mode-hook 'all-the-icons-dired-mode) :bind (:map dired-mode-map ("C-c C-e" . wdired-change-to-wdired-mode)) ) #+end_src ***** TODO Images in dired #+begin_src elisp :tangle no ;; Image-dired Keyboard shortcuts (with-eval-after-load 'dired (define-key dired-mode-map (kbd "C-t C-d") 'image-dired) (define-key dired-mode-map (kbd "C-") 'image-dired-dired-display-external) ) (setq image-dired-external-viewer "/usr/bin/gimp") ; Define external image viewer/edito (put 'dired-find-alternate-file 'disabled nil) ; Open dired in same buffer #+end_src ***** TODO Icons in dired #+begin_src elisp :tangle no (use-package all-the-icons-dired :after dired all-the-icons :if (display-graphic-p) ) #+end_src ***** TODO [[https://github.com/DerBeutlin/date2name.el][Date2name: add ISO timestamps to files in dired]] :PROPERTIES: :TITLE: GitHub - DerBeutlin/date2name.el: Emacs package to add ISO timestamps to files in dired :URI: https://github.com/DerBeutlin/date2name.el :CREATED: [2023-01-28 Sat 06:20] :END: :LOGBOOK: - State "DONE" from "TODO" [2023-07-12 Wed 12:44] :END: #+begin_src elisp :tangle no (use-package date2name) #+end_src **** TODO [0/4] 37 Document Viewing ***** TODO 37.3 DocView Slicing #+begin_src elisp (setq doc-view-continuous t) #+end_src