diff options
Diffstat (limited to '.config/emacs')
-rw-r--r-- | .config/emacs/libraries/selector.el | 6 | ||||
-rw-r--r-- | .config/emacs/modules/bd--buffers.el | 3 | ||||
-rw-r--r-- | .config/emacs/modules/bd--devel.el | 30 | ||||
-rw-r--r-- | .config/emacs/modules/bd--emms.el | 5 | ||||
-rw-r--r-- | .config/emacs/modules/bd--erc.el | 2 | ||||
-rw-r--r-- | .config/emacs/modules/bd--files.el | 17 | ||||
-rw-r--r-- | .config/emacs/modules/bd--minibuffer.el | 54 | ||||
-rw-r--r-- | .config/emacs/modules/bd--notes.el | 2 | ||||
-rw-r--r-- | .config/emacs/modules/bd--org.el | 9 |
9 files changed, 72 insertions, 56 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") |