diff options
author | bd <bdunahu@operationnull.com> | 2024-10-28 21:12:40 -0400 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2024-10-28 21:13:41 -0400 |
commit | 89889525ccf70b36ac06e5bf9294ecf7fd0066de (patch) | |
tree | 9413e969b24edcacadc1a1e087bcbe99080af029 /.config/emacs | |
parent | 1efe6886049b0143e55ccb77dc7d59966e9dd081 (diff) |
More cleanup and use-package
Diffstat (limited to '.config/emacs')
-rw-r--r-- | .config/emacs/init.el | 13 | ||||
-rw-r--r-- | .config/emacs/modules/bd--buffers.el | 2 | ||||
-rw-r--r-- | .config/emacs/modules/bd--devel.el | 2 | ||||
-rw-r--r-- | .config/emacs/modules/bd--erc.el | 7 | ||||
-rw-r--r-- | .config/emacs/modules/bd--files.el | 113 | ||||
-rw-r--r-- | .config/emacs/modules/bd--gpg.el | 16 | ||||
-rw-r--r-- | .config/emacs/modules/bd--image.el | 28 | ||||
-rw-r--r-- | .config/emacs/modules/bd--modeline.el | 7 | ||||
-rw-r--r-- | .config/emacs/modules/bd--notes.el | 60 | ||||
-rw-r--r-- | .config/emacs/modules/bd--org.el | 171 | ||||
-rw-r--r-- | .config/emacs/modules/bd--project.el | 18 | ||||
-rw-r--r-- | .config/emacs/modules/bd--rss.el | 35 | ||||
-rw-r--r-- | .config/emacs/modules/bd--tabs.el | 81 | ||||
-rw-r--r-- | .config/emacs/modules/bd--themes.el | 8 |
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) |