aboutsummaryrefslogtreecommitdiff
path: root/.emacs.local.d
diff options
context:
space:
mode:
Diffstat (limited to '.emacs.local.d')
-rw-r--r--.emacs.local.d/general.el180
-rw-r--r--.emacs.local.d/lisp/config/rul-config-elfeed.el2
-rw-r--r--.emacs.local.d/lisp/config/rul-config-mail.el1
-rw-r--r--.emacs.local.d/lisp/config/rul-config-org.el22
-rw-r--r--.emacs.local.d/lisp/config/rul-config-projectile.el2
-rw-r--r--.emacs.local.d/lisp/packages/rul-dart.el7
-rw-r--r--.emacs.local.d/lisp/packages/rul-elfeed.el5
-rw-r--r--.emacs.local.d/lisp/packages/rul-org-agenda.el420
-rw-r--r--.emacs.local.d/lisp/packages/rul-org-journal.el16
-rw-r--r--.emacs.local.d/lisp/packages/rul-org-notify.el9
-rw-r--r--.emacs.local.d/lisp/packages/rul-org-roam.el26
-rw-r--r--.emacs.local.d/lisp/packages/rul-org.el156
-rw-r--r--.emacs.local.d/modes/auto-fill.el4
-rw-r--r--.emacs.local.d/modes/company.el42
-rw-r--r--.emacs.local.d/modes/dashboard.el9
-rw-r--r--.emacs.local.d/modes/doom-modeline.el11
-rw-r--r--.emacs.local.d/modes/flycheck.el20
-rw-r--r--.emacs.local.d/modes/flyspell.el12
-rw-r--r--.emacs.local.d/modes/fonts.el31
-rw-r--r--.emacs.local.d/modes/go-lang.el23
-rw-r--r--.emacs.local.d/modes/hydra.el97
-rw-r--r--.emacs.local.d/modes/ibuffer.el35
-rw-r--r--.emacs.local.d/modes/imenu.el12
-rw-r--r--.emacs.local.d/modes/ivy.el38
-rw-r--r--.emacs.local.d/modes/latex.el9
-rw-r--r--.emacs.local.d/modes/logos.el29
-rw-r--r--.emacs.local.d/modes/lsp.el17
-rw-r--r--.emacs.local.d/modes/magit.el15
-rw-r--r--.emacs.local.d/modes/mail-mode.el12
-rw-r--r--.emacs.local.d/modes/markdown.el5
-rw-r--r--.emacs.local.d/modes/mu4e.el61
-rw-r--r--.emacs.local.d/modes/notmuch.el133
-rw-r--r--.emacs.local.d/modes/projectile.el9
-rw-r--r--.emacs.local.d/modes/python.el1
-rw-r--r--.emacs.local.d/modes/sml.el7
-rw-r--r--.emacs.local.d/modes/tabbar.el25
-rw-r--r--.emacs.local.d/modes/themes.el47
-rw-r--r--.emacs.local.d/modes/vterm.el6
-rw-r--r--.emacs.local.d/modes/which-key.el5
-rw-r--r--.emacs.local.d/modes/writeroom.el34
-rw-r--r--.emacs.local.d/staging.el158
41 files changed, 0 insertions, 1753 deletions
diff --git a/.emacs.local.d/general.el b/.emacs.local.d/general.el
index 4e1ad01..e69de29 100644
--- a/.emacs.local.d/general.el
+++ b/.emacs.local.d/general.el
@@ -1,180 +0,0 @@
-;; Debian packages: elpa-use-package elpa-fill-column-indicator fonts-hack
-
-(require 'package)
-
-;; This is only needed once, near the top of the file
-(eval-when-compile
- (require 'use-package))
-
-(add-to-list 'package-archives
- '("melpa-stable" . "https://stable.melpa.org/packages/") t)
-
-(add-to-list 'package-archives
- '("melpa" . "https://melpa.org/packages/") t)
-
-;; ------
-;; Require misc stuff
-;; ------
-(require 'fill-column-indicator)
-
-;; Place backups in ~/.backups/ directory, like a civilized program.
-;; ------
-(if (file-directory-p "~/.backup")
- (setq backup-directory-alist '(("." . "~/.backup")))
- (message "Directory does not exist: ~/.backup"))
-
-(filesets-init)
-
-(setq backup-by-copying t ; Don't delink hardlinks
- delete-old-versions t ; Clean up the backups
- version-control t ; Use version numbers on backups,
- kept-new-versions 3 ; keep some new versions
- kept-old-versions 2) ; and some old ones, too
-
-;;; backup/autosave - old studd, just in case
-;; (defvar backup-dir (expand-file-name "~/.emacs.d/backup/"))
-;; (defvar autosave-dir (expand-file-name "~/.emacs.d/autosave/"))
-;; (setq backup-directory-alist (list (cons ".*" backup-dir)))
-;; (setq auto-save-list-file-prefix autosave-dir)
-;; (setq auto-save-file-name-transforms `((".*" ,autosave-dir t)))
-
-
-;; ---------
-;; Generic keybindings
-;; ---------
-(global-set-key (kbd "C-c d") 'diff-buffer-with-file)
-(global-set-key (kbd "C-c R") 'revert-buffer)
-
-;; compile
-(global-set-key [f12] 'compile)
-
-(defun help/insert-em-dash ()
- "Inserts an EM-DASH (not a HYPEN, not an N-DASH)"
- (interactive)
- (insert "—"))
-
-(global-set-key (kbd "C--") #'help/insert-em-dash)
-
-;; ------
-;; General config BS
-;; ------
-
-(setq fill-column 79)
-
-;; Make sure that pressing middle mouse button pastes right at point,
-;; not where the mouse cursor is.
-(setq mouse-yank-at-point t)
-(setq column-number-mode 1)
-(setq line-number-mode 1)
-(setq-default indent-tabs-mode nil)
-(setq-default tab-width 4)
-
-(setq-default c-basic-offset 4)
-
-;; ------
-;; Initialize some things
-;; ------
-
-
-(setenv "TMPDIR" (concat (getenv "HOME") "/tmp"))
-(server-start)
-
-;; ------
-;; Terminal / window specific stuff
-;; ------
-
-;; Don't minimize my emacs! Honestly wtf
-(when window-system
- (progn
- (global-unset-key (kbd "C-z"))
- (setq scroll-bar-mode nil)
- (tool-bar-mode nil)
- (menu-bar-mode nil)))
-
-;; ------
-;; Helper for compilation.
-;; ------
-;; Close the compilation window if there was no error at all.
-(defun compilation-exit-autoclose (status code msg)
- ;; If M-x compile exists with a 0
- (when (and (eq status 'exit) (zerop code))
- ;; then bury the *compilation* buffer, so that C-x b doesn't go there
- (bury-buffer)
- ;; and delete the *compilation* window
- (delete-window (get-buffer-window (get-buffer "*compilation*"))))
- ;; Always return the anticipated result of compilation-exit-message-function
- (cons msg code))
-;; Specify my function (maybe I should have done a lambda function)
-(setq compilation-exit-message-function 'compilation-exit-autoclose)
-(setq compilation-read-command nil)
-
-;; Themes
-(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/")
-
-;; Remove scratch message
-(setq initial-scratch-message "")
-
-;; Turn of scroll bar
-(when (featurep 'scroll-bar) (scroll-bar-mode -1))
-
-;; Ask y or n instead of yes or no
-(defalias 'yes-or-no-p 'y-or-n-p)
-
-;; Fancier buffer selection
-(global-set-key (kbd "C-x C-b") 'bs-show)
-
-;;; Stefan Monnier <foo at acm.org>. It is the opposite of fill-paragraph
-(defun unfill-paragraph (&optional region)
- "Takes a multi-line paragraph and makes it into a single line of text."
- (interactive (progn (barf-if-buffer-read-only) '(t)))
- (let ((fill-column (point-max))
- ;; This would override `fill-column' if it's an integer.
- (emacs-lisp-docstring-fill-column t))
- (fill-paragraph nil region)))
-
-;; Handy key definition
-(define-key global-map "\M-Q" 'unfill-paragraph)
-
-;; Do not persist customizations
-(setq custom-file (make-temp-file "emacs-custom-"))
-
-(menu-bar-mode -1)
-(tool-bar-mode -1)
-
-;; Truly maximize screen
-(setq frame-resize-pixelwise t)
-
-;; Start maximized
-(add-to-list 'default-frame-alist '(fullscreen . maximized))
-
-;; Only flash the mode line
-(setq ring-bell-function
- (lambda ()
- (let ((orig-fg (face-foreground 'mode-line)))
- (set-face-foreground 'mode-line "#F2804F")
- (run-with-idle-timer 0.1 nil
- (lambda (fg) (set-face-foreground 'mode-line fg))
- orig-fg))))
-
-;; Highlight parens
-(setq show-paren-delay 0)
-(show-paren-mode 1)
-
-;; Use default brwoser
-;;(setq browse-url-browser-function 'browse-url-generic browse-url-generic-program "chromium")
-
-;; Save what you enter into minibuffer prompts
-(setq history-length 25)
-(savehist-mode 1)
-
-;; Remember and restore cursor information
-(save-place-mode 1)
-
-;; No need for titlebar
-(modify-frame-parameters nil '((undecorated . t)))
-
-;; Do not pop-up warnings in every buffer
-(setq native-comp-async-report-warnings-errors 'silent)
-
-;; Set this to t if you don't understand what it means
-(setq vc-follow-symlinks nil)
diff --git a/.emacs.local.d/lisp/config/rul-config-elfeed.el b/.emacs.local.d/lisp/config/rul-config-elfeed.el
deleted file mode 100644
index 026c325..0000000
--- a/.emacs.local.d/lisp/config/rul-config-elfeed.el
+++ /dev/null
@@ -1,2 +0,0 @@
-(setq elfeed-feeds '("https://planet.debian.org/rss10.xml"))
-(provide 'rul-config-elfeed)
diff --git a/.emacs.local.d/lisp/config/rul-config-mail.el b/.emacs.local.d/lisp/config/rul-config-mail.el
deleted file mode 100644
index 240f8be..0000000
--- a/.emacs.local.d/lisp/config/rul-config-mail.el
+++ /dev/null
@@ -1 +0,0 @@
-(provide 'rul-config-mail)
diff --git a/.emacs.local.d/lisp/config/rul-config-org.el b/.emacs.local.d/lisp/config/rul-config-org.el
deleted file mode 100644
index a16e525..0000000
--- a/.emacs.local.d/lisp/config/rul-config-org.el
+++ /dev/null
@@ -1,22 +0,0 @@
-(setq
- my-org-agenda-files '("~/org/")
- my-org-agenda-custom-commands
- '(("x" agenda)
- ("y" agenda*)
- ("w" todo "WAITING")
- ("W" todo-tree "WAITING")
- )
- my-org-journal-file-type 'yearly
- my-org-journal-dir "~/org/journal/"
- my-org-journal-file-format "%Y.org"
- my-org-journal-time-prefix "* "
- my-org-journal-time-format ""
- my-org-refile-path "~/refile.org"
- my-org-roam-directory "~/org/roam/"
-
- my-org-agenda-private-local-path "/tmp/example.ics"
- my-org-agenda-private-remote-path "/sshx:user@host:example.ics"
- )
-
-(provide 'rul-config-org)
-
diff --git a/.emacs.local.d/lisp/config/rul-config-projectile.el b/.emacs.local.d/lisp/config/rul-config-projectile.el
deleted file mode 100644
index 3922c8f..0000000
--- a/.emacs.local.d/lisp/config/rul-config-projectile.el
+++ /dev/null
@@ -1,2 +0,0 @@
-(setq my-projectile-project-search-path '("~/src/"))
-(provide 'rul-config-projectile)
diff --git a/.emacs.local.d/lisp/packages/rul-dart.el b/.emacs.local.d/lisp/packages/rul-dart.el
deleted file mode 100644
index 36bfd47..0000000
--- a/.emacs.local.d/lisp/packages/rul-dart.el
+++ /dev/null
@@ -1,7 +0,0 @@
-(setq dart-server-format-on-save t)
-(add-hook 'dart-mode-hook 'lsp)
-
-(setq gc-cons-threshold (* 100 1024 1024)
- read-process-output-max (* 1024 1024))
-
-(provide 'rul-dart)
diff --git a/.emacs.local.d/lisp/packages/rul-elfeed.el b/.emacs.local.d/lisp/packages/rul-elfeed.el
deleted file mode 100644
index 34713db..0000000
--- a/.emacs.local.d/lisp/packages/rul-elfeed.el
+++ /dev/null
@@ -1,5 +0,0 @@
-(use-package elfeed
- :config
- (require 'rul-config-elfeed))
-
-(provide 'rul-elfeed)
diff --git a/.emacs.local.d/lisp/packages/rul-org-agenda.el b/.emacs.local.d/lisp/packages/rul-org-agenda.el
deleted file mode 100644
index 8122afb..0000000
--- a/.emacs.local.d/lisp/packages/rul-org-agenda.el
+++ /dev/null
@@ -1,420 +0,0 @@
-(require 'org)
-
-(global-set-key (kbd "<f12>") #'org-agenda)
-(global-set-key (kbd "C-c a") #'org-agenda)
-
-(defun bh/is-project-p ()
- "Any task with a todo keyword subtask"
- (save-restriction
- (widen)
- (let ((has-subtask)
- (subtree-end (save-excursion (org-end-of-subtree t)))
- (is-a-task (member (nth 2 (org-heading-components)) org-todo-keywords-1)))
- (save-excursion
- (forward-line 1)
- (while (and (not has-subtask)
- (< (point) subtree-end)
- (re-search-forward "^\*+ " subtree-end t))
- (when (member (org-get-todo-state) org-todo-keywords-1)
- (setq has-subtask t))))
- (and is-a-task has-subtask))))
-
-(defun bh/is-project-subtree-p ()
- "Any task with a todo keyword that is in a project subtree.
-Callers of this function already widen the buffer view."
- (let ((task (save-excursion (org-back-to-heading 'invisible-ok)
- (point))))
- (save-excursion
- (bh/find-project-task)
- (if (equal (point) task)
- nil
- t))))
-
-(defun bh/is-task-p ()
- "Any task with a todo keyword and no subtask"
- (save-restriction
- (widen)
- (let ((has-subtask)
- (subtree-end (save-excursion (org-end-of-subtree t)))
- (is-a-task (member (nth 2 (org-heading-components)) org-todo-keywords-1)))
- (save-excursion
- (forward-line 1)
- (while (and (not has-subtask)
- (< (point) subtree-end)
- (re-search-forward "^\*+ " subtree-end t))
- (when (member (org-get-todo-state) org-todo-keywords-1)
- (setq has-subtask t))))
- (and is-a-task (not has-subtask)))))
-
-(defun bh/is-subproject-p ()
- "Any task which is a subtask of another project"
- (let ((is-subproject)
- (is-a-task (member (nth 2 (org-heading-components)) org-todo-keywords-1)))
- (save-excursion
- (while (and (not is-subproject) (org-up-heading-safe))
- (when (member (nth 2 (org-heading-components)) org-todo-keywords-1)
- (setq is-subproject t))))
- (and is-a-task is-subproject)))
-
-(defun bh/list-sublevels-for-projects-indented ()
- "Set org-tags-match-list-sublevels so when restricted to a subtree we list all subtasks.
- This is normally used by skipping functions where this variable is already local to the agenda."
- (if (marker-buffer org-agenda-restrict-begin)
- (setq org-tags-match-list-sublevels 'indented)
- (setq org-tags-match-list-sublevels nil))
- nil)
-
-(defun bh/list-sublevels-for-projects ()
- "Set org-tags-match-list-sublevels so when restricted to a subtree we list all subtasks.
- This is normally used by skipping functions where this variable is already local to the agenda."
- (if (marker-buffer org-agenda-restrict-begin)
- (setq org-tags-match-list-sublevels t)
- (setq org-tags-match-list-sublevels nil))
- nil)
-
-(defvar bh/hide-scheduled-and-waiting-next-tasks t)
-
-(defun bh/toggle-next-task-display ()
- (interactive)
- (setq bh/hide-scheduled-and-waiting-next-tasks (not bh/hide-scheduled-and-waiting-next-tasks))
- (when (equal major-mode 'org-agenda-mode)
- (org-agenda-redo))
- (message "%s WAITING and SCHEDULED NEXT Tasks" (if bh/hide-scheduled-and-waiting-next-tasks "Hide" "Show")))
-
-(defun bh/skip-stuck-projects ()
- "Skip trees that are not stuck projects"
- (save-restriction
- (widen)
- (let ((next-headline (save-excursion (or (outline-next-heading) (point-max)))))
- (if (bh/is-project-p)
- (let* ((subtree-end (save-excursion (org-end-of-subtree t)))
- (has-next ))
- (save-excursion
- (forward-line 1)
- (while (and (not has-next) (< (point) subtree-end) (re-search-forward "^\\*+ NEXT " subtree-end t))
- (unless (member "WAITING" (org-get-tags-at))
- (setq has-next t))))
- (if has-next
- nil
- next-headline)) ; a stuck project, has subtasks but no next task
- nil))))
-
-(defun bh/skip-non-stuck-projects ()
- "Skip trees that are not stuck projects"
- ;; (bh/list-sublevels-for-projects-indented)
- (save-restriction
- (widen)
- (let ((next-headline (save-excursion (or (outline-next-heading) (point-max)))))
- (if (bh/is-project-p)
- (let* ((subtree-end (save-excursion (org-end-of-subtree t)))
- (has-next ))
- (save-excursion
- (forward-line 1)
- (while (and (not has-next) (< (point) subtree-end) (re-search-forward "^\\*+ NEXT " subtree-end t))
- (unless (member "WAITING" (org-get-tags-at))
- (setq has-next t))))
- (if has-next
- next-headline
- nil)) ; a stuck project, has subtasks but no next task
- next-headline))))
-
-(defun bh/skip-non-projects ()
- "Skip trees that are not projects"
- ;; (bh/list-sublevels-for-projects-indented)
- (if (save-excursion (bh/skip-non-stuck-projects))
- (save-restriction
- (widen)
- (let ((subtree-end (save-excursion (org-end-of-subtree t))))
- (cond
- ((bh/is-project-p)
- nil)
- ((and (bh/is-project-subtree-p) (not (bh/is-task-p)))
- nil)
- (t
- subtree-end))))
- (save-excursion (org-end-of-subtree t))))
-
-(defun bh/skip-non-tasks ()
- "Show non-project tasks.
-Skip project and sub-project tasks, habits, and project related tasks."
- (save-restriction
- (widen)
- (let ((next-headline (save-excursion (or (outline-next-heading) (point-max)))))
- (cond
- ((bh/is-task-p)
- nil)
- (t
- next-headline)))))
-
-(defun bh/skip-project-trees-and-habits ()
- "Skip trees that are projects"
- (save-restriction
- (widen)
- (let ((subtree-end (save-excursion (org-end-of-subtree t))))
- (cond
- ((bh/is-project-p)
- subtree-end)
- ((org-is-habit-p)
- subtree-end)
- (t
- nil)))))
-
-(defun bh/skip-projects-and-habits-and-single-tasks ()
- "Skip trees that are projects, tasks that are habits, single non-project tasks"
- (save-restriction
- (widen)
- (let ((next-headline (save-excursion (or (outline-next-heading) (point-max)))))
- (cond
- ((org-is-habit-p)
- next-headline)
- ((and bh/hide-scheduled-and-waiting-next-tasks
- (member "WAITING" (org-get-tags-at)))
- next-headline)
- ((bh/is-project-p)
- next-headline)
- ((and (bh/is-task-p) (not (bh/is-project-subtree-p)))
- next-headline)
- (t
- nil)))))
-
-(defun bh/skip-project-tasks-maybe ()
- "Show tasks related to the current restriction.
-When restricted to a project, skip project and sub project tasks, habits, NEXT tasks, and loose tasks.
-When not restricted, skip project and sub-project tasks, habits, and project related tasks."
- (save-restriction
- (widen)
- (let* ((subtree-end (save-excursion (org-end-of-subtree t)))
- (next-headline (save-excursion (or (outline-next-heading) (point-max))))
- (limit-to-project (marker-buffer org-agenda-restrict-begin)))
- (cond
- ((bh/is-project-p)
- next-headline)
- ((org-is-habit-p)
- subtree-end)
- ((and (not limit-to-project)
- (bh/is-project-subtree-p))
- subtree-end)
- ((and limit-to-project
- (bh/is-project-subtree-p)
- (member (org-get-todo-state) (list "NEXT")))
- subtree-end)
- (t
- nil)))))
-
-(defun bh/skip-project-tasks ()
- "Show non-project tasks.
-Skip project and sub-project tasks, habits, and project related tasks."
- (save-restriction
- (widen)
- (let* ((subtree-end (save-excursion (org-end-of-subtree t))))
- (cond
- ((bh/is-project-p)
- subtree-end)
- ((org-is-habit-p)
- subtree-end)
- ((bh/is-project-subtree-p)
- subtree-end)
- (t
- nil)))))
-
-(defun bh/skip-non-project-tasks ()
- "Show project tasks.
-Skip project and sub-project tasks, habits, and loose non-project tasks."
- (save-restriction
- (widen)
- (let* ((subtree-end (save-excursion (org-end-of-subtree t)))
- (next-headline (save-excursion (or (outline-next-heading) (point-max)))))
- (cond
- ((bh/is-project-p)
- next-headline)
- ((org-is-habit-p)
- subtree-end)
- ((and (bh/is-project-subtree-p)
- (member (org-get-todo-state) (list "NEXT")))
- subtree-end)
- ((not (bh/is-project-subtree-p))
- subtree-end)
- (t
- nil)))))
-
-(defun bh/skip-projects-and-habits ()
- "Skip trees that are projects and tasks that are habits"
- (save-restriction
- (widen)
- (let ((subtree-end (save-excursion (org-end-of-subtree t))))
- (cond
- ((bh/is-project-p)
- subtree-end)
- ((org-is-habit-p)
- subtree-end)
- (t
- nil)))))
-
-(defun bh/skip-non-subprojects ()
- "Skip trees that are not projects"
- (let ((next-headline (save-excursion (outline-next-heading))))
- (if (bh/is-subproject-p)
- nil
- next-headline)))
-
-;; CLOCKING ;;
-;; Resume clocking task when emacs is restarted
-(org-clock-persistence-insinuate)
-;;
-;; Show lot of clocking history so it's easy to pick items off the C-F11 list
-(setq org-clock-history-length 23)
-;; Resume clocking task on clock-in if the clock is open
-(setq org-clock-in-resume t)
-;; Change tasks to NEXT when clocking in
-(setq org-clock-in-switch-to-state 'bh/clock-in-to-next)
-;; Separate drawers for clocking and logs
-(setq org-drawers (quote ("PROPERTIES" "LOGBOOK")))
-;; Save clock data and state changes and notes in the LOGBOOK drawer
-(setq org-clock-into-drawer t)
-;; Sometimes I change tasks I'm clocking quickly - this removes clocked tasks with 0:00 duration
-(setq org-clock-out-remove-zero-time-clocks t)
-;; Clock out when moving task to a done state
-(setq org-clock-out-when-done t)
-;; Save the running clock and all clock history when exiting Emacs, load it on startup
-(setq org-clock-persist t)
-;; Do not prompt to resume an active clock
-(setq org-clock-persist-query-resume nil)
-;; Enable auto clock resolution for finding open clocks
-(setq org-clock-auto-clock-resolution (quote when-no-clock-is-running))
-;; Include current clocking task in clock reports
-(setq org-clock-report-include-clocking-task t)
-
-
-(setq bh/keep-clock-running nil)
-
-(defun bh/clock-in-to-next (kw)
- "Switch a task from TODO to NEXT when clocking in.
-Skips capture tasks, projects, and subprojects.
-Switch projects and subprojects from NEXT back to TODO"
- (when (not (and (boundp 'org-capture-mode) org-capture-mode))
- (cond
- ((and (member (org-get-todo-state) (list "TODO"))
- (bh/is-task-p))
- "NEXT")
- ((and (member (org-get-todo-state) (list "NEXT"))
- (bh/is-project-p))
- "TODO"))))
-
-(defun bh/find-project-task ()
- "Move point to the parent (project) task if any"
- (save-restriction
- (widen)
- (let ((parent-task (save-excursion (org-back-to-heading 'invisible-ok) (point))))
- (while (org-up-heading-safe)
- (when (member (nth 2 (org-heading-components)) org-todo-keywords-1)
- (setq parent-task (point))))
- (goto-char parent-task)
- parent-task)))
-
-(defun bh/punch-in (arg)
- "Start continuous clocking and set the default task to the
-selected task. If no task is selected set the Organization task
-as the default task."
- (interactive "p")
- (setq bh/keep-clock-running t)
- (if (equal major-mode 'org-agenda-mode)
- ;;
- ;; We're in the agenda
- ;;
- (let* ((marker (org-get-at-bol 'org-hd-marker))
- (tags (org-with-point-at marker (org-get-tags-at))))
- (if (and (eq arg 4) tags)
- (org-agenda-clock-in '(16))
- (bh/clock-in-organization-task-as-default)))
- ;;
- ;; We are not in the agenda
- ;;
- (save-restriction
- (widen)
- ; Find the tags on the current task
- (if (and (equal major-mode 'org-mode) (not (org-before-first-heading-p)) (eq arg 4))
- (org-clock-in '(16))
- (bh/clock-in-organization-task-as-default)))))
-
-(defun bh/punch-out ()
- (interactive)
- (setq bh/keep-clock-running nil)
- (when (org-clock-is-active)
- (org-clock-out))
- (org-agenda-remove-restriction-lock))
-
-(defun bh/clock-in-default-task ()
- (save-excursion
- (org-with-point-at org-clock-default-task
- (org-clock-in))))
-
-(defun bh/clock-in-parent-task ()
- "Move point to the parent (project) task if any and clock in"
- (let ((parent-task))
- (save-excursion
- (save-restriction
- (widen)
- (while (and (not parent-task) (org-up-heading-safe))
- (when (member (nth 2 (org-heading-components)) org-todo-keywords-1)
- (setq parent-task (point))))
- (if parent-task
- (org-with-point-at parent-task
- (org-clock-in))
- (when bh/keep-clock-running
- (bh/clock-in-default-task)))))))
-
-(defvar bh/organization-task-id "eb155a82-92b2-4f25-a3c6-0304591af2f9")
-
-;; https://stackoverflow.com/a/10091330
-(defun zin/org-agenda-skip-tag (tag &optional others)
- "Skip all entries that correspond to TAG.
-
-If OTHERS is true, skip all entries that do not correspond to TAG."
- (let ((next-headline (save-excursion (or (outline-next-heading) (point-max))))
- (current-headline (or (and (org-at-heading-p)
- (point))
- (save-excursion (org-back-to-heading)))))
- (if others
- (if (not (member tag (org-get-tags-at current-headline)))
- next-headline
- nil)
- (if (member tag (org-get-tags-at current-headline))
- next-headline
- nil))))
-
-(defun bh/clock-in-organization-task-as-default ()
- (interactive)
- (org-with-point-at (org-id-find bh/organization-task-id 'marker)
- (org-clock-in '(16))))
-
-(defun bh/clock-out-maybe ()
- (when (and bh/keep-clock-running
- (not org-clock-clocking-in)
- (marker-buffer org-clock-default-task)
- (not org-clock-resolving-clocks-due-to-idleness))
- (bh/clock-in-parent-task)))
-
-(add-hook 'org-clock-out-hook 'bh/clock-out-maybe 'append)
-
-;; AGENDA VIEW ;;
-
-(setq org-agenda-files my-org-agenda-files)
-(setq org-agenda-custom-commands my-org-agenda-custom-commands)
-
-;; Do not dim blocked tasks
-(setq org-agenda-compact-blocks nil)
-(setq org-agenda-dim-blocked-tasks nil)
-(setq org-agenda-block-separator 61)
-
-;; Agenda log mode items to display (closed and state changes by default)
-(setq org-agenda-log-mode-items (quote (closed state)))
-
-; For tag searches ignore tasks with scheduled and deadline dates
-(setq org-agenda-tags-todo-honor-ignore-options t)
-
-(setq org-icalendar-include-body nil)
-(setq org-icalendar-include-bbdb-anniversaries t)
-(setq org-icalendar-include-todo t)
-(setq org-icalendar-use-scheduled '(todo-start event-if-not-todo event-if-todo-not-done))
-
-(provide 'rul-org-agenda)
diff --git a/.emacs.local.d/lisp/packages/rul-org-journal.el b/.emacs.local.d/lisp/packages/rul-org-journal.el
deleted file mode 100644
index ab07a19..0000000
--- a/.emacs.local.d/lisp/packages/rul-org-journal.el
+++ /dev/null
@@ -1,16 +0,0 @@
-(use-package org-journal
- :ensure t
- :init
- ;; Change default prefix key; needs to be set before loading org-journal
- (setq org-journal-prefix-key "C-c j ")
- (setq org-journal-file-format my-org-journal-file-format)
- (setq org-journal-enable-agenda-integration t)
- :config
- (require 'rul-config-org)
- (setq org-journal-dir my-org-journal-dir
- org-journal-file-type my-org-journal-file-type
- org-journal-time-prefix my-org-journal-time-prefix
- org-journal-time-format my-org-journal-time-format
- org-journal-date-format "%A, %d %B %Y"))
-
-(provide 'rul-org-journal)
diff --git a/.emacs.local.d/lisp/packages/rul-org-notify.el b/.emacs.local.d/lisp/packages/rul-org-notify.el
deleted file mode 100644
index 50c35a0..0000000
--- a/.emacs.local.d/lisp/packages/rul-org-notify.el
+++ /dev/null
@@ -1,9 +0,0 @@
-(use-package org-notify
- :ensure t
- :config
- (org-notify-start)
- (org-notify-add 'default
- '(:time "-1s" :period "20s" :duration 10
- :actions (-message -ding))
- '(:time "1d" :actions -notify/window
- :duration 60)))
diff --git a/.emacs.local.d/lisp/packages/rul-org-roam.el b/.emacs.local.d/lisp/packages/rul-org-roam.el
deleted file mode 100644
index 0184459..0000000
--- a/.emacs.local.d/lisp/packages/rul-org-roam.el
+++ /dev/null
@@ -1,26 +0,0 @@
-(use-package org-roam
- :ensure t
- :after rul-org
- :custom
- (org-roam-directory my-org-roam-directory)
- :init
- (setq org-roam-v2-ack t)
- :bind (("C-c n l" . org-roam-buffer-toggle)
- ("C-c n f" . org-roam-node-find)
- ("C-c n i" . org-roam-node-insert))
- :config
- (require 'rul-config-org)
- (org-roam-setup)
- (add-to-list 'display-buffer-alist
- '("\\*org-roam\\*"
- (display-buffer-in-direction)
- (direction . right)
- (window-width . 0.33)
- (window-height . fit-window-to-buffer)))
- (setq org-roam-mode-section-functions
- (list #'org-roam-backlinks-section
- #'org-roam-reflinks-section
- #'org-roam-unlinked-references-section))
- )
-
-(provide 'rul-org-roam)
diff --git a/.emacs.local.d/lisp/packages/rul-org.el b/.emacs.local.d/lisp/packages/rul-org.el
deleted file mode 100644
index 97b4b5a..0000000
--- a/.emacs.local.d/lisp/packages/rul-org.el
+++ /dev/null
@@ -1,156 +0,0 @@
-;; Debian packages: elpa-org elpa-org-bullets
-;; Elpa packages: org-modern
-(require 'org)
-(require 'org-capture)
-(require 'org-protocol)
-(require 'org-habit)
-(require 'org-bullets)
-
-(require 'org-modern)
-
-(require 'rul-config-org)
-
-(require 'rul-org-agenda)
-(require 'rul-org-journal)
-(require 'rul-org-roam)
-
-(setq org-cycle-separator-lines 0)
-(setq org-startup-indented t)
-(setq org-hide-leading-stars nil)
-
-(add-hook 'org-mode-hook 'turn-off-auto-fill)
-(add-hook 'org-mode-hook 'visual-line-mode)
-
-(setq org-startup-indented t
- org-bullets-bullet-list '(" ") ;; no bullets, needs org-bullets package
- org-pretty-entities nil
- org-hide-emphasis-markers t
- ;; show actually italicized text instead of /italicized text/
- org-fontify-whole-heading-line t
- org-fontify-done-headline t
- org-fontify-quote-and-verse-blocks t)
-
-;; ORG BINDINGS ;;
-(global-set-key (kbd "C-c l") #'org-store-link)
-(global-set-key (kbd "C-c c") #'org-capture)
-(global-set-key (kbd "C-c s") #'org-schedule)
-
-;; ORG STATES ;;
-(setq org-todo-keywords
- (quote ((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d)")
- (sequence "WAITING(w@/!)" "HOLD(h@/!)" "|" "CANCELLED(c@/!)" "PHONE" "MEETING"))))
-
-(setq org-use-fast-todo-selection t)
-
-(setq org-todo-state-tags-triggers
- (quote (("CANCELLED" ("CANCELLED" . t))
- ("WAITING" ("WAITING" . t))
- ("HOLD" ("WAITING") ("HOLD" . t))
- (done ("WAITING") ("HOLD"))
- ("TODO" ("WAITING") ("CANCELLED") ("HOLD"))
- ("NEXT" ("WAITING") ("CANCELLED") ("HOLD"))
- ("DONE" ("WAITING") ("CANCELLED") ("HOLD")))))
-
-(setq org-enforce-todo-dependencies t)
-(setq org-log-done (quote time))
-(setq org-log-redeadline (quote time))
-(setq org-log-reschedule (quote time))
-
-;; CAPTURE ;;
-(setq org-default-notes-file my-org-refile-path)
-(setq org-capture-templates
- (quote
- (
- ("w" "Todo" entry (file+headline my-org-refile-path "Tasks")
- "* TODO "
- :empty-lines 1)
- ("m"
- "Capture incoming email"
- entry
- (file+headline my-org-refile-path "Incoming")
- "* TODO Re: %:description\n\n Source: %u, %a\n"
- :empty-lines 1)
- )))
-
-(add-hook 'org-capture-mode-hook 'delete-other-windows)
-(setq my-org-protocol-flag nil)
-
-(defadvice org-capture-finalize (after delete-frame-at-end activate)
- "Delete frame at remember finalization"
- (progn (if my-org-protocol-flag (delete-frame))
- (setq my-org-protocol-flag nil)))
-
-(defadvice org-capture-kill (after delete-frame-at-end activate)
- "Delete frame at remember abort"
- (progn (if my-org-protocol-flag (delete-frame))
- (setq my-org-protocol-flag nil)))
-
-(defadvice org-protocol-capture (before set-org-protocol-flag activate)
- (setq my-org-protocol-flag t))
-
-
-;; REFILE ;;
-
-; Targets include this file and any file contributing to the agenda - up to 3 levels deep
-(setq org-refile-targets
- '((nil :maxlevel . 3)
- (org-agenda-files :maxlevel . 3)))
-
-; Targets complete directly with IDO
-(setq org-outline-path-complete-in-steps nil)
-
-; Allow refile to create parent tasks with confirmation
-(setq org-refile-allow-creating-parent-nodes (quote confirm))
-
-
-
-;; ORG REPORTS ;;
-; Set default column view headings: Task Effort Clock_Summary
-(setq org-columns-default-format "%80ITEM(Task) %10Effort(Effort){:} %10CLOCKSUM")
-
-(defun my-org-clocktable-indent-string (level)
- (if (= level 1)
- ""
- (let ((str "^"))
- (while (> level 2)
- (setq level (1- level)
- str (concat str "--")))
- (concat str "-> "))))
-
-(advice-add 'org-clocktable-indent-string :override #'my-org-clocktable-indent-string)
-
-(setq org-clock-clocktable-default-properties '(:maxlevel 4 :scope file :formula %))
-
-; global Effort estimate values
-; global STYLE property values for completion
-(setq org-global-properties (quote (("Effort_ALL" . "0:15 0:30 0:45 1:00 2:00 3:00 4:00 5:00 6:00 0:00")
- ("STYLE_ALL" . "habit"))))
-
-;; TAGS ;;
-; Tags with fast selection keys
-(setq org-tag-alist (quote ((:startgroup)
- ("@errand" . ?e)
- ("@office" . ?o)
- ("@home" . ?H)
- (:endgroup)
- ("WAITING" . ?w)
- ("HOLD" . ?h)
- ("PERSONAL" . ?P)
- ("WORK" . ?W)
- ("ORG" . ?O)
- ("NOTE" . ?n)
- ("CANCELLED" . ?c)
- ("FLAGGED" . ??))))
-
-(setq org-stuck-projects
- '("+LEVEL=2+PROJECT/-MAYBE-DONE" ("NEXT") ("@shop")
- "\\<IGNORE\\>"))
-
-; Allow setting single tags without the menu
-(setq org-fast-tag-selection-single-key (quote expert))
-
-;; org-modern
-(add-hook 'org-mode-hook 'org-modern-mode)
-(add-hook 'org-agenda-finalize-hook #'org-modern-agenda)
-
-(provide 'rul-org)
diff --git a/.emacs.local.d/modes/auto-fill.el b/.emacs.local.d/modes/auto-fill.el
deleted file mode 100644
index dad2831..0000000
--- a/.emacs.local.d/modes/auto-fill.el
+++ /dev/null
@@ -1,4 +0,0 @@
-;; auto-fill mode
-(add-hook 'text-mode-hook 'turn-on-auto-fill)
-(global-set-key (kbd "C-c q") 'auto-fill-mode)
-
diff --git a/.emacs.local.d/modes/company.el b/.emacs.local.d/modes/company.el
deleted file mode 100644
index d52000e..0000000
--- a/.emacs.local.d/modes/company.el
+++ /dev/null
@@ -1,42 +0,0 @@
-(use-package company
- :ensure t
- :defer t
- :init (global-company-mode)
- :config
- (progn
- ;; Use Company for completion
- (bind-key [remap completion-at-point] #'company-complete company-mode-map)
-
- (setq company-tooltip-align-annotations t
- ;; Easy navigation to candidates with M-<n>
- company-show-numbers t)
- (setq company-dabbrev-downcase nil))
-
- (setq company-idle-delay 0)
- (setq company-minimum-prefix-length 1)
- :diminish company-mode)
-
-(use-package company-quickhelp ; Documentation popups for Company
- :ensure t
- :defer t
- :init (add-hook 'global-company-mode-hook #'company-quickhelp-mode))
-
-(use-package company-go
- :ensure t
- :defer t
- :init
- (with-eval-after-load 'company
- (add-to-list 'company-backends 'company-go)))
-
-(use-package company-lsp
- :ensure t
- :commands company-lsp)
-
-(use-package yasnippet
- :ensure t
- :config
- (yas-global-mode 1)
- (global-set-key (kbd "C-c y") 'company-yasnippet))
-
-(use-package yasnippet-snippets
- :ensure t)
diff --git a/.emacs.local.d/modes/dashboard.el b/.emacs.local.d/modes/dashboard.el
deleted file mode 100644
index 7bf51a9..0000000
--- a/.emacs.local.d/modes/dashboard.el
+++ /dev/null
@@ -1,9 +0,0 @@
-(use-package dashboard
- :ensure t
- :diminish dashboard-mode
- :config
- (setq dashboard-banner-logo-title "Happy hacking!")
- (setq dashboard-items '((recents . 10)
- (projects . 5)
- (bookmarks . 10)))
- (dashboard-setup-startup-hook))
diff --git a/.emacs.local.d/modes/doom-modeline.el b/.emacs.local.d/modes/doom-modeline.el
deleted file mode 100644
index b212652..0000000
--- a/.emacs.local.d/modes/doom-modeline.el
+++ /dev/null
@@ -1,11 +0,0 @@
-;; Elpa packages: doom-modeline all-the-icons
-;; Run: all-the-icons-install-fonts
-
-(use-package doom-modeline
- :ensure t
- :hook (after-init . doom-modeline-mode)
- :config
- (setq doom-modeline-height 1)
- (set-face-attribute 'mode-line nil :family "Noto Sans" :height 150)
- (set-face-attribute 'mode-line-inactive nil :family "Noto Sans" :height 150)
-)
diff --git a/.emacs.local.d/modes/flycheck.el b/.emacs.local.d/modes/flycheck.el
deleted file mode 100644
index 6662c06..0000000
--- a/.emacs.local.d/modes/flycheck.el
+++ /dev/null
@@ -1,20 +0,0 @@
-;; Debian-packages: elpa-flycheck python3-proselint
-
-(flycheck-define-checker proselint
- "A linter for prose."
- :command ("proselint" source-inplace)
- :error-patterns
- ((warning line-start (file-name) ":" line ":" column ": "
- (id (one-or-more (not (any " "))))
- (message) line-end))
- :modes (text-mode markdown-mode gfm-mode org-mode))
-
-(add-to-list 'flycheck-checkers 'proselint)
-
-;; TODO: docker run --rm -p 8010:8010 erikvl87/languagetool
-(use-package flycheck-languagetool
- :ensure t
- :hook (message-mode . flycheck-languagetool-setup)
- :init
- (setq flycheck-languagetool-url "http://localhost:8010")
-)
diff --git a/.emacs.local.d/modes/flyspell.el b/.emacs.local.d/modes/flyspell.el
deleted file mode 100644
index 8cf27b8..0000000
--- a/.emacs.local.d/modes/flyspell.el
+++ /dev/null
@@ -1,12 +0,0 @@
-(defcustom flyspell-delayed-commands nil
- "List of commands that are \"delayed\" for Flyspell mode.
-After these commands, Flyspell checking is delayed for a short time,
-whose length is specified by `flyspell-delay'."
- :group 'flyspell
- :type '(repeat (symbol)))
-
-(setq ispell-dictionary "en")
-(setq flyspell-default-dictionary "en")
-
-(setq flyspell-issue-welcome-flag nil)
-(setq-default ispell-list-command "list")
diff --git a/.emacs.local.d/modes/fonts.el b/.emacs.local.d/modes/fonts.el
deleted file mode 100644
index 69eb304..0000000
--- a/.emacs.local.d/modes/fonts.el
+++ /dev/null
@@ -1,31 +0,0 @@
-;; elpa-packages: fontaine
-
-(setq fontaine-presets
- '((tiny
- :default-family "Fira Code Retina"
- :default-height 100)
- (small
- :default-family "Fira Code Retina"
- :default-height 120)
- (medium
- :default-height 140)
- (large
- :default-weight semilight
- :default-height 180
- :bold-weight extrabold)
- (presentation
- :default-weight semilight
- :default-height 200
- :bold-weight extrabold)
- (jumbo
- :default-weight semilight
- :default-height 230
- :bold-weight extrabold)
- (t
- :default-family "Fira Code Retina"
- :default-weight regular
- :default-height 140
- :variable-pitch-family "Fira Code Retina")))
-
-;; Set desired style from `fontaine-presets'
-(fontaine-set-preset 'medium)
diff --git a/.emacs.local.d/modes/go-lang.el b/.emacs.local.d/modes/go-lang.el
deleted file mode 100644
index 8ec678b..0000000
--- a/.emacs.local.d/modes/go-lang.el
+++ /dev/null
@@ -1,23 +0,0 @@
-;; Debian packages: elpa-go-mode
-;; Elpa packages: go-eldoc
-
-(use-package go-mode
- :ensure t
- :init
- (progn
- (bind-key [remap find-tag] #'godef-jump))
- :config
- (add-hook 'go-mode-hook #'yas-minor-mode)
- (add-hook 'go-mode-hook 'electric-pair-mode)
- (add-hook 'go-mode-hook 'my-go-mode-hook)
- (add-hook 'before-save-hook 'gofmt-before-save)
-)
-
-(use-package go-eldoc
- :ensure t
- :init
- (add-hook 'go-mode-hook 'go-eldoc-setup))
-
-;; Define function to call when go-mode loads
-(defun my-go-mode-hook ()
- (set 'compile-command "go build -v && go test -v && go vet"))
diff --git a/.emacs.local.d/modes/hydra.el b/.emacs.local.d/modes/hydra.el
deleted file mode 100644
index 8afe86f..0000000
--- a/.emacs.local.d/modes/hydra.el
+++ /dev/null
@@ -1,97 +0,0 @@
-(use-package hydra
- :defer 1)
-
-;; projectile
-(defhydra hydra-projectile-other-window (:color teal)
- "projectile-other-window"
- ("f" projectile-find-file-other-window "file")
- ("g" projectile-find-file-dwim-other-window "file dwim")
- ("d" projectile-find-dir-other-window "dir")
- ("b" projectile-switch-to-buffer-other-window "buffer")
- ("q" nil "cancel" :color blue))
-
-(defhydra hydra-projectile (:color teal
- :hint nil)
- "
- PROJECTILE: %(projectile-project-root)
-
- Find File Search/Tags Buffers Cache
-------------------------------------------------------------------------------------------
-_s-f_: file _a_: ag _i_: Ibuffer _c_: cache clear
- _ff_: file dwim _g_: update gtags _b_: switch to buffer _x_: remove known project
- _fd_: file curr dir _o_: multi-occur _s-k_: Kill all buffers _X_: cleanup non-existing
- _r_: recent file _s_: ripgrep ^^^^_z_: cache current
- _d_: dir
-
-"
- ("a" projectile-ag)
- ("b" projectile-switch-to-buffer)
- ("c" projectile-invalidate-cache)
- ("d" projectile-find-dir)
- ("s-f" projectile-find-file)
- ("ff" projectile-find-file-dwim)
- ("fd" projectile-find-file-in-directory)
- ("g" ggtags-update-tags)
- ("s-g" ggtags-update-tags)
- ("i" projectile-ibuffer)
- ("K" projectile-kill-buffers)
- ("s-k" projectile-kill-buffers)
- ("m" projectile-multi-occur)
- ("o" projectile-multi-occur)
- ("s-p" projectile-switch-project "switch project")
- ("p" projectile-switch-project)
- ("s" projectile-save-project-buffers "save project buffers")
- ("r" projectile-recentf)
- ("x" projectile-remove-known-project)
- ("X" projectile-cleanup-known-projects)
- ("z" projectile-cache-current-file)
- ("`" hydra-projectile-other-window/body "other window")
- ("q" nil "cancel" :color blue))
-
-
-(global-set-key (kbd "C-c p") 'hydra-projectile/body)
-
-;; tab-bar
-(defhydra hydra-tab-bar (:color amaranth)
- "Tab Bar Operations"
- ("t" tab-new "Create a new tab" :column "Creation" :exit t)
- ("d" dired-other-tab "Open Dired in another tab")
- ("f" find-file-other-tab "Find file in another tab")
- ("x" tab-close "Close current tab")
- ("m" tab-move "Move current tab" :column "Management")
- ("r" tab-rename "Rename Tab")
- ("<return>" tab-bar-select-tab-by-name "Select tab by name" :column "Navigation")
- ("l" tab-next "Next Tab")
- ("j" tab-previous "Previous Tab")
- ("q" nil "Exit" :exit t))
-
-(global-set-key (kbd "C-x t") 'hydra-tab-bar/body)
-
-;; Zoom
-(defhydra hydra-zoom ()
- "zoom"
- ("g" text-scale-increase "in")
- ("l" text-scale-decrease "out"))
-
-(global-set-key (kbd "C-c z") 'hydra-zoom/body)
-
-;; Go
-(defhydra hydra-go ()
- "zoom"
- ("=" gofmt :exit t)
- ("c" go-coverage :exit t))
-
-;; vterm
-(defhydra hydra-vterm ()
- "zoom"
- ("t" multi-vterm "Open a terminal" :exit t)
- ("d" multi-vterm-dedicated-open "Dedicated" :exit t)
- ("p" multi-vterm-prev "Previous terminal")
- ("n" multi-vterm-next "Next terminal")
- ("r" multi-vterm-rename-buffer "Rename buffer" :exit t)
- )
-
-(global-set-key (kbd "C-c t") 'hydra-vterm/body)
-
-
-(global-set-key (kbd "C-c m") 'hydra-go/body)
diff --git a/.emacs.local.d/modes/ibuffer.el b/.emacs.local.d/modes/ibuffer.el
deleted file mode 100644
index d5198d8..0000000
--- a/.emacs.local.d/modes/ibuffer.el
+++ /dev/null
@@ -1,35 +0,0 @@
-;; Debian packages: elpa-ibuffer-vc
-
-(use-package ibuffer ; Better buffer list
- :bind (([remap list-buffers] . ibuffer))
- ;; Show VC Status in ibuffer
- :config (setq ibuffer-formats
- '((mark modified read-only vc-status-mini " "
- (name 18 18 :left :elide)
- " "
- (size 9 -1 :right)
- " "
- (mode 16 16 :left :elide)
- " "
- (vc-status 16 16 :left)
- " "
- filename-and-process)
- (mark modified read-only " "
- (name 18 18 :left :elide)
- " "
- (size 9 -1 :right)
- " "
- (mode 16 16 :left :elide)
- " " filename-and-process)
- (mark " "
- (name 16 -1)
- " " filename))))
-
-(use-package ibuffer-vc ; Group buffers by VC project and status
- :ensure t
- :defer t
- :init (add-hook 'ibuffer-hook
- (lambda ()
- (ibuffer-vc-set-filter-groups-by-vc-root)
- (unless (eq ibuffer-sorting-mode 'alphabetic)
- (ibuffer-do-sort-by-alphabetic)))))
diff --git a/.emacs.local.d/modes/imenu.el b/.emacs.local.d/modes/imenu.el
deleted file mode 100644
index 1a2b29b..0000000
--- a/.emacs.local.d/modes/imenu.el
+++ /dev/null
@@ -1,12 +0,0 @@
-;; Debian packages: elpa-imenu-list
-(use-package imenu-list
- :ensure t
- :bind ("C-." . imenu-list-minor-mode)
- :config
- (setq imenu-list-focus-after-activation t)
- (setq imenu-list-size 0.2)
- (setq imenu-list-position 'left)
- (add-hook 'go-mode-hook #'imenu-list-minor-mode))
-
-
-
diff --git a/.emacs.local.d/modes/ivy.el b/.emacs.local.d/modes/ivy.el
deleted file mode 100644
index fcf69ca..0000000
--- a/.emacs.local.d/modes/ivy.el
+++ /dev/null
@@ -1,38 +0,0 @@
-(use-package ivy
- :diminish (ivy-mode . "")
- :init (ivy-mode 1) ; globally at startup
-
- :bind (:map ivy-minibuffer-map
- ("TAB" . ivy-alt-done))
- :config
- (setq ivy-use-virtual-buffers t)
- (setq ivy-height 20)
- (setq ivy-count-format "%d/%d ")
- (setq ivy-re-builders-alist
- '((swiper . ivy--regex-plus)
- (t . ivy--regex-fuzzy)))
-)
-
-;; Override the basic Emacs commands
-(use-package counsel
- :bind* ; load when pressed
- (("M-x" . counsel-M-x)
- ("C-s" . swiper)
- ("C-x C-f" . counsel-find-file)
- ("C-x C-r" . counsel-recentf) ; search for recently edited
- ("C-c g" . counsel-git) ; search for files in git repo
- ("C-c /" . counsel-ag) ; Use ag for regexp
- ("C-x l" . counsel-locate)
- ("C-x C-f" . counsel-find-file)
- ("<f1> f" . counsel-describe-function)
- ("<f1> v" . counsel-describe-variable)
- ("<f1> l" . counsel-find-library)
- ("<f2> i" . counsel-info-lookup-symbol)
- ("<f2> u" . counsel-unicode-char)
- ("C-c C-r" . ivy-resume))) ; Resume last Ivy-based completion
-
-(use-package ivy-hydra
- :defer t
- :after hydra)
-
-(provide 'init-ivy)
diff --git a/.emacs.local.d/modes/latex.el b/.emacs.local.d/modes/latex.el
deleted file mode 100644
index de4de1f..0000000
--- a/.emacs.local.d/modes/latex.el
+++ /dev/null
@@ -1,9 +0,0 @@
-(add-hook 'latex-mode-hook 'flyspell-mode)
-(setq TeX-PDF-mode t)
-
-(defun pdfevince ()
- (add-to-list 'TeX-output-view-style
- '("^pdf$" "." "evince %o %(outpage)")))
-
-(add-hook 'LaTeX-mode-hook 'pdfevince t) ; AUCTeX LaTeX mode
-
diff --git a/.emacs.local.d/modes/logos.el b/.emacs.local.d/modes/logos.el
deleted file mode 100644
index 23d9937..0000000
--- a/.emacs.local.d/modes/logos.el
+++ /dev/null
@@ -1,29 +0,0 @@
-(use-package logos
-:ensure t
-:config
-
-;; If you want to use outlines instead of page breaks (the ^L)
-(setq logos-outlines-are-pages t)
-(setq logos-outline-regexp-alist
- `((emacs-lisp-mode . "^;;;+ ")
- (org-mode . "^\\*+ +")
- (markdown-mode . "^\\#+ +")
- ))
-
-;; These apply when `logos-focus-mode' is enabled. Their value is
-;; buffer-local.
-(setq-default logos-hide-mode-line t
- logos-hide-buffer-boundaries t
- logos-hide-fringe t
- logos-variable-pitch nil
- logos-buffer-read-only nil
- logos-scroll-lock nil
- logos-olivetti t)
-
-
-(let ((map global-map))
- (define-key map [remap narrow-to-region] #'logos-narrow-dwim)
- (define-key map [remap forward-page] #'logos-forward-page-dwim)
- (define-key map [remap backward-page] #'logos-backward-page-dwim)
- (define-key map (kbd "<f9>") #'logos-focus-mode))
-)
diff --git a/.emacs.local.d/modes/lsp.el b/.emacs.local.d/modes/lsp.el
deleted file mode 100644
index a565b03..0000000
--- a/.emacs.local.d/modes/lsp.el
+++ /dev/null
@@ -1,17 +0,0 @@
-(use-package lsp-mode
- :ensure t
- :commands
- (lsp lsp-deferred)
- :hook
- (dart-mode go-mode . lsp)
- :init
- (setq lsp-keymap-prefix "H-l")
- )
-
-(defun lsp-go-install-save-hooks ()
- (add-hook 'before-save-hook #'lsp-format-buffer t t)
- (add-hook 'before-save-hook #'lsp-organize-imports t t))
-
-(use-package lsp-ui
- :ensure t
- :commands lsp-ui-mode)
diff --git a/.emacs.local.d/modes/magit.el b/.emacs.local.d/modes/magit.el
deleted file mode 100644
index cd52e67..0000000
--- a/.emacs.local.d/modes/magit.el
+++ /dev/null
@@ -1,15 +0,0 @@
-;; Debian packages: elpa-magit
-
-(use-package magit
- :ensure t
- :defer t
- :bind (("C-x g" . magit-status))
- :config
- (progn
- (defun inkel/magit-log-edit-mode-hook ()
- (flyspell-mode t)
- (turn-on-auto-fill))
- (defadvice magit-status (around magit-fullscreen activate)
- (window-configuration-to-register :magit-fullscreen)
- ad-do-it
- (delete-other-windows))))
diff --git a/.emacs.local.d/modes/mail-mode.el b/.emacs.local.d/modes/mail-mode.el
deleted file mode 100644
index 4969f0a..0000000
--- a/.emacs.local.d/modes/mail-mode.el
+++ /dev/null
@@ -1,12 +0,0 @@
-(setq mml-secure-openpgp-sign-with-sender t)
-
-(add-to-list 'auto-mode-alist '("/mutt" . mail-mode))
-(add-hook 'mail-mode-hook
- (lambda ()
- (font-lock-add-keywords nil
- '(("^[ \t]*>[ \t]*>[ \t]*>.*$"
- (0 'compilation-error))
- ("^[ \t]*>[ \t]*>.*$"
- (0 'compilation-column-number))
- ("^[ \t]*>.*$"
- (0 'comint-highlight-prompt))))))
diff --git a/.emacs.local.d/modes/markdown.el b/.emacs.local.d/modes/markdown.el
deleted file mode 100644
index f035509..0000000
--- a/.emacs.local.d/modes/markdown.el
+++ /dev/null
@@ -1,5 +0,0 @@
-(autoload 'markdown-mode "markdown-mode.el"
- "Major mode for editing Markdown files" t)
-
-(setq auto-mode-alist
- (cons '("\\.mdwn" . markdown-mode) auto-mode-alist))
diff --git a/.emacs.local.d/modes/mu4e.el b/.emacs.local.d/modes/mu4e.el
deleted file mode 100644
index da8b7c8..0000000
--- a/.emacs.local.d/modes/mu4e.el
+++ /dev/null
@@ -1,61 +0,0 @@
-(require 'mu4e)
-
-;; sending mail
-(setq message-send-mail-function 'message-send-mail-with-sendmail
- sendmail-program "/home/lur/bin/te-msmtp"
- user-mail-address "raul@thousandeyes.com"
- user-full-name "Raúl Benencia")
-
-(setq mu4e-user-mail-address-list (list "raul@thousandeyes.com"))
-
-(setq message-kill-buffer-on-exit t)
-;; Use fancy chars
-(setq mu4e-use-fancy-chars t)
-;; don't save message to Sent Messages, Gmail/IMAP takes care of this
-(setq mu4e-sent-messages-behavior 'delete)
-(setq mu4e-update-interval 60) ;; update every 5 minutes
-
-;; use 'fancy' non-ascii characters in various places in mu4e
-;;(setq mu4e-use-fancy-chars t)
-
-(setq relevant-maildirs " (maildir:/INBOX OR maildir:/jira OR maildir:/news OR maildir:/git)")
-(mu4e-alert-enable-notifications)
-(mu4e-alert-set-default-style 'libnotify)
-(setq mu4e-alert-interesting-mail-query
- (concat "flag:unread"
- " AND NOT flag:trashed"
- " AND" relevant-maildirs))
-
-(mu4e-alert-set-default-style 'libnotify)
-;;(add-hook 'after-init-hook #'mu4e-alert-enable-notifications)
-(add-hook 'after-init-hook #'mu4e-alert-enable-mode-line-display)
-
-(setq mu4e-bookmarks
- `(,(make-mu4e-bookmark
- :name "INBOX"
- :query "maildir:/INBOX"
- :key ?i)
- ,(make-mu4e-bookmark
- :name "Unread messages"
- :query (concat "flag:unread AND NOT flag:trashed AND" relevant-maildirs)
- :key ?u)
- ,(make-mu4e-bookmark
- :name "Today's messages"
- :query (concat "date:today..now AND" relevant-maildirs)
- :key ?t)
- ,(make-mu4e-bookmark
- :name "Last 7 days"
- :query (concat "date:7d..now AND" relevant-maildirs)
- :key ?w)
- ,(make-mu4e-bookmark
- :name "Today's unread logs "
- :query (concat "date:today..now flag:unread AND NOT" relevant-maildirs)
- :key ?l)
- ,(make-mu4e-bookmark
- :name "Today's logs "
- :query (concat "date:today..now AND NOT maildir:/fim AND NOT" relevant-maildirs)
- :key ?l))
-)
-
-;; (require 'mu4e-maildirs-extension)
-;; (mu4e-maildirs-extension)
diff --git a/.emacs.local.d/modes/notmuch.el b/.emacs.local.d/modes/notmuch.el
deleted file mode 100644
index 19ea823..0000000
--- a/.emacs.local.d/modes/notmuch.el
+++ /dev/null
@@ -1,133 +0,0 @@
-;; --------
-;; notmuch mode
-;; --------
-(require 'notmuch)
-(require 'notmuch-indicator)
-(require 'rul-config-mail)
-
-;;;; General UI
-(setq notmuch-show-logo nil
- notmuch-column-control 1.0
- notmuch-hello-auto-refresh t
- notmuch-hello-recent-searches-max 20
- notmuch-hello-thousands-separator ""
- notmuch-show-all-tags-list t)
-
-;; Keymaps
-(defun rul/capture-mail()
- "Capture mail to org mode."
- (interactive)
- (org-store-link nil)
- (org-capture nil "m")
- )
-
-(bind-key "c" 'rul/capture-mail notmuch-show-mode-map)
-
-(define-key notmuch-show-mode-map "R" 'notmuch-show-reply)
-(define-key notmuch-search-mode-map "R" 'notmuch-search-reply-to-thread)
-
-; Spam
-(define-key notmuch-show-mode-map "S"
- (lambda ()
- "mark message as spam"
- (interactive)
- (notmuch-show-tag (list "+spam" "-inbox" "-unread"))))
-
-(define-key notmuch-search-mode-map "S"
- (lambda (&optional beg end)
- "mark thread as spam"
- (interactive (notmuch-search-interactive-region))
- (notmuch-search-tag (list "+spam" "-inbox" "-unread") beg end)))
-
-; Archive
-(setq notmuch-archive-tags (list "-inbox" "+archive"))
-(define-key notmuch-show-mode-map "A"
- (lambda ()
- "archive"
- (interactive)
- (notmuch-show-tag (list "+archive" "-inbox" "-unread"))
- (notmuch-refresh-this-buffer)))
-
-(define-key notmuch-search-mode-map "A"
- (lambda (&optional beg end)
- "archive thread"
- (interactive (notmuch-search-interactive-region))
- (notmuch-search-tag (list "+archive" "-inbox" "-unread") beg end)
- (notmuch-refresh-this-buffer)))
-
-; Mark as read
-(define-key notmuch-search-mode-map "r"
- (lambda (&optional beg end)
- "mark thread as read"
- (interactive (notmuch-search-interactive-region))
- (notmuch-search-tag (list "-unread") beg end)
- (notmuch-search-next-thread)))
-
-(define-key notmuch-search-mode-map (kbd "RET")
- (lambda ()
- "Show the selected thread with notmuch-tree if it has more
-than one email. Use notmuch-show otherwise."
- (interactive)
- (if (= (plist-get (notmuch-search-get-result) :total) 1)
- (notmuch-search-show-thread)
- (notmuch-tree (notmuch-search-find-thread-id)
- notmuch-search-query-string
- nil
- (notmuch-prettify-subject (notmuch-search-find-subject))))))
-
-(defun color-inbox-if-unread () (interactive)
- (save-excursion
- (goto-char (point-min))
- (let ((cnt (car (process-lines "notmuch" "count" "tag:inbox and tag:unread"))))
- (when (> (string-to-number cnt) 0)
- (save-excursion
- (when (search-forward "inbox" (point-max) t)
- (let* ((overlays (overlays-in (match-beginning 0) (match-end 0)))
- (overlay (car overlays)))
- (when overlay
- (overlay-put overlay 'face '((:inherit bold) (:foreground "green")))))))))))
-
-(defvar notmuch-hello-refresh-count 0)
-(defun notmuch-hello-refresh-status-message ()
- (let* ((new-count
- (string-to-number
- (car (process-lines notmuch-command "count"))))
- (diff-count (- new-count notmuch-hello-refresh-count)))
- (cond
- ((= notmuch-hello-refresh-count 0)
- (message "You have %s messages."
- (notmuch-hello-nice-number new-count)))
- ((> diff-count 0)
- (message "You have %s more messages since last refresh."
- (notmuch-hello-nice-number diff-count)))
- ((< diff-count 0)
- (message "You have %s fewer messages since last refresh."
- (notmuch-hello-nice-number (- diff-count)))))
- (setq notmuch-hello-refresh-count new-count)))
-
-(add-hook 'notmuch-hello-refresh-hook 'color-inbox-if-unread)
-(add-hook 'notmuch-hello-refresh-hook 'notmuch-hello-refresh-status-message)
-
-(setq notmuch-hello-sections '(notmuch-hello-insert-saved-searches
- notmuch-hello-insert-search
- notmuch-hello-insert-recent-searches
- notmuch-hello-insert-alltags
- ))
-
-;; https://git.sr.ht/~tslil/dotfiles/tree/4e51afbb/emacs/notmuch-config.el#L76-82
-(defmacro make-binds (mode-map binds argfunc &rest body)
- "Create keybindings in `mode-map' using a list of (keystr . arg)
-pairs in `binds' of the form ( ... (argfunc arg) body)."
- `(progn ,@(mapcar (lambda (pair)
- `(define-key ,mode-map (kbd ,(car pair))
- (lambda () (interactive) (,argfunc ,(cdr pair)) ,@body)))
- (eval binds))))
-
-(defvar notmuch-hello-tree-searches '(("u" . "tag:unread")
- ("i" . "tag:inbox")
- ("*" . "*"))
- "List of (key . query) pairs to bind in notmuch-hello.")
-
-(make-binds notmuch-hello-mode-map
- notmuch-hello-tree-searches
- notmuch-search)
diff --git a/.emacs.local.d/modes/projectile.el b/.emacs.local.d/modes/projectile.el
deleted file mode 100644
index df85aec..0000000
--- a/.emacs.local.d/modes/projectile.el
+++ /dev/null
@@ -1,9 +0,0 @@
-;; Debian packages: elpa-projectile
-
-(use-package projectile
- :hook
- (after-init . projectile-global-mode)
- :config
- (require 'rul-config-projectile)
- (setq projectile-completion-system 'ivy)
-)
diff --git a/.emacs.local.d/modes/python.el b/.emacs.local.d/modes/python.el
deleted file mode 100644
index 3186c72..0000000
--- a/.emacs.local.d/modes/python.el
+++ /dev/null
@@ -1 +0,0 @@
-(add-hook 'python-mode-hook 'py-autopep8-enable-on-save)
diff --git a/.emacs.local.d/modes/sml.el b/.emacs.local.d/modes/sml.el
deleted file mode 100644
index 247d9b2..0000000
--- a/.emacs.local.d/modes/sml.el
+++ /dev/null
@@ -1,7 +0,0 @@
-;; Debian packages: elpa-smart-mode-line elpa-smart-mode-line-powerline-theme
-
-(use-package smart-mode-line
- :ensure t
- :config
- (setq sml/theme 'respectful)
- (sml/setup))
diff --git a/.emacs.local.d/modes/tabbar.el b/.emacs.local.d/modes/tabbar.el
deleted file mode 100644
index a492e85..0000000
--- a/.emacs.local.d/modes/tabbar.el
+++ /dev/null
@@ -1,25 +0,0 @@
-(global-set-key (kbd "C-<next>") 'tab-bar-switch-to-next-tab)
-(global-set-key (kbd "C-<prior>") 'tab-bar-switch-to-prev-tab)
-
-(setq tab-bar-show t)
-
-(defun my/project-create-tab ()
- (interactive)
- (tab-bar-new-tab)
- (magit-status))
-
-(setq project-switch-commands #'my/project-create-tab)
-
-(defun my/switch-to-tab-buffer ()
- (interactive)
- (if (project-current)
- (call-interactively #'projectile-switch-to-buffer)
- (call-interactively #'switch-to-buffer)))
-
-(global-set-key (kbd "C-x b") #'my/switch-to-tab-buffer)
-
-;; Turn on tab bar mode after startup
-(tab-bar-mode 1)
-
-;; Save the desktop session
-(desktop-save-mode 1)
diff --git a/.emacs.local.d/modes/themes.el b/.emacs.local.d/modes/themes.el
deleted file mode 100644
index c94d4a1..0000000
--- a/.emacs.local.d/modes/themes.el
+++ /dev/null
@@ -1,47 +0,0 @@
-(use-package ef-themes :ensure t)
-
-(setq
- modus-themes-mode-line '(accented borderless padded)
- modus-themes-region '(bg-only)
- modus-themes-bold-constructs t
- modus-themes-italic-constructs t
- modus-themes-paren-match '(bold intense)
- modus-themes-headings (quote ((1 . (rainbow variable-pitch 1.3))
- (2 . (rainbow 1.1))
- (t . (rainbow))))
- modus-themes-org-blocks 'tinted
- )
-
-(use-package dbus)
-(defun mf/set-theme-from-dbus-value (value)
- "Set the appropiate theme according to the color-scheme setting value."
- (message "value is %s" value)
- (if (equal value '1)
- (progn (message "Switch to dark theme")
- (modus-themes-select 'modus-vivendi-tinted))
- (progn (message "Switch to light theme")
- (modus-themes-select 'modus-operandi-tinted))))
-
-(defun mf/color-scheme-changed (path var value)
- "DBus handler to detect when the color-scheme has changed."
- (when (and (string-equal path "org.freedesktop.appearance")
- (string-equal var "color-scheme"))
- (mf/set-theme-from-dbus-value (car value))
- ))
-
-;; Register for future changes
-(dbus-register-signal
- :session "org.freedesktop.portal.Desktop"
- "/org/freedesktop/portal/desktop" "org.freedesktop.portal.Settings"
- "SettingChanged"
- #'mf/color-scheme-changed)
-
-;; Request the current color-scheme
-(dbus-call-method-asynchronously
- :session "org.freedesktop.portal.Desktop"
- "/org/freedesktop/portal/desktop" "org.freedesktop.portal.Settings"
- "Read"
- (lambda (value) (mf/set-theme-from-dbus-value (caar value)))
- "org.freedesktop.appearance"
- "color-scheme"
- )
diff --git a/.emacs.local.d/modes/vterm.el b/.emacs.local.d/modes/vterm.el
deleted file mode 100644
index 54abbbf..0000000
--- a/.emacs.local.d/modes/vterm.el
+++ /dev/null
@@ -1,6 +0,0 @@
-(use-package multi-vterm
-:ensure t
-:config
-(setq
- vterm-max-scrollback 100000
-))
diff --git a/.emacs.local.d/modes/which-key.el b/.emacs.local.d/modes/which-key.el
deleted file mode 100644
index 1d8fd8d..0000000
--- a/.emacs.local.d/modes/which-key.el
+++ /dev/null
@@ -1,5 +0,0 @@
-(use-package which-key
- :ensure t
- :config
- (which-key-mode)
-)
diff --git a/.emacs.local.d/modes/writeroom.el b/.emacs.local.d/modes/writeroom.el
deleted file mode 100644
index 50780cc..0000000
--- a/.emacs.local.d/modes/writeroom.el
+++ /dev/null
@@ -1,34 +0,0 @@
-(use-package writeroom-mode
- :defer t
- :config
- (setq writeroom-width 140
- writeroom-mode-line nil
- writeroom-global-effects '(writeroom-set-bottom-divider-width
- writeroom-set-internal-border-width
- (lambda (arg)
- (let ((langs '("python"
- "emacs-lisp"
- "common-lisp"
- "js"
- "ruby")))
- (cond
- ((= arg 1)
- (progn
- (setq org-src-block-faces
- (mapcar (lambda (lang) (list lang '(:family "Source Code Pro" :height 0.8))) langs))
- (normal-mode)
- (variable-pitch-mode)))
- ((= arg -1)
- (progn
- (setq org-src-block-faces
- (mapcar (lambda (lang) (list lang '(:family "Source Code Pro" :height 1.0))) langs))
- (normal-mode)
- (variable-pitch-mode)
-(variable-pitch-mode)))))))))
-
-(use-package olivetti
- :defer t
- :config
- (setq
- olivetti-body-width 86
- ))
diff --git a/.emacs.local.d/staging.el b/.emacs.local.d/staging.el
deleted file mode 100644
index 7134fc3..0000000
--- a/.emacs.local.d/staging.el
+++ /dev/null
@@ -1,158 +0,0 @@
-;; Debian packages: elpa-consult elpa-orderless elpa-vertico elpa-marginalia
-
-;; Example configuration for Consult
-(use-package consult
- ;; Replace bindings. Lazily loaded due 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 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)
- ("M-s D" . 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-<down>" "S-<up>"))
- ;; 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.
- ;; (define-key consult-narrow-map (vconcat consult-narrow-key "?") #'consult-narrow-help)
-
- ;; By default `consult-project-function' uses `project-root' from project.el.
- ;; Optionally configure a different project root function.
- ;;;; 1. project.el (the default)
- ;; (setq consult-project-function #'consult--default-project--function)
- ;;;; 2. vc.el (vc-root-dir)
- ;; (setq consult-project-function (lambda (_) (vc-root-dir)))
- ;;;; 3. locate-dominating-file
- ;; (setq consult-project-function (lambda (_) (locate-dominating-file "." ".git")))
- ;;;; 4. projectile.el (projectile-project-root)
- ;; (autoload 'projectile-project-root "projectile")
- ;; (setq consult-project-function (lambda (_) (projectile-project-root)))
- ;;;; 5. No project support
- ;; (setq consult-project-function nil)
-)
-
-;; Enable vertico
-(use-package vertico
- :init
- (vertico-mode)
-
- ;; Different scroll margin
- ;; (setq vertico-scroll-margin 0)
-
- ;; Show more candidates
- ;; (setq vertico-count 20)
-
- ;; Grow and shrink the Vertico minibuffer
- ;; (setq vertico-resize t)
-
- ;; Optionally enable cycling for `vertico-next' and `vertico-previous'.
- ;; (setq vertico-cycle t)
- )
-
-;; Enable rich annotations using the Marginalia package
-(use-package marginalia
- ;; Bind `marginalia-cycle' locally in the minibuffer. To make the binding
- ;; available in the *Completions* buffer, add it to the
- ;; `completion-list-mode-map'.
- :bind (:map minibuffer-local-map
- ("M-A" . marginalia-cycle))
-
- ;; The :init section is always executed.
- :init
-
- ;; Marginalia must be actived in the :init section of use-package such that
- ;; the mode gets enabled right away. Note that this forces loading the
- ;; package.
- (marginalia-mode))
-
-(setq completion-styles '(flex basic)
- completion-category-defaults nil
- completion-category-overrides nil)
nihil fit ex nihilo