From: rearman Date: Fri, 9 Jan 2026 17:37:36 +0000 (-0500) Subject: Defun and binds to open external, remove openwith X-Git-Url: https://git.earman.xyz/?a=commitdiff_plain;h=3f6776129138d6dcc0e7c051c389587e394d7958;p=emacsinit.git Defun and binds to open external, remove openwith 'b' in dired now opens a file externally, and 'B' does the same for all marked files. Removes the need for 'openwith'. 'B' overrides the binding for 'dired-do-byte-compile', which is fine by me. --- diff --git a/init.el b/init.el index 0452098..f442502 100644 --- a/init.el +++ b/init.el @@ -119,6 +119,12 @@ (keymap-set dired-mode-map "M-C" #'re/copy-with-mod-time) + (keymap-set dired-mode-map + "b" + #'re/dired-open-externally) + (keymap-set dired-mode-map + "B" + #'re/dired-open-marked-externally) (dired-hide-details-mode t) (hl-line-mode)))) diff --git a/re/re-dired-defuns.el b/re/re-dired-defuns.el index 617a0ef..60728ef 100644 --- a/re/re-dired-defuns.el +++ b/re/re-dired-defuns.el @@ -14,7 +14,7 @@ (defun re/dired-find-marked-files () "Open all marked files from `dired'." (interactive) - (mapc 'find-file (reverse (dired-get-marked-files)))) + (mapc #'find-file (reverse (dired-get-marked-files)))) (defun re/dired-sort () "Change sort order of dired dir." @@ -28,5 +28,26 @@ (setq ssortBy (completing-read "Sort by (default name):" smenu nil t nil nil (caar smenu))) (dired-sort-other (cdr (assoc ssortBy smenu))))) +(defun re/open-file-external (file) + "Open a file in an external program." + (interactive) + (let ((process-connection-type nil)) + (cond ((eq system-type 'windows-nt) + (w32-shell-execute "open" + (replace-regexp-in-string "/" "\\\\" file t t))) + ((eq system-type 'gnu/linux) + (start-process "" nil "xdg-open" file)) + (t (error "Unable to automatically open this file"))))) + +(defun re/dired-open-externally () + "Open the file at point in an external program." + (interactive) + (re/open-file-external (dired-get-filename))) + +(defun re/dired-open-marked-externally () + "Open all marked files from `dired' in an external program." + (interactive) + (mapc #'re/open-file-external (reverse (dired-get-marked-files)))) + (provide 're-dired-defuns) ;;; re-dired-defuns.el ends here diff --git a/re/re-packages.el b/re/re-packages.el index 2016751..0061554 100644 --- a/re/re-packages.el +++ b/re/re-packages.el @@ -56,19 +56,6 @@ :config (message "Magit Loaded")) -(use-package openwith - :config - (openwith-mode t) - (setq openwith-associations - (list (list "\\.\\(\\(ppt\\|xls\\|doc\\)x?\\|ods[gpst]\\)" - "libreoffice" - '(file)) - (list "\\.\\(exe\\|lnk\\)" "explorer" '(file)) - (list "\\.adpro" "ProductivitySuite" '(file)) - (list "\\.rss" "rs500" '(file)) - ;; (list "\\.pdf" "zathura" '(file)) - (list "\\.dwg" "dwgviewr" '(file))))) - (use-package auctex :config (setq TeX-auto-save t