summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2024-10-28 21:12:40 -0400
committerbd <bdunahu@operationnull.com>2024-10-28 21:13:41 -0400
commit89889525ccf70b36ac06e5bf9294ecf7fd0066de (patch)
tree9413e969b24edcacadc1a1e087bcbe99080af029
parent1efe6886049b0143e55ccb77dc7d59966e9dd081 (diff)
More cleanup and use-package
-rw-r--r--.config/emacs/init.el13
-rw-r--r--.config/emacs/modules/bd--buffers.el2
-rw-r--r--.config/emacs/modules/bd--devel.el2
-rw-r--r--.config/emacs/modules/bd--erc.el7
-rw-r--r--.config/emacs/modules/bd--files.el113
-rw-r--r--.config/emacs/modules/bd--gpg.el16
-rw-r--r--.config/emacs/modules/bd--image.el28
-rw-r--r--.config/emacs/modules/bd--modeline.el7
-rw-r--r--.config/emacs/modules/bd--notes.el60
-rw-r--r--.config/emacs/modules/bd--org.el171
-rw-r--r--.config/emacs/modules/bd--project.el18
-rw-r--r--.config/emacs/modules/bd--rss.el35
-rw-r--r--.config/emacs/modules/bd--tabs.el81
-rw-r--r--.config/emacs/modules/bd--themes.el8
14 files changed, 264 insertions, 297 deletions
diff --git a/.config/emacs/init.el b/.config/emacs/init.el
index 555e85f..3bfc73e 100644
--- a/.config/emacs/init.el
+++ b/.config/emacs/init.el
@@ -41,10 +41,19 @@
next-line-add-newlines t
scroll-up-aggressively '0.50
scroll-down-aggressively '0.50)
+(setopt use-short-answers t
+ vc-follow-symlinks t
+ completion-ignore-case t
+ read-buffer-completion-ignore-case t)
(setq-default tab-width 8)
+(menu-bar-mode -1)
+(tool-bar-mode -1)
+(scroll-bar-mode -1)
+(fringe-mode '(0 . 0))
(tooltip-mode -1)
(global-hl-line-mode 1)
(global-visual-line-mode t)
+(minibuffer-depth-indicate-mode 1)
;;;; gnus
@@ -81,12 +90,13 @@
;;;; load modules
+(require 'bd--secret) ;; (gitignored)
(require 'bd--browse)
(require 'bd--rss)
(require 'bd--gpg)
(require 'bd--tabs)
+(require 'bd--project)
(require 'bd--files)
-(require 'bd--image)
(require 'bd--dictionary)
(require 'bd--erc)
(require 'bd--shells)
@@ -99,7 +109,6 @@
(require 'bd--modeline)
(require 'bd--themes)
(require 'bd--exwm-windowing)
-(require 'bd--secret) ;; (gitignored)
;;; init.el ends here
diff --git a/.config/emacs/modules/bd--buffers.el b/.config/emacs/modules/bd--buffers.el
index c80e75f..c2702f4 100644
--- a/.config/emacs/modules/bd--buffers.el
+++ b/.config/emacs/modules/bd--buffers.el
@@ -3,6 +3,8 @@
;;; Code:
+(require 'selector)
+
;; dedication
(defun toggle-current-window-dedication ()
"Adds or revokes dedicated window status from a buffer. A
diff --git a/.config/emacs/modules/bd--devel.el b/.config/emacs/modules/bd--devel.el
index c1254b9..3f77a58 100644
--- a/.config/emacs/modules/bd--devel.el
+++ b/.config/emacs/modules/bd--devel.el
@@ -28,7 +28,7 @@ to.")
(indent-tabs-mode 0)
-;; skr is a scheme extension
+;; skr (skribe) is a scheme extension
(add-to-list 'auto-mode-alist '("\\.skr\\'" . scheme-mode))
(use-package autoformat
diff --git a/.config/emacs/modules/bd--erc.el b/.config/emacs/modules/bd--erc.el
index 4597fae..af5301b 100644
--- a/.config/emacs/modules/bd--erc.el
+++ b/.config/emacs/modules/bd--erc.el
@@ -3,7 +3,6 @@
;;; Code:
-(require 'erc)
(with-eval-after-load "erc" (defalias 'erc 'erc-tls))
(use-package erc
:defer t
@@ -14,12 +13,6 @@
(erc-nick "Isaz")
(erc-prompt-for-password t)
(erc-kill-buffer-on-part t)
- ;; (erc-autojoin-channels-alist '(("libera.chat"
- ;; "#emacs"
- ;; "##furry"
- ;; "#guile"
- ;; "#guix"
- ;; "#parabola")))
(erc-autojoin-channels-alist nil)
(erc-fill-function 'erc-fill-static)
(erc-fill-column 80)
diff --git a/.config/emacs/modules/bd--files.el b/.config/emacs/modules/bd--files.el
index 52b46ae..a39f21c 100644
--- a/.config/emacs/modules/bd--files.el
+++ b/.config/emacs/modules/bd--files.el
@@ -4,79 +4,64 @@
(require 'recentf)
-(defmacro bd/defun-find-file-wrapper (name types open-f)
- `(defun ,name (f &rest args)
- "Wrapper around F (find-file), passing ARGS."
- (if (string-match (regexp-opt ,types) (or (file-name-extension (car args)) ""))
- (progn
- (,(eval open-f) (car args))
- (recentf-add-file (car args))
- nil)
- (apply f args))))
-;;;; dired
-(defun bd/dired-find-file ()
- (interactive)
- (if (file-directory-p (dired-get-file-for-visit))
- (dired-find-alternate-file)
- (dired-find-file)))
-(defun bd/dired-up-directory ()
- (interactive)
- (let ((buf (current-buffer)))
- (dired-up-directory)
- (kill-buffer buf)))
-(require 'dired)
-(keymap-global-set "C-c d" 'dired-jump)
-(keymap-set dired-mode-map "RET" #'bd/dired-find-file)
-(keymap-set dired-mode-map "^" #'bd/dired-up-directory)
-(setopt dired-listing-switches "-alhLG --time-style=long-iso --group-directories-first"
-
- dired-recursive-copies 'always
- dired-recursive-deletes 'always
-
- dired-auto-revert-buffer t
-
- ;; "dwim": guess where to move files
- dired-dwim-target t
-
- dired-guess-shell-alist-user
- `((,(regexp-opt '(".pdf")) "pdftotext -nopgbrk -enc UTF-8 -eol unix -layout")
- (,(regexp-opt '(".html")) "icecat &")))
-
-;; pdf
(defun bd/zathura (file)
"Open FILE with zathura"
- (interactive)
- (start-process (concat "zathura (" (file-name-base file) ")") nil "zathura" (expand-file-name file)))
-
-(bd/defun-find-file-wrapper bd/pdf-find-file-wrapper
- '("epub" "pdf")
- #'bd/zathura)
-(advice-add 'find-file :around #'bd/pdf-find-file-wrapper)
-
-;; video
+ (start-process "zathura" nil "zathura" (expand-file-name file)))
(defun bd/mpv (file)
"Open FILE with mpv"
- (start-process (concat "mpv (" (file-name-base file) ")") nil "mpv" "--force-window=yes" (expand-file-name file)))
-
-
-(bd/defun-find-file-wrapper bd/video-find-file-wrapper
- '("mkv" "mov" "mp4" "webm" "m4v" "wav" "mp3" "opus" "ogv" "flac")
- #'bd/mpv)
-(advice-add 'find-file :around 'bd/video-find-file-wrapper)
-
-;; image
+ (start-process "mpv" nil "mpv" "--force-window=yes" (expand-file-name file)))
(defun bd/nsxiv (file)
"Open FILE with nsxiv"
- (start-process (concat "nsxiv (" (file-name-base file) ")") nil "nsxiv" (expand-file-name file)))
-(bd/defun-find-file-wrapper bd/image-find-file-wrapper
- '("jpg" "jpeg" "png" "webp" "bmp" "ico" "gif" "JPG" "PNG")
- #'bd/nsxiv)
-(advice-add 'find-file :around 'bd/image-find-file-wrapper)
-
+ (start-process "nsxiv" nil "nsxiv" (expand-file-name file)))
+
+(defun bd/external-find-file-wrapper (f &rest args)
+ "Wrapper around F (find-file), passing ARGS."
+ (defun runner (f)
+ (funcall f (car args))
+ (recentf-add-file (car args)))
+
+ (let ((ext (or (file-name-extension (car args)) "")))
+ (cond
+ ((string-match (regexp-opt '("epub" "pdf")) ext)
+ (runner #'bd/zathura))
+ ((string-match (regexp-opt '("mkv" "mov" "mp4" "webm" "m4v"
+ "wav" "mp3" "opus" "ogv" "flac")) ext)
+ (runner #'bd/mpv))
+ ((string-match (regexp-opt '("jpg" "jpeg" "png" "webp"
+ "ico" "gif" "JPG" "PNG")) ext)
+ (runner #'bd/nsxiv))
+ (t (apply f args)))))
+(advice-add 'find-file :around #'bd/external-find-file-wrapper)
+
+(use-package dired
+ :bind
+ (("C-c d" . dired-jump))
+ :config
+ (defun bd/dired-find-file ()
+ (interactive)
+ (if (file-directory-p (dired-get-file-for-visit))
+ (dired-find-alternate-file)
+ (dired-find-file)))
+ (defun bd/dired-up-directory ()
+ (interactive)
+ (let ((buf (current-buffer)))
+ (dired-up-directory)
+ (kill-buffer buf)))
+
+ (keymap-set dired-mode-map "RET" #'bd/dired-find-file)
+ (keymap-set dired-mode-map "^" #'bd/dired-up-directory)
+ :custom
+ (dired-listing-switches "-alhLG --time-style=long-iso --group-directories-first")
+ (dired-recursive-copies 'always)
+ (dired-recursive-deletes 'always)
+ (dired-auto-revert-buffer t)
+ (dired-dwim-target t)
+ (dired-guess-shell-alist-user
+ `((,(regexp-opt '(".pdf")) "pdftotext -nopgbrk -enc UTF-8 -eol unix -layout")
+ (,(regexp-opt '(".html")) "icecat &"))))
-;;;; transmission
(use-package transmission
:bind
(:map transmission-mode-map
diff --git a/.config/emacs/modules/bd--gpg.el b/.config/emacs/modules/bd--gpg.el
index f3d55cb..ae4e527 100644
--- a/.config/emacs/modules/bd--gpg.el
+++ b/.config/emacs/modules/bd--gpg.el
@@ -4,13 +4,13 @@
(require 'f)
+(require 'selector)
(defvar bd/password-store-kill-ring-pointer nil
"The tail of the kill ring whose car is the password.")
(defvar bd/password-store-time-before-clear 10
"The time before a killed password is cleared.")
-;;;; passwords
(defun bd/password-store-list ()
"List password-store entries."
(mapcar (lambda (file)
@@ -53,21 +53,19 @@
(interactive)
(selector (list (bd/selector-passwords))))
-;; pinentry
(use-package pinentry
:config
(pinentry-start)
+ (defun pinentry-toggle ()
+ "Stops and starts Pinentry service. Workaround
+for a bug I've encountered."
+ (interactive)
+ (pinentry-stop)
+ (pinentry-start))
:custom
(enable-recursive-minibuffers t)
(pinentry-popup-prompt-window nil))
-(defun pinentry-toggle ()
- "Stops and starts Pinentry service. Workaround
-for a bug I've encountered."
- (interactive)
- (pinentry-stop)
- (pinentry-start))
-
(provide 'bd--gpg)
;;; bd-gpg ends here
diff --git a/.config/emacs/modules/bd--image.el b/.config/emacs/modules/bd--image.el
index ca2a11a..b8aaccb 100644
--- a/.config/emacs/modules/bd--image.el
+++ b/.config/emacs/modules/bd--image.el
@@ -1,25 +1,21 @@
;;; -*- lexical-binding: t; -*-
;;; Commentary:
+;;; not loaded bd 10/28/24
;;; Code:
-(require 'image-mode)
-(defun toggle-mode-line ()
- "If the mode line is displayed, toggle it off.
+(use-package image-mode
+ :custom
+ (defun toggle-mode-line ()
+ "If the mode line is displayed, toggle it off.
If the mode line is off, set it to the default value."
- (interactive)
- (setq mode-line-format
- (if mode-line-format
- nil
- (default-value 'mode-line-format))))
-
-
-;;;; hooks
-(add-hook 'image-mode-hook 'toggle-mode-line)
-
-
-;;;; binds
-(keymap-set image-mode-map "l" #'toggle-mode-line)
+ (interactive)
+ (setq mode-line-format
+ (if mode-line-format
+ nil
+ (default-value 'mode-line-format))))
+ (add-hook 'image-mode-hook 'toggle-mode-line)
+ (keymap-set image-mode-map "l" #'toggle-mode-line))
(provide 'bd--image)
diff --git a/.config/emacs/modules/bd--modeline.el b/.config/emacs/modules/bd--modeline.el
index 701c692..0602b19 100644
--- a/.config/emacs/modules/bd--modeline.el
+++ b/.config/emacs/modules/bd--modeline.el
@@ -1,11 +1,10 @@
;;; -*- lexical-binding: t; -*-
;;; Commentary:
-;;; Note this currently requires many of the previous modules to be loaded
-;;; to function properly.
+;;; probably load this last
;;; Code:
-;;;; remove mode-line-clutter
+;;;; remove all the stupid stupid stupid crap
(define-minor-mode minor-mode-blackout-mode
"Hides minor modes from the mode line."
t)
@@ -19,7 +18,6 @@
(setcdr x (list "" original)))
(throw 'done t)))
mode-line-modes))
-
(global-set-key (kbd "C-c ,") 'minor-mode-blackout-mode)
(defface bd/underline-shadow
@@ -72,7 +70,6 @@
(put construct 'risky-local-variable t))
-;; set elements; move modeline to top
(setq-default mode-line-format
(list
mode-line-front-space
diff --git a/.config/emacs/modules/bd--notes.el b/.config/emacs/modules/bd--notes.el
index a9f58b5..fafc56a 100644
--- a/.config/emacs/modules/bd--notes.el
+++ b/.config/emacs/modules/bd--notes.el
@@ -12,6 +12,34 @@
("C-c l" . 'denote-link))
:config
(require 'denote-journal-extras)
+
+ ;;;; skribe
+ (defvar bd/denote-skribe-front-matter
+ "(post
+ :title \"%s\"
+ :date %s
+ :tags '(\"%s\")
+ ;; identifier: %s
+\n\n)")
+ (defun bd/denote-skribe-format-date (date)
+ "Format DATE as a scheme procedure."
+ (format-time-string "(make-date* %Y %m %d %H %M)" date))
+ (defun bd/denote-format-keywords-for-skribe-front-matter (keywords)
+ "Format front matter KEYWORDS for skribe file type.
+KEYWORDS is a list of strings."
+ (string-join keywords "\" \""))
+ (add-to-list 'denote-file-types '(skribe
+ :extension ".skr"
+ :date-function bd/denote-skribe-format-date
+ :front-matter bd/denote-skribe-front-matter
+ :title-key-regexp "^:title\\s-*"
+ :title-value-function identity
+ :title-value-reverse-function denote-trim-whitespace
+ :keywords-key-regexp "^:tags\\s-*"
+ :keywords-value-function bd/denote-format-keywords-for-skribe-front-matter
+ :keywords-value-reverse-function denote-extract-keywords-from-front-matter
+ :link my-denote-shell-link-format
+ :link-in-context-regexp my-denote-shell-link-in-context-regexp))
:custom
(denote-file-type 'org)
(denote-known-keywords '("ss" "writing" "reading" "art" "csu" "umass" "cs" "guix" "emacs" "programs" "mem"))
@@ -21,38 +49,6 @@
(denote-journal-extras-directory (expand-file-name "~/dc/log"))
(denote-journal-extras-title-format 'day-date-month-year))
-(require 'denote)
-(defvar bd/denote-skribe-front-matter
- "(post
- :title \"%s\"
- :date %s
- :tags '(\"%s\")
- ;; identifier: %s
-\n\n)")
-
-(defun bd/denote-skribe-format-date (date)
- "Format DATE as a scheme procedure."
- (format-time-string "(make-date* %Y %m %d %H %M)" date))
-
-(defun bd/denote-format-keywords-for-skribe-front-matter (keywords)
- "Format front matter KEYWORDS for skribe file type.
-KEYWORDS is a list of strings."
- (string-join keywords "\" \""))
-
-(add-to-list 'denote-file-types '(skribe
- :extension ".skr"
- :date-function bd/denote-skribe-format-date
- :front-matter bd/denote-skribe-front-matter
- :title-key-regexp "^:title\\s-*"
- :title-value-function identity
- :title-value-reverse-function denote-trim-whitespace
- :keywords-key-regexp "^:tags\\s-*"
- :keywords-value-function bd/denote-format-keywords-for-skribe-front-matter
- :keywords-value-reverse-function denote-extract-keywords-from-front-matter
- :link my-denote-shell-link-format
- :link-in-context-regexp my-denote-shell-link-in-context-regexp))
-
-
(provide 'bd--notes)
;;; bd-notes ends here
diff --git a/.config/emacs/modules/bd--org.el b/.config/emacs/modules/bd--org.el
index f0bef3f..d1d7da4 100644
--- a/.config/emacs/modules/bd--org.el
+++ b/.config/emacs/modules/bd--org.el
@@ -11,97 +11,88 @@
(visual-fill-column-center-text t)
(visual-fill-column-width 120))
-(defun bd/org-mode-setup-hook ()
- "Sets up improved org-mode defaults upon
+(use-package org
+ :bind
+ (("C-c n a" . org-agenda)
+ ("C-c n c" . org-capture)
+ ("C-c n s" . org-schedule)
+ ("C-c n d" . org-deadline)
+ ("C-c n r" . org-refile))
+ :config
+ (defun bd/org-mode-setup-hook ()
+ "Sets up improved org-mode defaults upon
each org file open."
- (org-indent-mode)
- (org-toggle-inline-images)
- (org-latex-preview '(16)))
-
-;;;; hooks
-(add-hook 'org-mode-hook 'bd/org-mode-setup-hook)
-
-;;;; binds
-(keymap-global-set "C-c n a" 'org-agenda)
-(keymap-global-set "C-c n c" 'org-capture)
-(keymap-global-set "C-c n s" 'org-schedule)
-(keymap-global-set "C-c n d" 'org-deadline)
-(keymap-global-set "C-c n r" 'org-refile)
-
-;;;; source blocks
-(org-babel-do-load-languages
- 'org-babel-load-languages
- '((emacs-lisp . t)
- (shell . t)
- (lisp . t)
- (scheme . t)
- (dot . t)))
-
-;;;; standard
-(setopt org-startup-folded 'show2levels
- org-ellipsis " ▾")
-
-;;;; export
-(setopt org-export-with-toc nil
- org-export-preserve-breaks t)
-
-;;;; agenda
-(advice-add 'org-refile :after 'org-save-all-org-buffers) ; after refiling tasks, save all buffers
-
-(setopt org-agenda-files
- `(,agenda-file "~/dc/agenda/archived_tasks.org")
-
- org-deadline-warning-days 7
- org-log-done 'time
- org-log-into-drawer "history"
-
- org-todo-keywords
- '((sequence "TODO(t)" "NEXT(n!)" "HOLD(h!)" "|" "DONE(d)" "CANC(c)"))
-
- org-refile-targets ; refile into the headings of these files, not tags
- '(("archived_tasks.org" :maxlevel . 1)
- ("agenda_tasks.org" :maxlevel . 1))
-
- org-capture-templates
- `(("c" " College")
- ("cs" "Software Engineering Theory" entry (file+olp ,agenda-file "CS520")
- "* TODO %?\n DEADLINE: %^t")
- ("cm" "Combinatorics/Graph Theory" entry (file+olp ,agenda-file "CS575")
- "* TODO %?\n DEADLINE: %^t")
- ("cc" "Compiler Techniques" entry (file+olp ,agenda-file "CS610")
- "* TODO %?\n DEADLINE: %^t")
- ("s" " Self")
- ("si" "Idea" entry (file+olp ,agenda-file "Idea / Return")
- "* TODO %?\n %u")
- ("sc" "Context" entry (file+olp ,agenda-file "Idea / Return")
- "* TODO %?\n %a")
- ("st" "Deadline" entry (file+olp ,agenda-file "Deadline")
- "* TODO %?\n DEADLINE: %^t")
- ("sb" "Book" entry (file+olp ,agenda-file "Book List")
- "* TODO %?\n %u"))
-
- org-agenda-custom-commands
- '(("S" "Standard Block Agenda"
- ((tags-todo "*"
- ((org-agenda-skip-function '(org-agenda-skip-if nil '(timestamp)))
- (org-agenda-block-separator nil)
- (org-agenda-skip-function '(org-agenda-skip-entry-if 'todo '("HOLD")))
- (org-agenda-overriding-header "Undated Tasks\n")))
- (agenda "" ((org-agenda-span 8)
- (org-deadline-warning-days 0)
- (org-agenda-block-separator nil)
- (org-scheduled-past-days 4)
- (org-agenda-skip-function '(org-agenda-skip-entry-if 'todo '("HOLD")))
- (org-agenda-overriding-header "\nUpcoming Tasks\n")))
- (agenda "" ((org-agenda-time-grid nil)
- (org-agenda-show-all-dates nil)
- (org-agenda-span 21)
- (org-deadline-warning-days 0)
- (org-agenda-block-separator nil)
- (org-agenda-entry-types '(:deadline))
- (org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done))
- (org-agenda-overriding-header "\nFuture Deadlines (+21d)\n"))))))
- org-agenda-restore-windows-after-quit t)
+ (org-indent-mode)
+ (org-toggle-inline-images)
+ (org-latex-preview '(16)))
+ (add-hook 'org-mode-hook 'bd/org-mode-setup-hook)
+
+ (org-babel-do-load-languages
+ 'org-babel-load-languages
+ '((emacs-lisp . t)
+ (shell . t)
+ (lisp . t)
+ (scheme . t)
+ (dot . t)))
+
+ (advice-add 'org-refile :after 'org-save-all-org-buffers)
+ :custom
+ (org-startup-folded 'show2levels)
+ (org-ellipsis " ▾")
+ (org-export-with-toc nil)
+ (org-export-preserve-breaks t)
+ (org-agenda-files `(,agenda-file "~/dc/agenda/archived_tasks.org"))
+ (org-deadline-warning-days 7)
+ (org-log-done 'time)
+ (org-log-into-drawer "history")
+
+ (org-todo-keywords
+ '((sequence "TODO(t)" "NEXT(n!)" "HOLD(h!)" "|" "DONE(d)" "CANC(c)")))
+
+ (org-refile-targets ; refile into the headings of these files, not tags
+ '(("archived_tasks.org" :maxlevel . 1)
+ ("agenda_tasks.org" :maxlevel . 1)))
+
+ (org-capture-templates
+ `(("c" " College")
+ ("cs" "Software Engineering Theory" entry (file+olp ,agenda-file "CS520")
+ "* TODO %?\n DEADLINE: %^t")
+ ("cm" "Combinatorics/Graph Theory" entry (file+olp ,agenda-file "CS575")
+ "* TODO %?\n DEADLINE: %^t")
+ ("cc" "Compiler Techniques" entry (file+olp ,agenda-file "CS610")
+ "* TODO %?\n DEADLINE: %^t")
+ ("s" " Self")
+ ("si" "Idea" entry (file+olp ,agenda-file "Idea / Return")
+ "* TODO %?\n %u")
+ ("sc" "Context" entry (file+olp ,agenda-file "Idea / Return")
+ "* TODO %?\n %a")
+ ("st" "Deadline" entry (file+olp ,agenda-file "Deadline")
+ "* TODO %?\n DEADLINE: %^t")
+ ("sb" "Book" entry (file+olp ,agenda-file "Book List")
+ "* TODO %?\n %u")))
+
+ (org-agenda-restore-windows-after-quit t)
+ (org-agenda-custom-commands
+ '(("S" "Standard Block Agenda"
+ ((tags-todo "*"
+ ((org-agenda-skip-function '(org-agenda-skip-if nil '(timestamp)))
+ (org-agenda-block-separator nil)
+ (org-agenda-skip-function '(org-agenda-skip-entry-if 'todo '("HOLD")))
+ (org-agenda-overriding-header "Undated Tasks\n")))
+ (agenda "" ((org-agenda-span 8)
+ (org-deadline-warning-days 0)
+ (org-agenda-block-separator nil)
+ (org-scheduled-past-days 4)
+ (org-agenda-skip-function '(org-agenda-skip-entry-if 'todo '("HOLD")))
+ (org-agenda-overriding-header "\nUpcoming Tasks\n")))
+ (agenda "" ((org-agenda-time-grid nil)
+ (org-agenda-show-all-dates nil)
+ (org-agenda-span 21)
+ (org-deadline-warning-days 0)
+ (org-agenda-block-separator nil)
+ (org-agenda-entry-types '(:deadline))
+ (org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done))
+ (org-agenda-overriding-header "\nFuture Deadlines (+21d)\n"))))))))
(provide 'bd--org)
diff --git a/.config/emacs/modules/bd--project.el b/.config/emacs/modules/bd--project.el
new file mode 100644
index 0000000..5828abd
--- /dev/null
+++ b/.config/emacs/modules/bd--project.el
@@ -0,0 +1,18 @@
+;;; -*- lexical-binding: t; -*-
+;;; Commentary:
+;;; Code:
+
+
+(use-package project
+ :defer t
+ :custom
+ (project-switch-commands
+ '((project-find-file "Find file")
+ (project-find-regexp "Find regexp")
+ (project-find-dir "Find directory")
+ (magit-project-status "Magit")
+ (project-shell "Shell"))))
+
+
+(provide 'bd--project)
+;;; bd-project ends here
diff --git a/.config/emacs/modules/bd--rss.el b/.config/emacs/modules/bd--rss.el
index eda6063..0c9009f 100644
--- a/.config/emacs/modules/bd--rss.el
+++ b/.config/emacs/modules/bd--rss.el
@@ -3,23 +3,24 @@
;;; Code:
-(keymap-global-set "C-z C-n" 'newsticker-show-news)
-
-(setopt newsticker-url-list-defaults nil
- newsticker-retrieval-interval (* 60 60 24)
- newsticker-automatically-mark-items-as-old nil
- newsticker-url-list '(("James Enge Mastodon" "https://mastodon.sdf.org/@jamesenge.rss" nil nil nil)
- ("operationnull blog" "https://operationnull.com/atom.xml" nil nil nil)
- ("Parabola GNU/Linux-libre" "https://www.parabola.nu/feeds/news/" nil nil nil)
- ("suckless.org news" "https://suckless.org/atom.xml" nil nil nil)
- ("Mental Outlaw" "https://vid.puffyan.us/feed/channel/UC7YOGHUfC1Tb6E4pudI9STA" nil nil nil)
- ("Luke Smith" "https://vid.puffyan.us/feed/channel/UC2eYFnH61tmytImy1mTYvhA" nil nil nil)
- ("Protesilaos Stravrou" "https://vid.puffyan.us/feed/channel/UC0uTPqBCFIpZxlz_Lv1tk_g" nil nil nil))
- ;; may require ./newsticker/groups to be cleared
- newsticker-groups '("Feeds"
- ("READING" "James Enge Mastodon")
- ("TECH" "Parabola GNU/Linux-libre" "suckless.org news" "operationnull blog")
- ("VIDEO" "Mental Outlaw" "Luke Smith" "Protesilaos Stravrou")))
+(use-package newst-reader
+ :bind (("C-z C-n" . newsticker-show-news))
+ :custom
+ (newsticker-url-list-defaults nil)
+ ;; one day
+ (newsticker-retrieval-interval (* 60 60 24))
+ (newsticker-automatically-mark-items-as-old nil)
+ (newsticker-url-list '(("James Enge Mastodon" "https://mastodon.sdf.org/@jamesenge.rss" nil nil nil)
+ ("operationnull blog" "https://operationnull.com/atom.xml" nil nil nil)
+ ("Parabola GNU/Linux-libre" "https://www.parabola.nu/feeds/news/" nil nil nil)
+ ("suckless.org news" "https://suckless.org/atom.xml" nil nil nil)
+ ("Mental Outlaw" "https://vid.puffyan.us/feed/channel/UC7YOGHUfC1Tb6E4pudI9STA" nil nil nil)
+ ("Luke Smith" "https://vid.puffyan.us/feed/channel/UC2eYFnH61tmytImy1mTYvhA" nil nil nil)
+ ("Protesilaos Stravrou" "https://vid.puffyan.us/feed/channel/UC0uTPqBCFIpZxlz_Lv1tk_g" nil nil nil)))
+ (newsticker-groups '("Feeds"
+ ("READING" "James Enge Mastodon")
+ ("TECH" "Parabola GNU/Linux-libre" "suckless.org news" "operationnull blog")
+ ("VIDEO" "Mental Outlaw" "Luke Smith" "Protesilaos Stravrou"))))
(provide 'bd--rss)
diff --git a/.config/emacs/modules/bd--tabs.el b/.config/emacs/modules/bd--tabs.el
index f8ceab1..3bdf282 100644
--- a/.config/emacs/modules/bd--tabs.el
+++ b/.config/emacs/modules/bd--tabs.el
@@ -3,53 +3,40 @@
;;; Code:
-;;;; time and date
-(require 'time)
-(setq display-time-format " %m/%d %H:%M"
- display-time-default-load-average nil)
-(display-time)
-
-(defun bd/get-mode-line-modes (buffer)
- (with-current-buffer buffer
- (format-mode-line (remove '(t erc-modified-channels-object) mode-line-modes))))
-
-;;;; turn tabs on, undo/redo mode
-(setq tab-bar-show t)
-(tab-bar-history-mode)
-(tab-bar-select-tab 1)
-(tab-bar-mode)
-
-
-;;;; remove useless gui elements
-(setopt tab-bar-format
- '(tab-bar-format-tabs
- tab-bar-format-align-right
- tab-bar-format-global)
-
- tab-bar-close-button-show nil
-
- ;; size
- tab-bar-auto-width-max nil)
-
-;;;; add useless text elements
-(setopt tab-bar-tab-hints nil)
-
-(defun bd/tab-bar-name-function ()
- (concat (tab-bar-tab-name-current)
- " "
- (bd/get-mode-line-modes (window-buffer (minibuffer-selected-window)))))
-
-(setopt project-switch-commands
- '((project-find-file "Find file")
- (project-find-regexp "Find regexp")
- (project-find-dir "Find directory")
- (magit-project-status "Magit")
- (project-shell "Shell")))
-
-(keymap-global-set "C-x p v" 'magit-project-status)
-
-
-(setq tab-bar-tab-name-function #'bd/tab-bar-name-function)
+(use-package time
+ :init
+ (display-time)
+ :custom
+ (display-time-format " %m/%d %H:%M")
+ (display-time-default-load-average nil))
+
+(use-package tab-bar
+ :config
+ (defun bd/get-mode-line-modes (buffer)
+ (with-current-buffer buffer
+ (format-mode-line (remove '(t erc-modified-channels-object) mode-line-modes))))
+ (defun bd/tab-bar-name-function ()
+ (concat (tab-bar-tab-name-current)
+ " "
+ (bd/get-mode-line-modes (window-buffer (minibuffer-selected-window)))))
+
+ (tab-bar-select-tab 1)
+ (tab-bar-mode)
+ (tab-bar-history-mode)
+ :custom
+ (tab-bar-tab-name-function #'bd/tab-bar-name-function)
+ (tab-bar-show t)
+
+ ;; remove useless gui elements
+ (tab-bar-format
+ '(tab-bar-format-tabs
+ tab-bar-format-align-right
+ tab-bar-format-global))
+ (tab-bar-close-button-show nil)
+ (tab-bar-auto-width-max nil)
+
+ ;; add useless text elements
+ (tab-bar-tab-hints nil))
(provide 'bd--tabs)
diff --git a/.config/emacs/modules/bd--themes.el b/.config/emacs/modules/bd--themes.el
index b915cd2..135f77c 100644
--- a/.config/emacs/modules/bd--themes.el
+++ b/.config/emacs/modules/bd--themes.el
@@ -3,13 +3,7 @@
;;; Code:
-;;;; defaults
-(menu-bar-mode -1)
-(tool-bar-mode -1)
-(scroll-bar-mode -1)
-(fringe-mode '(0 . 0))
-
-;;;; variable-pitch fonts
+;; variable-pitch fonts
(defun bd/enable-variable-pitch-exempt ()
"Text modes to exempt from variable pitch fonts."
(unless (derived-mode-p 'latex-mode 'mhtml-mode 'nxml-mode 'yaml-mode)