diff options
Diffstat (limited to '.emacs.local.d')
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) |