summaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2024-10-28 20:10:16 -0400
committerbd <bdunahu@operationnull.com>2024-10-28 20:10:16 -0400
commit1efe6886049b0143e55ccb77dc7d59966e9dd081 (patch)
tree3296af39b61b50405058a1248e355318c616b2b2 /.config
parent05791ee8b63f37513fb1eaf1dcef77de5227994d (diff)
Configure built-in with use-package
Diffstat (limited to '.config')
-rw-r--r--.config/emacs/init.el27
-rw-r--r--.config/emacs/libraries/selector.el4
-rw-r--r--.config/emacs/modules/bd--browse.el34
-rw-r--r--.config/emacs/modules/bd--buffers.el (renamed from .config/emacs/modules/bd--windows.el)33
-rw-r--r--.config/emacs/modules/bd--devel.el80
-rw-r--r--.config/emacs/modules/bd--dictionary.el9
-rw-r--r--.config/emacs/modules/bd--emms.el72
-rw-r--r--.config/emacs/modules/bd--erc.el53
-rw-r--r--.config/emacs/modules/bd--essentials.el54
-rw-r--r--.config/emacs/modules/bd--files.el13
-rw-r--r--.config/emacs/modules/bd--themes.el6
11 files changed, 183 insertions, 202 deletions
diff --git a/.config/emacs/init.el b/.config/emacs/init.el
index baae521..555e85f 100644
--- a/.config/emacs/init.el
+++ b/.config/emacs/init.el
@@ -25,6 +25,28 @@
(setopt warning-minimum-level :error)
+;;;; basic
+(keymap-global-unset "C-z")
+(keymap-global-unset "C-x C-z")
+(global-set-key (kbd "C-x C-b") 'ibuffer)
+(global-set-key (kbd "C-z =") 'text-scale-increase)
+(global-set-key (kbd "C-z -") 'text-scale-decrease)
+
+(setopt inhibit-startup-message t
+ initial-major-mode 'eshell-mode
+ initial-scratch-message nil)
+(setopt text-scale-mode-step 1.1)
+(setopt kill-whole-line t
+ sentence-end-double-space nil
+ next-line-add-newlines t
+ scroll-up-aggressively '0.50
+ scroll-down-aggressively '0.50)
+(setq-default tab-width 8)
+(tooltip-mode -1)
+(global-hl-line-mode 1)
+(global-visual-line-mode t)
+
+
;;;; gnus
(keymap-global-set "C-c m" #'gnus)
(setopt readmail-command 'gnus
@@ -59,9 +81,8 @@
;;;; load modules
-(require 'bd--essentials)
-(require 'bd--rss)
(require 'bd--browse)
+(require 'bd--rss)
(require 'bd--gpg)
(require 'bd--tabs)
(require 'bd--files)
@@ -70,7 +91,7 @@
(require 'bd--erc)
(require 'bd--shells)
(require 'bd--minibuffer)
-(require 'bd--windows)
+(require 'bd--buffers)
(require 'bd--devel)
(require 'bd--org)
(require 'bd--notes)
diff --git a/.config/emacs/libraries/selector.el b/.config/emacs/libraries/selector.el
index 8b16637..ea16eec 100644
--- a/.config/emacs/libraries/selector.el
+++ b/.config/emacs/libraries/selector.el
@@ -515,7 +515,7 @@ INHERIT-INPUT-METHOD have the same meaning as in `completing-read'."
(defvar selector-buffer-actions
(list 'switch-to-buffer
- (cons (kbd "M-D") 'kill-buffer)))
+ (cons (kbd "C-k") 'kill-buffer)))
;;;###autoload
(defun selector-buffers-source (&optional sort-pred)
@@ -542,7 +542,7 @@ An optional SORT-PRED may be provided to sort the buffers (see `sort')."
(defvar selector-file-actions
(list 'find-file
- (cons (kbd "M-D") (lambda (f)
+ (cons (kbd "C-d") (lambda (f)
(when (y-or-n-p (concat "Delete file " f "? "))
(delete-file f))))))
diff --git a/.config/emacs/modules/bd--browse.el b/.config/emacs/modules/bd--browse.el
index 83bf0a2..3dd15fe 100644
--- a/.config/emacs/modules/bd--browse.el
+++ b/.config/emacs/modules/bd--browse.el
@@ -53,23 +53,29 @@ icecat, or eww."
(list (bd/selector-bookmarks)
(bd/selector-search)))))
-
-;;;; eww
-(setopt shr-use-fonts t
- shr-cookie-policy nil
- shr-max-width 85
- ;; send only user agent
- url-privacy-level '(email os emacs lastloc cookies)
- eww-search-prefix "https://duckduckgo.com/html/?q="
- eww-auto-rename-buffer 'title
- eww-use-browse-url (regexp-opt '("mailto:"
- "youtube.com"
- "youtu.be"))
- browse-url-handlers
+(setopt browse-url-handlers
`((,(regexp-opt '("youtube.com" "youtu.be")) .
(lambda (url &rest _)
(message "Ludu %s" url)
- (start-process-shell-command "rip-video" nil (concat "rip-video " url))))))
+ (start-process-shell-command "rip-video" nil (concat "rip-video " url)))))
+ url-privacy-level '(email os emacs lastloc cookies))
+
+(use-package shr
+ :custom
+ (shr-use-fonts t)
+ (shr-cookie-policy nil)
+ (shr-max-width 85))
+
+(use-package eww
+ :custom
+ (eww-search-prefix "https://duckduckgo.com/html/?q=")
+ (eww-auto-rename-buffer 'title)
+ (eww-use-browse-url (regexp-opt '("mailto:"
+ "youtube.com"
+ "youtu.be"))))
+
+(use-package apropos
+ :bind (("C-h a" . selector-apropos)))
(provide 'bd--browse)
diff --git a/.config/emacs/modules/bd--windows.el b/.config/emacs/modules/bd--buffers.el
index 282ca14..c80e75f 100644
--- a/.config/emacs/modules/bd--windows.el
+++ b/.config/emacs/modules/bd--buffers.el
@@ -3,15 +3,6 @@
;;; Code:
-;;;; defaults
-(menu-bar-mode -1)
-(tool-bar-mode -1)
-(scroll-bar-mode -1)
-
-;; no fringe
-(fringe-mode '(0 . 0))
-
-
;; dedication
(defun toggle-current-window-dedication ()
"Adds or revokes dedicated window status from a buffer. A
@@ -34,25 +25,21 @@ dedicated buffer will never be automatically orphaned."
(other-window -1)
(follow-mode 1))
-;; alpha
-(defun bd/clamp (lower-bound upper-bound value)
- (max lower-bound (min value upper-bound)))
-
(defun set-frame-alpha (value)
"Sets the transparency of the frame background. 0=transparent/100=opaque
Due to a bug with guix-packaged emacs, only uses true-transparency on wayland."
(interactive "nTransparency Value (30 - 100 opaque): ")
- (setq value (bd/clamp 30 100 value))
- (if (equal display "wayland")
- (set-frame-parameter (selected-frame) 'alpha-background value)
- (set-frame-parameter (selected-frame) 'alpha `(,value . ,value)))
+ (setq value (max 30 (min value 100)))
(message "Alpha set to %d" value))
-(if (equal display "wayland")
- (add-to-list 'default-frame-alist '(alpha-background . 66))
- (add-to-list 'default-frame-alist '(alpha . (82 . 82))))
+(add-to-list 'default-frame-alist '(alpha . (92 . 92)))
+(use-package autorevert
+ :init
+ (global-auto-revert-mode)
+ :custom
+ (global-auto-revert-non-file-buffers t)
+ (auto-revert-interval 30))
-;;;; shackle
(use-package shackle
:demand t
:config
@@ -82,5 +69,5 @@ Due to a bug with guix-packaged emacs, only uses true-transparency on wayland."
(shackle-default-rule '(:select t)))
-(provide 'bd--windows)
-;;; bd-windows ends here
+(provide 'bd--buffers)
+;;; bd-buffers ends here
diff --git a/.config/emacs/modules/bd--devel.el b/.config/emacs/modules/bd--devel.el
index a1bbbf7..c1254b9 100644
--- a/.config/emacs/modules/bd--devel.el
+++ b/.config/emacs/modules/bd--devel.el
@@ -3,27 +3,6 @@
;;; Code:
-;;;; line numbers
-(setopt display-line-numbers-type 'relative)
-
-(defvar bd/enable-line-numbers-in-hooks
- '(prog-mode-hook)
- "List of hook symbols to add `display-line-numbers-mode'
-to.")
-
-(mapc
- (lambda (hook)
- (add-hook hook #'display-line-numbers-mode))
- bd/enable-line-numbers-in-hooks)
-
-
-;;;; outline mode
-(setq-default
- outline-minor-mode-cycle t
- outline-minor-mode-highlight t)
-
-
-;;;; general
(defun request-sudo ()
"Uses TRAMP to edit current opened file as root."
(interactive)
@@ -32,38 +11,55 @@ to.")
(concat "/sudo:root@localhost:"
buffer-file-name))))
-(defun bd/compile-dwim (f)
- (let ((default-directory
- (or (locate-dominating-file "." "Makefile") ;; make
- (locate-dominating-file "." "build.xml") ;; ant
- (locate-dominating-file "." "manifest.scm") ;; guix
- default-directory)))
- (call-interactively f)))
-
-(setq compilation-always-kill t
- compilation-scroll-output 'first-error)
-(keymap-set prog-mode-map "C-," #'(lambda ()
- (interactive)
- (bd/compile-dwim #'recompile)))
-(keymap-set prog-mode-map "C-<" #'(lambda ()
- (interactive)
- (bd/compile-dwim #'compile)))
-
(add-hook 'prog-mode-hook (lambda ()
(font-lock-add-keywords
nil '(("\\<\\(FIX\\(ME\\)?\\|TODO\\)"
1 font-lock-warning-face t)))))
-;; my custom cleanup mode
-(require 'autoformat)
-(autoformat-mode 1)
+(setopt display-line-numbers-type 'relative)
+(defvar bd/enable-line-numbers-in-hooks
+ '(prog-mode-hook)
+ "List of hook symbols to add `display-line-numbers-mode'
+to.")
+(mapc
+ (lambda (hook)
+ (add-hook hook #'display-line-numbers-mode))
+ bd/enable-line-numbers-in-hooks)
-;; questionable default
(indent-tabs-mode 0)
;; skr is a scheme extension
(add-to-list 'auto-mode-alist '("\\.skr\\'" . scheme-mode))
+(use-package autoformat
+ :custom
+ (autoformat-mode 1))
+
+(use-package compile
+ :custom
+ (compilation-always-kill t)
+ (compilation-scroll-output 'first-error)
+ :config
+ (defun bd/compile-dwim (f)
+ (let ((default-directory
+ (or (locate-dominating-file "." "Makefile") ;; make
+ (locate-dominating-file "." "build.xml") ;; ant
+ (locate-dominating-file "." "manifest.scm") ;; guix
+ default-directory)))
+ (call-interactively f)))
+
+ (keymap-set prog-mode-map
+ "C-," #'(lambda ()
+ (interactive)
+ (bd/compile-dwim #'recompile)))
+ (keymap-set prog-mode-map
+ "C-<" #'(lambda ()
+ (interactive)
+ (bd/compile-dwim #'compile))))
+
+(use-package man
+ :custom
+ (Man-notify-method 'pushy))
(use-package rainbow-mode
:hook css-mode)
diff --git a/.config/emacs/modules/bd--dictionary.el b/.config/emacs/modules/bd--dictionary.el
index c46fe7b..79dd2d1 100644
--- a/.config/emacs/modules/bd--dictionary.el
+++ b/.config/emacs/modules/bd--dictionary.el
@@ -3,9 +3,12 @@
;;; Code:
-(keymap-global-set "C-c i" 'dictionary-lookup-definition)
-(setopt dictionary-server "localhost"
- dictionary-use-single-buffer t)
+(use-package dictionary
+ :defer t
+ :bind (("C-c i" . dictionary-lookup-definition))
+ :custom
+ (dictionary-server "localhost")
+ (dictionary-use-single-buffer t))
(provide 'bd--dictionary)
diff --git a/.config/emacs/modules/bd--emms.el b/.config/emacs/modules/bd--emms.el
index ff5b192..b19264c 100644
--- a/.config/emacs/modules/bd--emms.el
+++ b/.config/emacs/modules/bd--emms.el
@@ -3,54 +3,56 @@
;;; Code:
-(defun emms-quickstart ()
- "Queues a shuffled playlist and starts
-playback."
- (interactive)
- (emms-stop)
- (when (bufferp emms-playlist-buffer-name)
- (kill-buffer emms-playlist-buffer-name))
- (emms-play-directory-tree (expand-file-name "~/ik/music/"))
- (emms-shuffle))
-
-
(use-package emms
- :bind (("C-z C-s" . 'emms-quickstart))
:config
(emms-all)
(require 'emms-player-mpv)
+ (require 'emms-playlist-mode)
+
+ (defun emms-quickstart ()
+ "Queues a shuffled playlist and starts
+playback."
+ (interactive)
+ (emms-stop)
+ (when (bufferp emms-playlist-buffer-name)
+ (kill-buffer emms-playlist-buffer-name))
+ (emms-play-directory-tree (expand-file-name "~/ik/music/"))
+ (emms-shuffle))
+ (defun switch-to-emms ()
+ (interactive)
+ (if (get-buffer emms-playlist-buffer-name)
+ (display-buffer emms-playlist-buffer-name)
+ (message "The Ainur cannot hear you...")))
+ (keymap-global-set "C-z C-s" #'emms-quickstart)
+ (keymap-global-set "C-z C-m" #'switch-to-emms)
+ (keymap-set emms-playlist-mode-map "q" #'quit-window)
+
(add-to-list 'emms-player-list 'emms-player-mpv)
- (keymap-global-set "C-z C-m" (lambda ()
- (interactive)
- (if (get-buffer emms-playlist-buffer-name)
- (display-buffer emms-playlist-buffer-name)
- (message "The Ainur cannot hear you..."))))
(emms-playing-time-disable-display)
- (setopt emms-track-description-function
- '(lambda (track)
- (let ((artist (emms-track-get track 'info-artist))
- (title (emms-track-get track 'info-title)))
- (cond
- ((and artist title)
- (concat artist " - " title))
- (title
- title)
- (t
- (emms-track-simple-description track))))))
- (keymap-set emms-playlist-mode-map "q" #'quit-window)
- (setq-default
- emms-playlist-default-major-mode 'emms-playlist-mode
+ (setq-default emms-playlist-default-major-mode 'emms-playlist-mode
- emms-player-list '(emms-player-mpv)
- emms-player-mpv-environment '("PULSE_PROP_media.role=music")
- emms-player-mpv-parameters '("--quiet" "--really-quiet" "--no-audio-display" "--force-window=no" "--vo=null"))
+ emms-player-list '(emms-player-mpv)
+ emms-player-mpv-environment '("PULSE_PROP_media.role=music")
+ emms-player-mpv-parameters '("--quiet" "--really-quiet" "--no-audio-display" "--force-window=no" "--vo=null"))
:custom
;; set dir and volume keys
(emms-source-file-default-directory (expand-file-name "~/ik/playlists/"))
;; misc
(emms-info-report-each-num-tracks 2000)
(emms-playlist-buffer-name "*Playlist*")
- (emms-mode-line-format " %s "))
+ (emms-mode-line-format " %s ")
+ (emms-track-description-function
+ '(lambda (track)
+ (let ((artist (emms-track-get track 'info-artist))
+ (title (emms-track-get track 'info-title)))
+ (cond
+ ((and artist title)
+ (concat artist " - " title))
+ (title
+ title)
+ (t
+ (emms-track-simple-description track)))))))
+
(provide 'bd--emms)
;;; bd-emms ends here
diff --git a/.config/emacs/modules/bd--erc.el b/.config/emacs/modules/bd--erc.el
index 124358c..4597fae 100644
--- a/.config/emacs/modules/bd--erc.el
+++ b/.config/emacs/modules/bd--erc.el
@@ -1,32 +1,35 @@
-;; -*- lexical-binding: t; -*-
+;;; -*- lexical-binding: t; -*-
+;;; Commentary:
+;;; Code:
(require 'erc)
(with-eval-after-load "erc" (defalias 'erc 'erc-tls))
-
-(defvar-local bd/erc-status
- '(:eval
- erc-modified-channels-object))
-
-(add-to-list 'global-mode-string bd/erc-status)
-
-(setopt erc-lurker-threshold-time 3600
- erc-hide-list '("JOIN" "PART" "QUIT")
- erc-server "operationnull.com"
- 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
- erc-fill-static-center 15)
-(erc-autojoin-mode -1)
+(use-package erc
+ :defer t
+ :custom
+ (erc-lurker-threshold-time 3600)
+ (erc-hide-list '("JOIN" "PART" "QUIT"))
+ (erc-server "operationnull.com")
+ (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)
+ (erc-fill-static-center 15)
+ :config
+ (erc-autojoin-mode -1)
+ (defvar-local bd/erc-status
+ '(:eval
+ erc-modified-channels-object))
+ (add-to-list 'global-mode-string bd/erc-status))
(provide 'bd--erc)
diff --git a/.config/emacs/modules/bd--essentials.el b/.config/emacs/modules/bd--essentials.el
deleted file mode 100644
index e8ea502..0000000
--- a/.config/emacs/modules/bd--essentials.el
+++ /dev/null
@@ -1,54 +0,0 @@
-;;; -*- lexical-binding: t; -*-
-;;; Commentary:
-;;; Code:
-
-
-;;;; standard bindings
-(keymap-global-unset "C-z")
-(keymap-global-unset "C-x C-z")
-
-(global-set-key (kbd "C-x C-b") 'ibuffer)
-
-(global-set-key (kbd "C-z =") 'text-scale-increase)
-(global-set-key (kbd "C-z -") 'text-scale-decrease)
-(setopt text-scale-mode-step 1.1)
-(repeat-mode 1)
-
-
-;;;; UI
-(setopt inhibit-startup-message t
- initial-major-mode 'eshell-mode
- initial-scratch-message nil)
-(tooltip-mode -1)
-
-(defun pulse-line (&rest _)
- "Pulse the current line."
- (pulse-momentary-highlight-one-line (point)))
-
-(dolist (command '(scroll-up-command scroll-down-command
- recenter-top-bottom other-window))
- (advice-add command :after #'pulse-line))
-
-
-;;;; defaults
-;; basic editing
-(setopt kill-whole-line t
- sentence-end-double-space nil)
-(setq-default tab-width 8)
-(global-hl-line-mode 1)
-(global-visual-line-mode t)
-
-(setopt next-line-add-newlines t)
-
-
-;;;; buffers
-(global-auto-revert-mode 1)
-(setopt global-auto-revert-non-file-buffers t
- auto-revert-interval 30)
-(setopt scroll-up-aggressively '0.50
- scroll-down-aggressively '0.50)
-(setopt Man-notify-method 'pushy)
-
-
-(provide 'bd--essentials)
-;;; bd-essentials ends here
diff --git a/.config/emacs/modules/bd--files.el b/.config/emacs/modules/bd--files.el
index 6ea121b..52b46ae 100644
--- a/.config/emacs/modules/bd--files.el
+++ b/.config/emacs/modules/bd--files.el
@@ -15,9 +15,20 @@
(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 "h" #'dired-hide-details-mode)
+(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"
diff --git a/.config/emacs/modules/bd--themes.el b/.config/emacs/modules/bd--themes.el
index 220b181..b915cd2 100644
--- a/.config/emacs/modules/bd--themes.el
+++ b/.config/emacs/modules/bd--themes.el
@@ -3,6 +3,12 @@
;;; Code:
+;;;; defaults
+(menu-bar-mode -1)
+(tool-bar-mode -1)
+(scroll-bar-mode -1)
+(fringe-mode '(0 . 0))
+
;;;; variable-pitch fonts
(defun bd/enable-variable-pitch-exempt ()
"Text modes to exempt from variable pitch fonts."