Idea from Ian Jackson's dotfiles.
(ad-set-arg 0 dir)
ad-do-it)))
+(defun mdw-dired-run (args &optional syncp)
+ (interactive (let ((file (dired-get-filename t)))
+ (list (read-string (format "Arguments for %s: " file))
+ current-prefix-arg)))
+ (funcall (if syncp 'shell-command 'async-shell-command)
+ (concat (shell-quote-argument (dired-get-filename nil))
+ " " args)))
+
+(eval-after-load "dired"
+ '(define-key dired-mode-map "X" 'mdw-dired-run))
+
;;;--------------------------------------------------------------------------
;;; URL viewing.