summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config/emacs/libraries/selector.el6
-rw-r--r--.config/emacs/modules/bd--buffers.el3
-rw-r--r--.config/emacs/modules/bd--devel.el30
-rw-r--r--.config/emacs/modules/bd--emms.el5
-rw-r--r--.config/emacs/modules/bd--erc.el2
-rw-r--r--.config/emacs/modules/bd--files.el17
-rw-r--r--.config/emacs/modules/bd--minibuffer.el54
-rw-r--r--.config/emacs/modules/bd--notes.el2
-rw-r--r--.config/emacs/modules/bd--org.el9
-rw-r--r--.config/guix/modules/emacs.scm3
10 files changed, 73 insertions, 58 deletions
diff --git a/.config/emacs/libraries/selector.el b/.config/emacs/libraries/selector.el
index ea16eec..64b397c 100644
--- a/.config/emacs/libraries/selector.el
+++ b/.config/emacs/libraries/selector.el
@@ -1,6 +1,8 @@
;;; -*- lexical-binding: t; -*-
;;; Commentary:
+
;; modified version of lcolonq: https://github.com/lcolonq/emacs
+
;;; Code:
@@ -54,8 +56,8 @@
(define-key selector-minibuffer-map (kbd "<right>") 'selector-next-source)
(define-key selector-minibuffer-map (kbd "C-p") 'selector-previous)
(define-key selector-minibuffer-map (kbd "C-n") 'selector-next)
-(define-key selector-minibuffer-map (kbd "C-b") 'selector-previous-source)
-(define-key selector-minibuffer-map (kbd "C-f") 'selector-next-source)
+(define-key selector-minibuffer-map (kbd "M-v") 'selector-previous-source)
+(define-key selector-minibuffer-map (kbd "C-v") 'selector-next-source)
(defun selector-minibuffer-line (str)
"Write STR to the minibuffer."
(goto-char (point-max))
diff --git a/.config/emacs/modules/bd--buffers.el b/.config/emacs/modules/bd--buffers.el
index 8b07591..6342e47 100644
--- a/.config/emacs/modules/bd--buffers.el
+++ b/.config/emacs/modules/bd--buffers.el
@@ -63,8 +63,7 @@ dedicated buffer will never be automatically orphaned."
(magit-diff-mode :select nil :align right :size 0.3)
;; emms
(emms-playlist-mode :select t :align left :size 0.2)
- ))
- (shackle-default-rule '(:same t :inhibit-window-quit t)))
+ )))
(provide 'bd--buffers)
diff --git a/.config/emacs/modules/bd--devel.el b/.config/emacs/modules/bd--devel.el
index 36b73a5..c9d2ff1 100644
--- a/.config/emacs/modules/bd--devel.el
+++ b/.config/emacs/modules/bd--devel.el
@@ -3,14 +3,6 @@
;;; Code:
-(defun request-sudo ()
- "Uses TRAMP to edit current opened file as root."
- (interactive)
- (when buffer-file-name
- (find-alternate-file
- (concat "/sudo:root@localhost:"
- buffer-file-name))))
-
(add-hook 'prog-mode-hook (lambda ()
(font-lock-add-keywords
nil '(("\\<\\(FIX\\(ME\\)?\\|TODO\\)"
@@ -31,11 +23,22 @@ to.")
;; skr (skribe) is a scheme extension
(add-to-list 'auto-mode-alist '("\\.skr\\'" . scheme-mode))
+(use-package tramp
+ :config
+ (defun request-sudo ()
+ "Uses TRAMP to edit current opened file as root."
+ (interactive)
+ (when buffer-file-name
+ (find-alternate-file
+ (concat "/sudo:root@localhost:"
+ buffer-file-name)))))
+
(use-package autoformat
:custom
(autoformat-mode 1))
(use-package compile
+ :demand t
:hook ((compilation-filter . ansi-color-compilation-filter))
:custom
(compilation-always-kill t)
@@ -43,11 +46,7 @@ to.")
(compilation-ask-about-save nil)
: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)))
+ (let ((default-directory (bd/get-directory-dwim)))
(call-interactively f)))
(keymap-set prog-mode-map
@@ -68,6 +67,11 @@ to.")
(use-package lua-mode)
+;; fix to force-load newest transient
+(use-package transient
+ :load-path (lambda () (car (directory-files
+ "/home/bdunahu/.guix-home/profile/share/emacs/site-lisp/"
+ t "transient-"))))
(use-package magit
:commands magit-status
:custom
diff --git a/.config/emacs/modules/bd--emms.el b/.config/emacs/modules/bd--emms.el
index 25bb9d9..a378e0c 100644
--- a/.config/emacs/modules/bd--emms.el
+++ b/.config/emacs/modules/bd--emms.el
@@ -24,7 +24,7 @@ playback."
(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)
@@ -54,7 +54,8 @@ playback."
;; misc
(emms-info-report-each-num-tracks 2000)
(emms-playlist-buffer-name "*Playlist*")
- (emms-mode-line-format " %s "))
+ (emms-mode-line-format " %s ")
+ (emms-repeat-playlist t))
(provide 'bd--emms)
diff --git a/.config/emacs/modules/bd--erc.el b/.config/emacs/modules/bd--erc.el
index af5301b..57bb9fc 100644
--- a/.config/emacs/modules/bd--erc.el
+++ b/.config/emacs/modules/bd--erc.el
@@ -5,6 +5,7 @@
(with-eval-after-load "erc" (defalias 'erc 'erc-tls))
(use-package erc
+ :hook abbrev-mode
:defer t
:custom
(erc-lurker-threshold-time 3600)
@@ -18,6 +19,7 @@
(erc-fill-column 80)
(erc-fill-static-center 15)
:config
+ (define-abbrev erc-mode-abbrev-table "pu" ",pounce")
(erc-autojoin-mode -1)
(defvar-local bd/erc-status
'(:eval
diff --git a/.config/emacs/modules/bd--files.el b/.config/emacs/modules/bd--files.el
index ab6c56a..bfb02c0 100644
--- a/.config/emacs/modules/bd--files.el
+++ b/.config/emacs/modules/bd--files.el
@@ -41,7 +41,8 @@
((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)
+ "wav" "mp3" "opus" "ogv" "flac"
+ "m4a")) ext)
(runner #'bd/mpv))
((string-match (regexp-opt '("jpg" "jpeg" "png" "webp"
"ico" "gif" "JPG" "PNG")) ext)
@@ -54,20 +55,6 @@
(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)
diff --git a/.config/emacs/modules/bd--minibuffer.el b/.config/emacs/modules/bd--minibuffer.el
index 2827cff..9ae4dbb 100644
--- a/.config/emacs/modules/bd--minibuffer.el
+++ b/.config/emacs/modules/bd--minibuffer.el
@@ -3,6 +3,9 @@
;;; Code:
+(require 'f)
+
+
(defvar bd/navigate-recent-display-number 6
"The number of recent buffers that show up in bd/navigate.")
(defvar bd/blacklisted-buffer-regexp-list
@@ -116,24 +119,39 @@ selection commands.")
(selector-recentf-source))))
(keymap-global-set "C-x b" 'bd/navigate)
-(use-package vertico
- :init
- (vertico-mode)
- :custom
- (vertico-reverse-mode)
- (vertico-cycle t))
-
-(use-package consult
- :bind (("H-s d" . consult-find)
- ("H-s c" . consult-locate)
- ("H-s g" . consult-grep)
- ("H-s G" . consult-git-grep)
- ("H-s r" . consult-ripgrep)
- ("H-s l" . consult-line)
- ("H-s i" . consult-info)
- ("H-s L" . consult-line-multi)
- ("H-s k" . consult-keep-lines)
- ("H-s u" . consult-focus-lines)))
+(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)
+ (let ((query (read-string "rg: ")))
+ (defun conv (x)
+ (cons (car x) (cons (- (string-to-number (cadr x)) 1) (caddr x))))
+ (defun all-in-file (key list)
+ (--map (to-candidate (cdr it)) (--filter (s-equals? key (car it)) list)))
+ (defun to-candidate (x)
+ (selector-candidate-create (cdr x) :value (car x)))
+ (let* ((dir (expand-file-name (bd/get-directory-dwim)))
+ (result (with-temp-buffer
+ (call-process "rg" nil t nil "-n" "-." query dir)
+ (buffer-string)))
+ (lines (--map (conv (s-split-up-to ":" it 2)) (--filter (not (s-blank? it)) (s-split "\n" result))))
+ (files (-uniq (-map #'car lines)))
+ (sources (--map (selector-source-create
+ it
+ :candidates (all-in-file it lines)
+ :actions (selector-file-contents-actions it))
+ files)))
+ (when (not (null sources))
+ (selector sources)))))
+(keymap-global-set "C-z s" 'bd/selector-rg)
+(keymap-global-set "M-x" 'selector-M-x)
(provide 'bd--minibuffer)
diff --git a/.config/emacs/modules/bd--notes.el b/.config/emacs/modules/bd--notes.el
index 678e4d9..f4f9677 100644
--- a/.config/emacs/modules/bd--notes.el
+++ b/.config/emacs/modules/bd--notes.el
@@ -11,7 +11,7 @@
then pastes the active region."
(interactive)
(let* ((mode major-mode)
- (name (format "*Scratch for %s*" mode))
+ (name (format "*scratch for %s*" mode))
(contents (when (region-active-p)
(buffer-substring-no-properties
(region-beginning) (region-end))))
diff --git a/.config/emacs/modules/bd--org.el b/.config/emacs/modules/bd--org.el
index b59327d..bb589ef 100644
--- a/.config/emacs/modules/bd--org.el
+++ b/.config/emacs/modules/bd--org.el
@@ -6,6 +6,7 @@
(defvar-local agenda-file "~/dc/agenda/agenda_tasks.org")
(use-package org
+ :demand t
:bind
(("C-c n a" . org-agenda)
("C-c n c" . org-capture)
@@ -20,7 +21,7 @@ each org file open."
(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)
@@ -32,21 +33,23 @@ each org file open."
(advice-add 'org-refile :after 'org-save-all-org-buffers)
:custom
(org-startup-folded 'show2levels)
+ (org-latex-toc-command "\\tableofcontents \\clearpage")
(org-ellipsis " ▾")
+ (org-hide-emphasis-markers t)
(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")
diff --git a/.config/guix/modules/emacs.scm b/.config/guix/modules/emacs.scm
index ab2f10c..8d46f54 100644
--- a/.config/guix/modules/emacs.scm
+++ b/.config/guix/modules/emacs.scm
@@ -24,7 +24,6 @@
(define (bd-emacs-package-list config)
(list
emacs-auctex
- emacs-consult
emacs-dash
emacs-denote
emacs-desktop-environment
@@ -40,8 +39,8 @@
emacs-rainbow-delimiters
emacs-rainbow-mode
emacs-shackle
+ emacs-transient
emacs-transmission
- emacs-vertico
emacs-visual-fill-column
aspell