From 7b56a60febbd087c8e03dcdeddb7e7bccd9b7685 Mon Sep 17 00:00:00 2001 From: bd Date: Fri, 20 Dec 2024 17:05:38 -0500 Subject: common functions to utilities file, common buffer operations menu --- .config/emacs/gnus.el | 3 +- .config/emacs/init.el | 1 + .config/emacs/modules/bd--browse.el | 2 +- .config/emacs/modules/bd--buffers.el | 60 +++++++++++++++++------- .config/emacs/modules/bd--devel.el | 2 +- .config/emacs/modules/bd--dictionary.el | 2 +- .config/emacs/modules/bd--emms.el | 2 +- .config/emacs/modules/bd--exwm-windowing.el | 73 +---------------------------- .config/emacs/modules/bd--files.el | 2 +- .config/emacs/modules/bd--gpg.el | 2 +- .config/emacs/modules/bd--image.el | 2 +- .config/emacs/modules/bd--irc.el | 2 +- .config/emacs/modules/bd--minibuffer.el | 49 +------------------ .config/emacs/modules/bd--modeline.el | 2 +- .config/emacs/modules/bd--notes.el | 2 +- .config/emacs/modules/bd--org.el | 2 +- .config/emacs/modules/bd--project.el | 2 +- .config/emacs/modules/bd--rss.el | 2 +- .config/emacs/modules/bd--shells.el | 6 ++- .config/emacs/modules/bd--tabs.el | 2 +- .config/emacs/modules/bd--themes.el | 2 +- 21 files changed, 69 insertions(+), 153 deletions(-) diff --git a/.config/emacs/gnus.el b/.config/emacs/gnus.el index a67b313..0e3ad6e 100644 --- a/.config/emacs/gnus.el +++ b/.config/emacs/gnus.el @@ -46,7 +46,8 @@ "%s\n")) (setopt message-from-style 'angles - mml-secure-openpgp-encrypt-to-self t) + mml-secure-openpgp-encrypt-to-self t + mml-secure-openpgp-sign-with-sender t) (add-hook 'gnus-message-setup-hook 'mml-secure-message-sign-pgpmime) diff --git a/.config/emacs/init.el b/.config/emacs/init.el index 9da13d3..cf9bbaf 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -91,6 +91,7 @@ ;;;; load modules +(require 'bd--utility) (require 'bd--secret) ;; contains bookmarks/email vars---git ignored (require 'bd--browse) (require 'bd--rss) diff --git a/.config/emacs/modules/bd--browse.el b/.config/emacs/modules/bd--browse.el index 5e9cb13..e229e5a 100644 --- a/.config/emacs/modules/bd--browse.el +++ b/.config/emacs/modules/bd--browse.el @@ -116,4 +116,4 @@ icecat, or eww." (provide 'bd--browse) -;;; bd-browse ends here +;;; bd--browse.el ends here diff --git a/.config/emacs/modules/bd--buffers.el b/.config/emacs/modules/bd--buffers.el index 45a161f..a8e3cbe 100644 --- a/.config/emacs/modules/bd--buffers.el +++ b/.config/emacs/modules/bd--buffers.el @@ -3,22 +3,7 @@ ;;; Code: -(defun split-and-follow () - (interactive) - (delete-other-windows) - (split-window-horizontally) - (split-window-horizontally) - (balance-windows) - (other-window -1) - (follow-mode 1)) - -(defun set-frame-alpha (value) - "Sets the transparency of the frame background. 0=transparent/100=opaque." - (interactive "nTransparency Value (30 - 100 opaque): ") - (setq value (max 30 (min value 100))) - (set-frame-parameter (selected-frame) 'alpha `(,value . ,value)) - (message "Alpha set to %d" value)) -(add-to-list 'default-frame-alist '(alpha . (92 . 92))) +(require 'transient) (use-package autorevert :init @@ -46,5 +31,46 @@ ))) +(add-to-list 'default-frame-alist '(alpha . (92 . 92))) + +(defun bd/layout--do-with-haste (f) + (let* ((args (transient-args 'bd/layout-dispatcher)) + (haste (if (member "haste" args) 3 1))) + (funcall f haste))) +(transient-define-prefix bd/layout-dispatcher () + ["Dispatcher > Layout\n" + ["Infixes" + ("s" "haste" "haste")]] + [["Commands" + ("-" "text decrease" + (lambda () (interactive) (bd/layout--do-with-haste #'text-scale-decrease)) + :transient t) + ("=" "text increase" + (lambda () (interactive) (bd/layout--do-with-haste #'text-scale-increase)) + :transient t) + ("b" "narrow" + (lambda () (interactive) (bd/layout--do-with-haste #'shrink-window-horizontally)) + :transient t) + ("f" "widen" + (lambda () (interactive) (bd/layout--do-with-haste #'enlarge-window-horizontally)) + :transient t) + ("p" "shrink" + (lambda () (interactive) (bd/layout--do-with-haste #'shrink-window)) + :transient t) + ("n" "enlarge" + (lambda () (interactive) (bd/layout--do-with-haste #'enlarge-window)) + :transient t) + ("|" "balance" balance-windows)] + ["" + ("N" "shift down" windmove-swap-states-down :transient t) + ("P" "shift up" windmove-swap-states-up :transient t) + ("F" "shift right" windmove-swap-states-right :transient t) + ("B" "shift left" windmove-swap-states-left :transient t)] + ["" + ("a" "alpha" bd/set-frame-alpha) + ("w" "wallpaper" bd/set-bg)]]) +(keymap-global-set "C-c w" #'bd/layout-dispatcher) + + (provide 'bd--buffers) -;;; bd-buffers ends here +;;; bd--buffers.el ends here diff --git a/.config/emacs/modules/bd--devel.el b/.config/emacs/modules/bd--devel.el index 916d6e2..6008904 100644 --- a/.config/emacs/modules/bd--devel.el +++ b/.config/emacs/modules/bd--devel.el @@ -123,4 +123,4 @@ (provide 'bd--devel) -;;; bd--devel ends here +;;; bd--devel.el ends here diff --git a/.config/emacs/modules/bd--dictionary.el b/.config/emacs/modules/bd--dictionary.el index 79dd2d1..5c161b7 100644 --- a/.config/emacs/modules/bd--dictionary.el +++ b/.config/emacs/modules/bd--dictionary.el @@ -12,4 +12,4 @@ (provide 'bd--dictionary) -;;; bd-dictionary ends here +;;; bd--dictionary.el ends here diff --git a/.config/emacs/modules/bd--emms.el b/.config/emacs/modules/bd--emms.el index df47a2e..1770c16 100644 --- a/.config/emacs/modules/bd--emms.el +++ b/.config/emacs/modules/bd--emms.el @@ -59,4 +59,4 @@ playback." (provide 'bd--emms) -;;; bd-emms ends here +;;; bd--emms.el ends here diff --git a/.config/emacs/modules/bd--exwm-windowing.el b/.config/emacs/modules/bd--exwm-windowing.el index ef4aa0f..2825b1a 100644 --- a/.config/emacs/modules/bd--exwm-windowing.el +++ b/.config/emacs/modules/bd--exwm-windowing.el @@ -3,76 +3,7 @@ ;;; Code: -(defun bd/lock () - "Lock the screen." - (interactive) - (start-process "lock" nil "slock")) - -(defun bd/shoot-full () - "Take a full-screen screenshot." - (interactive) - (let ((default-directory (xdg-user-dir "PICTURES"))) - (start-process-shell-command "flameshot" nil "flameshot full"))) - -(defun bd/shoot-part () - "Take a selective screen screenshot." - (interactive) - (let ((default-directory (xdg-user-dir "PICTURES"))) - (start-process-shell-command "flameshot" nil "flameshot launcher"))) - -(defun bd/toggle-mute () - "Toggle between muted and unmuted." - (interactive) - (start-process "sound toggle" nil "pactl" "set-sink-mute" "@DEFAULT_SINK@" "toggle")) - -(defun bd/set-volume (value) - "Sets the volume to VALUE." - (start-process "set volume" nil "pactl" "set-sink-volume" "@DEFAULT_SINK@" value)) - -(defun bd/decrement-volume () - "Decrements the volume." - (interactive) - (bd/set-volume "-4%")) - -(defun bd/increment-volume () - "Increments the volume." - (interactive) - (bd/set-volume "+4%")) - -(defun bd/set-brightness (value) - "Sets the brightness to VALUE." - (start-process "set brightness" nil "brightnessctl" "set" value)) - -(defun bd/decrement-brightness () - "decrements the brightness." - (interactive) - (bd/set-brightness "5%-")) - -(defun bd/increment-brightness () - "Increments the brightness." - (interactive) - (bd/set-brightness "5%+")) - -(defun set-bg (&optional arg) - "Set the current wallpaper using feh. -ARG can be one of the following: - -- nil: set the most recent wallpaper -- directory: set a random image from the directory -- file: set the specified file" - (interactive "f") - (let ((wall (expand-file-name "~/wf/wall/current"))) - (when arg - (cond - ((file-regular-p arg) (copy-file arg wall t)) - ((file-directory-p arg) - (let* ((images (f-files arg (lambda (f) (string-match-p "\\.jpeg\\'" f)))) - (rfile (nth (random (length images)) images))) - (and rfile (copy-file rfile wall t)))))) - (start-process "set wallpaper" nil "feh" "--bg-fill" wall) - (message "Set wallpaper."))) -(set-bg) - +(bd/set-bg) (use-package exwm :config @@ -164,4 +95,4 @@ that buffer." (add-to-list 'global-mode-string bd/external-mode-line) (provide 'bd--exwm-windowing) -;;; bd-exwm ends here +;;; bd--exwm-windowing.el ends here diff --git a/.config/emacs/modules/bd--files.el b/.config/emacs/modules/bd--files.el index 6a44d88..6608734 100644 --- a/.config/emacs/modules/bd--files.el +++ b/.config/emacs/modules/bd--files.el @@ -73,4 +73,4 @@ (provide 'bd--files) -;;; bd-files ends here +;;; bd--files.el ends here diff --git a/.config/emacs/modules/bd--gpg.el b/.config/emacs/modules/bd--gpg.el index ae4e527..fd883cf 100644 --- a/.config/emacs/modules/bd--gpg.el +++ b/.config/emacs/modules/bd--gpg.el @@ -68,4 +68,4 @@ for a bug I've encountered." (provide 'bd--gpg) -;;; bd-gpg ends here +;;; bd--gpg.el ends here diff --git a/.config/emacs/modules/bd--image.el b/.config/emacs/modules/bd--image.el index b8aaccb..48ab024 100644 --- a/.config/emacs/modules/bd--image.el +++ b/.config/emacs/modules/bd--image.el @@ -19,4 +19,4 @@ If the mode line is off, set it to the default value." (provide 'bd--image) -;;; bd-image ends here +;;; bd--image.el ends here diff --git a/.config/emacs/modules/bd--irc.el b/.config/emacs/modules/bd--irc.el index dc31a49..dd9d1d3 100644 --- a/.config/emacs/modules/bd--irc.el +++ b/.config/emacs/modules/bd--irc.el @@ -26,4 +26,4 @@ (provide 'bd--irc) -;;; bd-irc ends here +;;; bd--irc.el ends here diff --git a/.config/emacs/modules/bd--minibuffer.el b/.config/emacs/modules/bd--minibuffer.el index 2e67ca7..5acd186 100644 --- a/.config/emacs/modules/bd--minibuffer.el +++ b/.config/emacs/modules/bd--minibuffer.el @@ -41,50 +41,11 @@ "Buffers that should not show up in buffer-related selection commands.") - (defun bd/buffer-exwm-p (buf) - "Return non-nil if BUF is an `exwm-mode' buffer." - (member - (buffer-local-value 'major-mode (get-buffer buf)) - '(exwm-mode))) - - (defun bd/buffer-scratch-p (buf) - "Return non-nil if BUF is a scratch buffer." - (buffer-local-value 'scratch-buffer (get-buffer buf))) - - (defun bd/buffer-text-p (buf) - "Return non-nil if BUF derives from `text-mode'." - (provided-mode-derived-p (buffer-local-value 'major-mode (get-buffer buf)) 'text-mode)) - - (defun bd/buffer-prog-p (buf) - "Return non-nil if BUF derives from `prog-mode'." - (provided-mode-derived-p (buffer-local-value 'major-mode (get-buffer buf)) 'prog-mode)) - - (defun bd/buffer-dired-p (buf) - "Return non-nil if BUF is a `dired-mode' buffer." - (member - (buffer-local-value 'major-mode (get-buffer buf)) - '(dired-mode))) - - (defun bd/buffer-irc-p (buf) - "Return non-nil if BUF is an `irc-mode' buffer." - (member - (buffer-local-value 'major-mode (get-buffer buf)) - '(rcirc-mode erc-mode))) - (defun bd/buffer-blacklisted-p (buf) "Return non-nil if BUF is blacklisted." (cl-reduce (lambda (x y) (or x y)) (mapcar (lambda (r) (string-match r buf)) bd/blacklisted-buffer-regexp-list))) - (defun bd/buffer-ordinary-p (buf) - "Return non-nil if BUF does not fit into known categories." - (not (or (bd/buffer-exwm-p buf) - (bd/buffer-text-p buf) - (bd/buffer-prog-p buf) - (bd/buffer-scratch-p buf) - (bd/buffer-dired-p buf) - (bd/buffer-irc-p buf)))) - (defun bd/buffer-list () "Return a list of non-blacklisted buffers." (cl-remove-if #'bd/buffer-blacklisted-p (mapcar 'buffer-name (buffer-list)))) @@ -136,14 +97,6 @@ selection commands.") (selector-recentf-source)))) (keymap-global-set "C-x b" 'bd/navigate) - (defun bd/get-directory-dwim () - "Returns the directory you always wanted." - (or (when (project-current) - (project-root (project-current))) ;; git - (locate-dominating-file "." "Makefile") ;; make - (locate-dominating-file "." "manifest.scm") ;; guix - default-directory)) - (defun bd/selector-rg () "Sources for lines found via grep (or a clone)." (interactive) @@ -171,4 +124,4 @@ selection commands.") (provide 'bd--minibuffer) -;;; bd-minibuffer ends here +;;; bd--minibuffer.el ends here diff --git a/.config/emacs/modules/bd--modeline.el b/.config/emacs/modules/bd--modeline.el index 567a752..5d2af9e 100644 --- a/.config/emacs/modules/bd--modeline.el +++ b/.config/emacs/modules/bd--modeline.el @@ -88,4 +88,4 @@ (provide 'bd--modeline) -;;; bd-modeline ends here +;;; bd--modeline.el ends here diff --git a/.config/emacs/modules/bd--notes.el b/.config/emacs/modules/bd--notes.el index 26cf0ca..31aa5c8 100644 --- a/.config/emacs/modules/bd--notes.el +++ b/.config/emacs/modules/bd--notes.el @@ -66,4 +66,4 @@ KEYWORDS is a list of strings." (provide 'bd--notes) -;;; bd-notes ends here +;;; bd--notes.el ends here diff --git a/.config/emacs/modules/bd--org.el b/.config/emacs/modules/bd--org.el index c761e19..9215a06 100644 --- a/.config/emacs/modules/bd--org.el +++ b/.config/emacs/modules/bd--org.el @@ -216,4 +216,4 @@ representing all the tags ORd or ANDed together." (provide 'bd--org) -;;; bd-org ends here +;;; bd--org.el ends here diff --git a/.config/emacs/modules/bd--project.el b/.config/emacs/modules/bd--project.el index 5828abd..f5b1c09 100644 --- a/.config/emacs/modules/bd--project.el +++ b/.config/emacs/modules/bd--project.el @@ -15,4 +15,4 @@ (provide 'bd--project) -;;; bd-project ends here +;;; bd--project.el ends here diff --git a/.config/emacs/modules/bd--rss.el b/.config/emacs/modules/bd--rss.el index bb97622..cd943ed 100644 --- a/.config/emacs/modules/bd--rss.el +++ b/.config/emacs/modules/bd--rss.el @@ -22,4 +22,4 @@ (provide 'bd--rss) -;;; bd-rss ends here +;;; bd--rss.el ends here diff --git a/.config/emacs/modules/bd--shells.el b/.config/emacs/modules/bd--shells.el index 2ae63e4..e401115 100644 --- a/.config/emacs/modules/bd--shells.el +++ b/.config/emacs/modules/bd--shells.el @@ -19,6 +19,10 @@ :custom (eshell-banner-message (concat "\n" (propertize " " 'display (create-image (expand-file-name "images/raven.png" user-emacs-directory) 'png nil :scale 0.8 :align-to "center")) "\n"))) +(use-package em-term + :custom + (add-to-list 'eshell-visual-commands "nethack")) + (use-package em-prompt :config (defun bd/get-prompt-path () @@ -77,4 +81,4 @@ clear the scrollback contents. Outputs banner message." (provide 'bd--shells) -;;; bd-shells ends here +;;; bd--shells.el ends here diff --git a/.config/emacs/modules/bd--tabs.el b/.config/emacs/modules/bd--tabs.el index cf57949..67ec1d7 100644 --- a/.config/emacs/modules/bd--tabs.el +++ b/.config/emacs/modules/bd--tabs.el @@ -50,4 +50,4 @@ (provide 'bd--tabs) -;;; bd-tabs ends here +;;; bd--tabs.el ends here diff --git a/.config/emacs/modules/bd--themes.el b/.config/emacs/modules/bd--themes.el index edecaa5..ec95108 100644 --- a/.config/emacs/modules/bd--themes.el +++ b/.config/emacs/modules/bd--themes.el @@ -75,4 +75,4 @@ and some other minor face changes." (provide 'bd--themes) -;;; bd-themes ends here +;;; bd--themes.el ends here -- cgit v1.2.3