summaryrefslogtreecommitdiff
path: root/modules/dwim-shell-config.el
diff options
context:
space:
mode:
Diffstat (limited to 'modules/dwim-shell-config.el')
-rw-r--r--modules/dwim-shell-config.el28
1 files changed, 16 insertions, 12 deletions
diff --git a/modules/dwim-shell-config.el b/modules/dwim-shell-config.el
index a05646b2..1881f791 100644
--- a/modules/dwim-shell-config.el
+++ b/modules/dwim-shell-config.el
@@ -90,16 +90,10 @@
(require 'cl-lib)
-
-;; Bind menu to dired (after dwim-shell-command loads)
-(with-eval-after-load 'dwim-shell-command
- (with-eval-after-load 'dired
- (keymap-set dired-mode-map "M-D" #'dwim-shell-commands-menu)))
-
;; ----------------------------- Dwim Shell Command ----------------------------
(use-package dwim-shell-command
- :after (dired dirvish)
+ :demand t
:bind (("<remap> <shell-command>" . dwim-shell-command)
:map dired-mode-map
("<remap> <dired-do-async-shell-command>" . dwim-shell-command)
@@ -606,10 +600,14 @@ in process lists or command history."
(defun cj/dwim-shell-commands-extract-audio-from-video ()
"Extract audio track from video file(s)."
(interactive)
- (dwim-shell-command-on-marked-files
- "Extract audio"
- "ffmpeg -i '<<f>>' -vn -acodec copy '<<fne>>.m4a'"
- :utils "ffmpeg"))
+ (let ((bitrate (completing-read "Audio bitrate: "
+ '("64k" "96k" "128k" "192k")
+ nil t)))
+ (dwim-shell-command-on-marked-files
+ "Extract audio"
+ (format "ffmpeg -i '<<f>>' -vn -c:a aac -b:a %s '<<fne>>.m4a'" bitrate)
+ :utils "ffmpeg"
+ :extensions '("mp4" "mkv" "webm" "avi" "mov" "flv" "wmv" "m4v" "mpg" "mpeg" "ogv" "3gp" "ts"))))
(defun cj/dwim-shell-commands-normalize-audio-volume ()
"Normalize audio volume in file(s)."
@@ -809,7 +807,13 @@ gpg: decryption failed: No pinentry"
'dwim-shell-command-history))
(command (alist-get selected command-alist nil nil #'string=)))
(when command
- (call-interactively command)))))
+ (call-interactively command))))
+
+ ;; Bind menu to keymaps after function is defined
+ (with-eval-after-load 'dired
+ (keymap-set dired-mode-map "M-D" #'dwim-shell-commands-menu))
+ (with-eval-after-load 'dirvish
+ (keymap-set dirvish-mode-map "M-D" #'dwim-shell-commands-menu)))
(provide 'dwim-shell-config)
;;; dwim-shell-config.el ends here.