diff options
-rw-r--r-- | init.el | 13 | ||||
-rw-r--r-- | lisp/+eshell.el | 7 | ||||
-rw-r--r-- | lisp/+setup.el | 17 |
3 files changed, 31 insertions, 6 deletions
diff --git a/init.el b/init.el index 280f7e6..c06e44d 100644 --- a/init.el +++ b/init.el | |||
@@ -186,7 +186,7 @@ | |||
186 | (seq "." (or "mp4" "gif" "mov" "MOV" "webm") eos) | 186 | (seq "." (or "mp4" "gif" "mov" "MOV" "webm") eos) |
187 | ;; music | 187 | ;; music |
188 | "soundcloud.com" "bandcamp.com" | 188 | "soundcloud.com" "bandcamp.com" |
189 | (seq "." (or "ogg" "mp3") eos))) | 189 | (seq "." (or "ogg" "mp3" "opus" "m4a") eos))) |
190 | (lambda (&rest args) | 190 | (lambda (&rest args) |
191 | (apply (if (executable-find "mpv") | 191 | (apply (if (executable-find "mpv") |
192 | #'+browse-url-with-mpv | 192 | #'+browse-url-with-mpv |
@@ -302,7 +302,10 @@ | |||
302 | eshell-scroll-to-bottom-on-input 'all | 302 | eshell-scroll-to-bottom-on-input 'all |
303 | eshell-smart-space-goes-to-end t | 303 | eshell-smart-space-goes-to-end t |
304 | eshell-where-to-jump 'begin | 304 | eshell-where-to-jump 'begin |
305 | eshell-banner-message "") | 305 | eshell-banner-message "" |
306 | eshell-prompt-regexp (rx bol (* (not (any ?# ?$ ?\n))) | ||
307 | " " (any ?# ?$) | ||
308 | (* " "))) | ||
306 | (with-eval-after-load 'mwim | 309 | (with-eval-after-load 'mwim |
307 | (setf (alist-get 'eshell-mode mwim-beginning-of-line-function) | 310 | (setf (alist-get 'eshell-mode mwim-beginning-of-line-function) |
308 | #'eshell-bol)) | 311 | #'eshell-bol)) |
@@ -318,7 +321,7 @@ | |||
318 | (concat eshell-prompt-regexp | 321 | (concat eshell-prompt-regexp |
319 | "\\(.*\\)") | 322 | "\\(.*\\)") |
320 | 1)) | 323 | 1)) |
321 | truncate-lines t)) | 324 | (cons 'truncate-lines t))) |
322 | (set (make-local-variable (car setting)) (cdr setting))) | 325 | (set (make-local-variable (car setting)) (cdr setting))) |
323 | ;; Bind keys | 326 | ;; Bind keys |
324 | (dolist (binding '(("C-d" . +eshell-quit-or-delete-char))) | 327 | (dolist (binding '(("C-d" . +eshell-quit-or-delete-char))) |
@@ -1442,8 +1445,8 @@ See also `crux-reopen-as-root-mode'." | |||
1442 | 1445 | ||
1443 | (setup (:straight macrostep) | 1446 | (setup (:straight macrostep) |
1444 | (:require macrostep) | 1447 | (:require macrostep) |
1445 | (:with-mode emacs-lisp-mode | 1448 | (:bind-into (emacs-lisp-mode lisp-interaction-mode) |
1446 | (:bind "C-c e" #'macrostep-expand))) | 1449 | "C-c e" #'macrostep-expand)) |
1447 | 1450 | ||
1448 | (setup (:straight (magit :host github :repo "magit/magit"))) | 1451 | (setup (:straight (magit :host github :repo "magit/magit"))) |
1449 | 1452 | ||
diff --git a/lisp/+eshell.el b/lisp/+eshell.el index d49358d..d70bed7 100644 --- a/lisp/+eshell.el +++ b/lisp/+eshell.el | |||
@@ -29,7 +29,12 @@ any directory proferred by `consult-dir'." | |||
29 | "Delete the character to the right, or quit eshell on an empty line." | 29 | "Delete the character to the right, or quit eshell on an empty line." |
30 | (interactive "p") | 30 | (interactive "p") |
31 | (if (and (eolp) (looking-back eshell-prompt-regexp)) | 31 | (if (and (eolp) (looking-back eshell-prompt-regexp)) |
32 | (eshell-life-is-too-much) | 32 | (progn (eshell-life-is-too-much) |
33 | (when (and (<= 1 (count-windows)) | ||
34 | ;; I'm guessing the extra frame is for the server? | ||
35 | (> (length (frame-list)) 2) | ||
36 | server-process) | ||
37 | (delete-frame))) | ||
33 | (delete-forward-char arg))) | 38 | (delete-forward-char arg))) |
34 | 39 | ||
35 | ;;; Insert previous arguments | 40 | ;;; Insert previous arguments |
diff --git a/lisp/+setup.el b/lisp/+setup.el index 367fb01..d8e9bb8 100644 --- a/lisp/+setup.el +++ b/lisp/+setup.el | |||
@@ -94,5 +94,22 @@ replace itself with the RECIPE's package." | |||
94 | :indent 1 | 94 | :indent 1 |
95 | :shorthand #'+setup-straight-shorthand) | 95 | :shorthand #'+setup-straight-shorthand) |
96 | 96 | ||
97 | |||
98 | ;;; Redefines of `setup' forms | ||
99 | |||
100 | (setup-define :bind-into | ||
101 | (lambda (feature-or-map &rest rest) | ||
102 | (cl-loop for f/m in (ensure-list feature-or-map) | ||
103 | collect (if (string-match-p "-map\\'" (symbol-name f/m)) | ||
104 | `(:with-map ,f/m (:bind ,@rest)) | ||
105 | `(:with-feature ,f/m (:bind ,@rest))) | ||
106 | into forms | ||
107 | finally return `(progn ,@forms))) | ||
108 | :documentation "Bind into keys into the map(s) of FEATURE-OR-MAP. | ||
109 | FEATURE-OR-MAP can be a feature or map name or a list of them. | ||
110 | The arguments REST are handled as by `:bind'." | ||
111 | :debug '(sexp &rest form sexp) | ||
112 | :indent 1) | ||
113 | |||
97 | (provide '+setup) | 114 | (provide '+setup) |
98 | ;;; +setup.el ends here | 115 | ;;; +setup.el ends here |