* Browsing dirs from Dired with graphical explorer @ 2008-09-22 8:31 Sébastien Vauban 2008-09-22 10:04 ` Tassilo Horn [not found] ` <mailman.19679.1222078001.18990.help-gnu-emacs@gnu.org> 0 siblings, 2 replies; 16+ messages in thread From: Sébastien Vauban @ 2008-09-22 8:31 UTC (permalink / raw) To: help-gnu-emacs-mXXj517/zsQ Hello, I would like some help with a snippet of code I've merged from different sources: --8<---------------cut here---------------start------------->8--- (defun my-browse-dir (dir-as-string) "Open the current directory in your OS's file manager." (interactive) (let ((file-manager (cond (running-ms-windows "explorer") (t "/usr/lib/kde4/bin/dolphin")))) ;; `nautilus --no-desktop' or `gnome-open' (start-process-shell-command "browse" "*scratch*" (concat file-manager " " dir-as-string)))) --8<---------------cut here---------------end--------------->8--- I'd like to use that when in Dired mode: to be able to launch the graphical file browser from the underlying OS. My problem is: how to pass the current directory argument? Next question: is there somehow a way not to be forced to explicitly give the path to all possible executables under Linux? Some way to launch the file browser like with a `start' or `open' command? Best regards, Seb -- Sébastien Vauban ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Browsing dirs from Dired with graphical explorer 2008-09-22 8:31 Browsing dirs from Dired with graphical explorer Sébastien Vauban @ 2008-09-22 10:04 ` Tassilo Horn 2008-09-22 12:45 ` Lennart Borgman (gmail) [not found] ` <mailman.19685.1222087548.18990.help-gnu-emacs@gnu.org> [not found] ` <mailman.19679.1222078001.18990.help-gnu-emacs@gnu.org> 1 sibling, 2 replies; 16+ messages in thread From: Tassilo Horn @ 2008-09-22 10:04 UTC (permalink / raw) To: help-gnu-emacs Sébastien Vauban <zthjwsqqafhv@spammotel.com> writes: Hi Sébastien, > I would like some help with a snippet of code I've merged from > different sources: > > (defun my-browse-dir (dir-as-string) > "Open the current directory in your OS's file manager." > (interactive) > (let ((file-manager > (cond (running-ms-windows "explorer") > (t "/usr/lib/kde4/bin/dolphin")))) > ;; `nautilus --no-desktop' or `gnome-open' > (start-process-shell-command "browse" > "*scratch*" > (concat file-manager " " dir-as-string)))) > > I'd like to use that when in Dired mode: to be able to launch > the graphical file browser from the underlying OS. > > My problem is: how to pass the current directory argument? If you're inside dired, you can use `dired-current-directory'. So maybe this (untested) version does what you want: --8<---------------cut here---------------start------------->8--- (defun my-browse-dir () "Open the current directory in your OS's file manager." (interactive) (let ((dir-as-string (dired-current-directory)) (file-manager (cond (running-ms-windows "explorer") (t "/usr/lib/kde4/bin/dolphin")))) (start-process "browse" nil file-manager dir-as-string))) --8<---------------cut here---------------end--------------->8--- In should open the directory point is on. If it's on a file, it depends on what the file manager does when it gets a file argument. Most will open it with an appropriate application. You might want to bind the function so some key in dired. (define-key dired-mode-map (kbd "e") 'my-browse-dir) > Next question: is there somehow a way not to be forced to explicitly > give the path to all possible executables under Linux? Normally something like (start-process "file-browser" nil "dolphin") should work. If not, then the PATH emacs sees is not setup correctly. > Some way to launch the file browser like with a `start' or `open' > command? There's `xdg-open' which given a directory or file argument should open it with the system's default application. Bye, Tassilo -- No fortunes found ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Browsing dirs from Dired with graphical explorer 2008-09-22 10:04 ` Tassilo Horn @ 2008-09-22 12:45 ` Lennart Borgman (gmail) [not found] ` <mailman.19685.1222087548.18990.help-gnu-emacs@gnu.org> 1 sibling, 0 replies; 16+ messages in thread From: Lennart Borgman (gmail) @ 2008-09-22 12:45 UTC (permalink / raw) To: Tassilo Horn; +Cc: help-gnu-emacs Tassilo Horn wrote: > Sébastien Vauban <zthjwsqqafhv@spammotel.com> > writes: > > Hi Sébastien, > >> I would like some help with a snippet of code I've merged from >> different sources: >> >> (defun my-browse-dir (dir-as-string) >> "Open the current directory in your OS's file manager." >> (interactive) >> (let ((file-manager >> (cond (running-ms-windows "explorer") >> (t "/usr/lib/kde4/bin/dolphin")))) >> ;; `nautilus --no-desktop' or `gnome-open' >> (start-process-shell-command "browse" >> "*scratch*" >> (concat file-manager " " dir-as-string)))) >> >> I'd like to use that when in Dired mode: to be able to launch >> the graphical file browser from the underlying OS. >> >> My problem is: how to pass the current directory argument? > > If you're inside dired, you can use `dired-current-directory'. So maybe > this (untested) version does what you want: > > --8<---------------cut here---------------start------------->8--- > (defun my-browse-dir () > "Open the current directory in your OS's file manager." > (interactive) > (let ((dir-as-string (dired-current-directory)) > (file-manager > (cond (running-ms-windows "explorer") > (t "/usr/lib/kde4/bin/dolphin")))) > (start-process "browse" nil file-manager dir-as-string))) > --8<---------------cut here---------------end--------------->8--- I think there are better ways to do this. I have implemented this for MS Windows in EmacsW32. It is in the file w32shell. (Unfortunately there is no easy way to get that file, you have to install EmacsW32+Emacs.) ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <mailman.19685.1222087548.18990.help-gnu-emacs@gnu.org>]
* Re: Browsing dirs from Dired with graphical explorer [not found] ` <mailman.19685.1222087548.18990.help-gnu-emacs@gnu.org> @ 2008-09-22 12:58 ` Sébastien Vauban 0 siblings, 0 replies; 16+ messages in thread From: Sébastien Vauban @ 2008-09-22 12:58 UTC (permalink / raw) To: help-gnu-emacs-mXXj517/zsQ Hi Lennart, >> --8<---------------cut here---------------start------------->8--- >> (defun my-browse-dir () >> "Open the current directory in your OS's file manager." >> (interactive) >> (let ((dir-as-string (dired-current-directory)) >> (file-manager >> (cond (running-ms-windows "explorer") >> (t "/usr/lib/kde4/bin/dolphin")))) >> (start-process "browse" nil file-manager dir-as-string))) >> --8<---------------cut here---------------end--------------->8--- > > I think there are better ways to do this. What do you mean exactly? > I have implemented this for MS Windows in EmacsW32. It is in > the file w32shell. (Unfortunately there is no easy way to get > that file, you have to install EmacsW32+Emacs.) I'm a convicted user of EmacsW32 when on Windows since a long time. So, I could effectively (now that I know about it) easily find your functions: --8<---------------cut here---------------start------------->8--- (defun w32shell-explorer-file (file) "Open Windows Explorer with file FILE selected." (interactive "fFile to focus in Explorer: ") (let ((full-file (expand-file-name file))) (setq full-file (replace-regexp-in-string "/" "\\" full-file t t)) (w32-shell-execute nil (concat (getenv "SystemRoot") "\\explorer.exe") (concat "/n,/select," full-file)))) (defun w32shell-explorer-current-file () "Open Windows Explorer with current file selected." (interactive) (if buffer-file-name (w32shell-explorer-file buffer-file-name) (message "Buffer has no file name"))) (defun w32shell-explorer-old (dir) "Open Windows Explorer in directory DIR. For some reason with this function Explorer does not get focus. Use the new version instead." (interactive "DStart in directory: ") (setq dir (expand-file-name dir)) (w32-shell-execute nil dir)) (defun w32shell-explorer (dir) "Open Windows Explorer in directory DIR." (interactive "DStart in directory: ") (setq dir (expand-file-name dir)) ;;(setq dir (directory-file-name dir)) (message "dir=%s" dir) (sit-for 2) (w32-shell-execute "explore" ;;nil "" ;(concat (getenv "SystemRoot") "\\explorer.exe") (concat "/n," dir) )) (defun w32shell-explorer-here () "Open Windows Explorer in current directory." (interactive) (w32shell-explorer default-directory)) --8<---------------cut here---------------end--------------->8--- These look great, but the problem is I'd like to be able to use the described functionality both under Ubuntu and Windows... Best regards, Seb -- Sébastien Vauban ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <mailman.19679.1222078001.18990.help-gnu-emacs@gnu.org>]
* Re: Browsing dirs from Dired with graphical explorer [not found] ` <mailman.19679.1222078001.18990.help-gnu-emacs@gnu.org> @ 2008-09-22 12:05 ` Richard Riley 2008-09-22 13:06 ` Rupert Swarbrick ` (2 more replies) 2008-09-22 12:55 ` Rupert Swarbrick 2008-09-22 13:13 ` Sébastien Vauban 2 siblings, 3 replies; 16+ messages in thread From: Richard Riley @ 2008-09-22 12:05 UTC (permalink / raw) To: help-gnu-emacs Tassilo Horn <tassilo@member.fsf.org> writes: > Sébastien Vauban <zthjwsqqafhv@spammotel.com> > writes: > > Hi Sébastien, > >> I would like some help with a snippet of code I've merged from >> different sources: >> >> (defun my-browse-dir (dir-as-string) >> "Open the current directory in your OS's file manager." >> (interactive) >> (let ((file-manager >> (cond (running-ms-windows "explorer") >> (t "/usr/lib/kde4/bin/dolphin")))) >> ;; `nautilus --no-desktop' or `gnome-open' >> (start-process-shell-command "browse" >> "*scratch*" >> (concat file-manager " " dir-as-string)))) >> >> I'd like to use that when in Dired mode: to be able to launch >> the graphical file browser from the underlying OS. >> >> My problem is: how to pass the current directory argument? > > If you're inside dired, you can use `dired-current-directory'. So maybe > this (untested) version does what you want: > > (defun my-browse-dir () > "Open the current directory in your OS's file manager." > (interactive) > (let ((dir-as-string (dired-current-directory)) > (file-manager > (cond (running-ms-windows "explorer") > (t "/usr/lib/kde4/bin/dolphin")))) > (start-process "browse" nil file-manager dir-as-string))) > > In should open the directory point is on. If it's on a file, it depends > on what the file manager does when it gets a file argument. Most will > open it with an appropriate application. > > You might want to bind the function so some key in dired. > > (define-key dired-mode-map (kbd "e") 'my-browse-dir) > >> Next question: is there somehow a way not to be forced to explicitly >> give the path to all possible executables under Linux? > > Normally something like (start-process "file-browser" nil "dolphin") > should work. If not, then the PATH emacs sees is not setup correctly. > >> Some way to launch the file browser like with a `start' or `open' >> command? > > There's `xdg-open' which given a directory or file argument should open > it with the system's default application. Where is this defined? It does not exist on my debian system. Also would you know how to make "e" open the directory/file under the cursor? Your comments above indicate you thought this to be the case - it actually opens the current dir. e.g If I am in dired in ~, and the cursor is on .adobe (a dir) then hitting e should open .adobe in nautilus in my case ,---- | (defun my-browse-dir () | "Open the current directory in your OS's file manager." | (interactive) | (let ((dir-as-string (dired-current-directory)) | (file-manager "nautilus")) | (message "Dir is %s" dir-as-string) | (start-process "browse" nil file-manager dir-as-string) | ) | ) | | (define-key dired-mode-map (kbd "e") 'my-browse-dir) `---- > > Bye, > Tassilo -- ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Browsing dirs from Dired with graphical explorer 2008-09-22 12:05 ` Richard Riley @ 2008-09-22 13:06 ` Rupert Swarbrick 2008-09-22 13:37 ` Tassilo Horn [not found] ` <mailman.19686.1222090826.18990.help-gnu-emacs@gnu.org> 2 siblings, 0 replies; 16+ messages in thread From: Rupert Swarbrick @ 2008-09-22 13:06 UTC (permalink / raw) To: help-gnu-emacs [-- Attachment #1: Type: text/plain, Size: 3359 bytes --] Richard Riley <rileyrgdev@gmail.com> writes: >> >> There's `xdg-open' which given a directory or file argument should open >> it with the system's default application. > > Where is this defined? It does not exist on my debian system. This may be a trifle OT but on my system: rupert@hake:~ dpkg -S xdg-open xdg-utils: /usr/bin/xdg-open xdg-utils: /usr/share/man/man1/xdg-open.1.gz rupert@hake:~ apt-cache show xdg-utils Package: xdg-utils Priority: optional Section: utils Installed-Size: 256 Maintainer: Per Olofsson <pelle@debian.org> Architecture: all Version: 1.0.2-6 Recommends: iceweasel | www-browser, x11-utils, x11-xserver-utils, file, mime-support, shared-mime-info Suggests: desktop-file-utils, libgnome2-0, exo-utils, libgnomevfs2-bin, kdelibs4c2a, konqueror, libgtk2.0-bin Filename: pool/main/x/xdg-utils/xdg-utils_1.0.2-6_all.deb Size: 53260 MD5sum: a7185ac590bf72ee8c490e4fd7abeb65 SHA1: 0f6be668c7a92a9da3bb2e682135cb79781ffd57 SHA256: 1786908c1abf66841f44f384fed1eb1a875f0c2d36ffb45ff4fe48ad55205e84 Description: desktop integration utilities from freedesktop.org xdg-utils contains utilities for integrating applications with the desktop environment, regardless of which desktop environment is used. They are part of freedesktop.org's Portland project. . The following utilities are included: . * xdg-desktop-menu - Install desktop menu items * xdg-desktop-icon - Install icons on the user's desktop * xdg-icon-resource - Install icon resources * xdg-mime - Gather MIME information about a file * xdg-open - Open a URL in the user's preferred application that handles the respective URL or file type * xdg-email - Open the user's preferred email client, potentially with subject and other info filled in * xdg-screensaver - Enable, disable, or suspend the screensaver Homepage: http://portland.freedesktop.org/ Tag: devel::runtime, implemented-in::shell, interface::commandline, role::program, scope::utility Task: desktop rupert@hake:~ > > Also would you know how to make "e" open the directory/file under the > cursor? Your comments above indicate you thought this to be the case - > it actually opens the current dir. > > e.g If I am in dired in ~, and the cursor is on .adobe (a dir) then > hitting e should open .adobe in nautilus in my case > I didn't know the answer for this either, so this is how I found out: I knew that hitting e in dired did what I wanted normally (ie worked out what directory to use), so first I did C-h c e when in dired and found that e was bound to dired-find-file. I then had a look at the source code for dired-find-file in dired.el (if you've got the sources installed, you can find it by doing C-h f dired-find-file and then hitting enter on the filename, otherwise try here [1]). The code is as follows: (defun dired-find-file () "In Dired, visit the file or directory named on this line." (interactive) ;; Bind `find-file-run-dired' so that the command works on directories ;; too, independent of the user's setting. (let ((find-file-run-dired t)) (find-file (dired-get-file-for-visit)))) So I'd go for (dired-get-file-for-visit). Rupert [1] http://cvs.savannah.gnu.org/viewvc/emacs/lisp/dired.el?revision=1.410&root=emacs&view=markup [-- Attachment #2: Type: application/pgp-signature, Size: 314 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Browsing dirs from Dired with graphical explorer 2008-09-22 12:05 ` Richard Riley 2008-09-22 13:06 ` Rupert Swarbrick @ 2008-09-22 13:37 ` Tassilo Horn [not found] ` <mailman.19686.1222090826.18990.help-gnu-emacs@gnu.org> 2 siblings, 0 replies; 16+ messages in thread From: Tassilo Horn @ 2008-09-22 13:37 UTC (permalink / raw) To: help-gnu-emacs Richard Riley <rileyrgdev@gmail.com> writes: Hi Richard, >> There's `xdg-open' which given a directory or file argument should >> open it with the system's default application. > > Where is this defined? It does not exist on my debian system. Here on Gentoo GNU/Linux it's in the xdg-utils package. > Also would you know how to make "e" open the directory/file under the > cursor? Your comments above indicate you thought this to be the case - > it actually opens the current dir. Ah, ok. I wasn't too sure what `dired-current-directory' returns. Assuming you have xdg-open installed, something like this might do the trick. --8<---------------cut here---------------start------------->8--- (defun dired-open-externally () "Open the current directory in your OS's file manager." (interactive) (start-process "dired-external" nil "xdg-open" (dired-get-file-for-visit))) --8<---------------cut here---------------end--------------->8--- Then the logic what application to use for opening the given file or directory is inside xdg-open. On GNU/Linux it takes these informations from /etc/mailcap and ~/.mailcap, AFAICT. Bye, Tassilo ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <mailman.19686.1222090826.18990.help-gnu-emacs@gnu.org>]
* Re: Browsing dirs from Dired with graphical explorer [not found] ` <mailman.19686.1222090826.18990.help-gnu-emacs@gnu.org> @ 2008-09-22 15:47 ` Richard Riley 2008-09-22 19:15 ` Tassilo Horn [not found] ` <mailman.19711.1222111115.18990.help-gnu-emacs@gnu.org> 0 siblings, 2 replies; 16+ messages in thread From: Richard Riley @ 2008-09-22 15:47 UTC (permalink / raw) To: help-gnu-emacs Tassilo Horn <tassilo@member.fsf.org> writes: > Richard Riley <rileyrgdev@gmail.com> writes: > > Hi Richard, > >>> There's `xdg-open' which given a directory or file argument should >>> open it with the system's default application. >> >> Where is this defined? It does not exist on my debian system. > > Here on Gentoo GNU/Linux it's in the xdg-utils package. Yes - I was being stupid - I thought you were referring to an elisp function! :-; > >> Also would you know how to make "e" open the directory/file under the >> cursor? Your comments above indicate you thought this to be the case - >> it actually opens the current dir. > > Ah, ok. I wasn't too sure what `dired-current-directory' returns. > > Assuming you have xdg-open installed, something like this might do the > trick. > > (defun dired-open-externally () > "Open the current directory in your OS's file manager." > (interactive) > (start-process "dired-external" nil "xdg-open" (dired-get-file-for-visit))) > > Then the logic what application to use for opening the given file or > directory is inside xdg-open. On GNU/Linux it takes these informations > from /etc/mailcap and ~/.mailcap, AFAICT. > > Bye, > Tassilo If I "xdg-open ." from the command line it works great. If I change xdg-open for nautilus in the code below it works. (Using nautilus that is). But using xdk-open there it does not work for me (debian). Does it work on your Linux install? -->-->-- (defun dired-open-externally () "Open the current directory in your OS's file manager." (interactive) (let ((fileobject (dired-get-file-for-visit))) (start-process "dired-external" nil "xdg-open" fileobject) (message "file is %s" fileobject) ) ) (define-key dired-mode-map (kbd "e") 'dired-open-externally) -->-->-- ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Browsing dirs from Dired with graphical explorer 2008-09-22 15:47 ` Richard Riley @ 2008-09-22 19:15 ` Tassilo Horn [not found] ` <mailman.19711.1222111115.18990.help-gnu-emacs@gnu.org> 1 sibling, 0 replies; 16+ messages in thread From: Tassilo Horn @ 2008-09-22 19:15 UTC (permalink / raw) To: help-gnu-emacs Richard Riley <rileyrgdev@gmail.com> writes: Hi Richard, > If I "xdg-open ." from the command line it works great. > > If I change xdg-open for nautilus in the code below it works. (Using > nautilus that is). > > But using xdk-open there it does not work for me (debian). Does it > work on your Linux install? Yes, it works here (Gentoo GNU/Linux). If point is on a directory it opens thunar (the XFCE file manager), for files it uses another appropriate application. Bye, Tassilo ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <mailman.19711.1222111115.18990.help-gnu-emacs@gnu.org>]
* Re: Browsing dirs from Dired with graphical explorer [not found] ` <mailman.19711.1222111115.18990.help-gnu-emacs@gnu.org> @ 2008-09-22 22:07 ` Richard Riley 2008-09-23 7:58 ` Tassilo Horn [not found] ` <mailman.19745.1222156700.18990.help-gnu-emacs@gnu.org> 0 siblings, 2 replies; 16+ messages in thread From: Richard Riley @ 2008-09-22 22:07 UTC (permalink / raw) To: help-gnu-emacs Tassilo Horn <tassilo@member.fsf.org> writes: > Richard Riley <rileyrgdev@gmail.com> writes: > > Hi Richard, > >> If I "xdg-open ." from the command line it works great. >> >> If I change xdg-open for nautilus in the code below it works. (Using >> nautilus that is). >> >> But using xdk-open there it does not work for me (debian). Does it >> work on your Linux install? > > Yes, it works here (Gentoo GNU/Linux). If point is on a directory it > opens thunar (the XFCE file manager), for files it uses another > appropriate application. Hmm. No joy here on Debian. shell-command worked though but only for directories. For files the cursor sat spinning - possibly because the process was waiting for emacsclient to respond? (defun dired-open-externally () "Open the current directory in your OS's file manager." (interactive) (let ((fileobject (dired-get-file-for-visit))) ; (start-process "dired-external" nil "/usr/bin/xdg-open" "http://www.freedesktop.org/") (shell-command (concat "xdg-open" " " fileobject)) ; (start-process-shell-command "xdg" nil "/usr/bin/xdg-open" "www.ibm.com") ) ) (define-key dired-mode-map (kbd "e") 'dired-open-externally) ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Browsing dirs from Dired with graphical explorer 2008-09-22 22:07 ` Richard Riley @ 2008-09-23 7:58 ` Tassilo Horn [not found] ` <mailman.19745.1222156700.18990.help-gnu-emacs@gnu.org> 1 sibling, 0 replies; 16+ messages in thread From: Tassilo Horn @ 2008-09-23 7:58 UTC (permalink / raw) To: help-gnu-emacs Richard Riley <rileyrgdev@gmail.com> writes: Hi Richard, > Hmm. No joy here on Debian. > > shell-command worked though but only for directories. For files the > cursor sat spinning - possibly because the process was waiting for > emacsclient to respond? I don't know. What happens if you eval? (start-process "dired-external" "*dired-external*" "xdg-open" "http://www.freedesktop.org/") There should be some output in the *dired-external* buffer now. Hm, strange. This doesn't work here, too, and in *dired-external* there's only "Process dired-external finished". If I replace "xdg-open" with "conkeror" it'll start conkeror on freedesktop.org. xdg-open http://www.freedesktop.org/ in a terminal starts conkeror on freedesktop.org, too. I'm totally stunned why this doesn't work from inside emacs. But (start-process "dired-external" "*dired-external*" "xdg-open" (getenv "HOME")) does work and open thunar in my HOME. Can anyone enlighten me why the first call has no result but the second works as expected? Bye, Tassilo ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <mailman.19745.1222156700.18990.help-gnu-emacs@gnu.org>]
* Re: Browsing dirs from Dired with graphical explorer [not found] ` <mailman.19745.1222156700.18990.help-gnu-emacs@gnu.org> @ 2008-09-23 11:58 ` Richard Riley 2008-09-23 12:00 ` Richard Riley 0 siblings, 1 reply; 16+ messages in thread From: Richard Riley @ 2008-09-23 11:58 UTC (permalink / raw) To: help-gnu-emacs Tassilo Horn <tassilo@member.fsf.org> writes: > Richard Riley <rileyrgdev@gmail.com> writes: > > Hi Richard, > >> Hmm. No joy here on Debian. >> >> shell-command worked though but only for directories. For files the >> cursor sat spinning - possibly because the process was waiting for >> emacsclient to respond? > > I don't know. What happens if you eval? > > (start-process "dired-external" "*dired-external*" > "xdg-open" "http://www.freedesktop.org/") > > There should be some output in the *dired-external* buffer now. Yes : "Process dired-external finished". But nothing comes up. > > Hm, strange. This doesn't work here, too, and in *dired-external* > there's only "Process dired-external finished". If I replace "xdg-open" > with "conkeror" it'll start conkeror on freedesktop.org. > > xdg-open http://www.freedesktop.org/ > > in a terminal starts conkeror on freedesktop.org, too. I'm totally > stunned why this doesn't work from inside emacs. But its a relief you are seeing the same as me now :-; > > (start-process "dired-external" "*dired-external*" > "xdg-open" (getenv "HOME")) great! thanks! > > does work and open thunar in my HOME. > > Can anyone enlighten me why the first call has no result but the second > works as expected? > > Bye, > Tassilo > > > -- ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Browsing dirs from Dired with graphical explorer 2008-09-23 11:58 ` Richard Riley @ 2008-09-23 12:00 ` Richard Riley 2008-09-24 17:28 ` Richard Riley 0 siblings, 1 reply; 16+ messages in thread From: Richard Riley @ 2008-09-23 12:00 UTC (permalink / raw) To: help-gnu-emacs Richard Riley <rileyrgdev@gmail.com> writes: > Tassilo Horn <tassilo@member.fsf.org> writes: > >> Richard Riley <rileyrgdev@gmail.com> writes: >> >> Hi Richard, >> >>> Hmm. No joy here on Debian. >>> >>> shell-command worked though but only for directories. For files the >>> cursor sat spinning - possibly because the process was waiting for >>> emacsclient to respond? >> >> I don't know. What happens if you eval? >> >> (start-process "dired-external" "*dired-external*" >> "xdg-open" "http://www.freedesktop.org/") >> >> There should be some output in the *dired-external* buffer now. > > Yes : "Process dired-external finished". But nothing comes up. > >> >> Hm, strange. This doesn't work here, too, and in *dired-external* >> there's only "Process dired-external finished". If I replace "xdg-open" >> with "conkeror" it'll start conkeror on freedesktop.org. >> >> xdg-open http://www.freedesktop.org/ >> >> in a terminal starts conkeror on freedesktop.org, too. I'm totally >> stunned why this doesn't work from inside emacs. But > > its a relief you are seeing the same as me now :-; > > >> >> (start-process "dired-external" "*dired-external*" >> "xdg-open" (getenv "HOME")) > > great! thanks! > >> >> does work and open thunar in my HOME. I spoke too soon. It does not work here... I just get Process dired-external finished again the buffer. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Browsing dirs from Dired with graphical explorer 2008-09-23 12:00 ` Richard Riley @ 2008-09-24 17:28 ` Richard Riley 0 siblings, 0 replies; 16+ messages in thread From: Richard Riley @ 2008-09-24 17:28 UTC (permalink / raw) To: help-gnu-emacs Richard Riley <rileyrgdev@gmail.com> writes: > Richard Riley <rileyrgdev@gmail.com> writes: > >> Tassilo Horn <tassilo@member.fsf.org> writes: >> >>> Richard Riley <rileyrgdev@gmail.com> writes: >>> >>> Hi Richard, >>> >>>> Hmm. No joy here on Debian. >>>> >>>> shell-command worked though but only for directories. For files the >>>> cursor sat spinning - possibly because the process was waiting for >>>> emacsclient to respond? >>> >>> I don't know. What happens if you eval? >>> >>> (start-process "dired-external" "*dired-external*" >>> "xdg-open" "http://www.freedesktop.org/") >>> >>> There should be some output in the *dired-external* buffer now. >> >> Yes : "Process dired-external finished". But nothing comes up. >> >>> >>> Hm, strange. This doesn't work here, too, and in *dired-external* >>> there's only "Process dired-external finished". If I replace "xdg-open" >>> with "conkeror" it'll start conkeror on freedesktop.org. >>> >>> xdg-open http://www.freedesktop.org/ >>> >>> in a terminal starts conkeror on freedesktop.org, too. I'm totally >>> stunned why this doesn't work from inside emacs. But >> >> its a relief you are seeing the same as me now :-; >> >> >>> >>> (start-process "dired-external" "*dired-external*" >>> "xdg-open" (getenv "HOME")) >> >> great! thanks! >> >>> >>> does work and open thunar in my HOME. > > > I spoke too soon. It does not work here... I just get > > Process dired-external finished > > again the buffer. One of the problems I had was opening files associated with emacs - it just hung as I was using emacs client. The solution was to have a "myedit" script: emacsclient -n "$@" And the code is now: (defun dired-open-externally () "Open the current directory in your OS's file manager." (interactive) (let ((fileobject (dired-get-file-for-visit))) ; (start-process "dired-external" nil "/usr/bin/xdg-open" "http://www.freedesktop.org/") (shell-command (concat "xdg-open" " " fileobject)) ; (start-process-shell-command "xdg" nil "/usr/bin/xdg-open" "www.ibm.com") ) ) (define-key dired-mode-map (kbd "e") 'dired-open-externally) I still don't know why start-process should not work. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Browsing dirs from Dired with graphical explorer [not found] ` <mailman.19679.1222078001.18990.help-gnu-emacs@gnu.org> 2008-09-22 12:05 ` Richard Riley @ 2008-09-22 12:55 ` Rupert Swarbrick 2008-09-22 13:13 ` Sébastien Vauban 2 siblings, 0 replies; 16+ messages in thread From: Rupert Swarbrick @ 2008-09-22 12:55 UTC (permalink / raw) To: help-gnu-emacs [-- Attachment #1.1: Type: text/plain, Size: 1109 bytes --] Tassilo Horn <tassilo@member.fsf.org> writes: > > If you're inside dired, you can use `dired-current-directory'. So maybe > this (untested) version does what you want: > > (defun my-browse-dir () > "Open the current directory in your OS's file manager." > (interactive) > (let ((dir-as-string (dired-current-directory)) > (file-manager > (cond (running-ms-windows "explorer") > (t "/usr/lib/kde4/bin/dolphin")))) > (start-process "browse" nil file-manager dir-as-string))) > > In should open the directory point is on. If it's on a file, it depends > on what the file manager does when it gets a file argument. Most will > open it with an appropriate application. > > You might want to bind the function so some key in dired. > > (define-key dired-mode-map (kbd "e") 'my-browse-dir) Another way, that doesn't need dired to be running is to use emacs' directory expansion. That is, (expand-file-name ".") gives the full pathname of the current directory. This is a bit hacky, to be honest, but I don't know a neater solution. Tassilo's solution now becomes: [-- Attachment #1.2: Type: application/emacs-lisp, Size: 359 bytes --] [-- Attachment #1.3: Type: text/plain, Size: 93 bytes --] Personally though, I wouldn't use the let form at all, and would just write the following: [-- Attachment #1.4: Type: application/emacs-lisp, Size: 319 bytes --] [-- Attachment #1.5: Type: text/plain, Size: 226 bytes --] Finally, since this now works outside of dired, you can use a global keybinding if you want - how about: (global-set-key (kbd "C-<f12>") 'my-browse-dir) (of course, C-<f12> isn't necessarily what you want to use). Rupert [-- Attachment #2: Type: application/pgp-signature, Size: 314 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Browsing dirs from Dired with graphical explorer [not found] ` <mailman.19679.1222078001.18990.help-gnu-emacs@gnu.org> 2008-09-22 12:05 ` Richard Riley 2008-09-22 12:55 ` Rupert Swarbrick @ 2008-09-22 13:13 ` Sébastien Vauban 2 siblings, 0 replies; 16+ messages in thread From: Sébastien Vauban @ 2008-09-22 13:13 UTC (permalink / raw) To: help-gnu-emacs-mXXj517/zsQ Hi Tassilo, >> I would like some help with a snippet of code I've merged from >> different sources: >> >> (defun my-browse-dir (dir-as-string) >> "Open the current directory in your OS's file manager." >> (interactive) >> (let ((file-manager >> (cond (running-ms-windows "explorer") >> (t "/usr/lib/kde4/bin/dolphin")))) >> ;; `nautilus --no-desktop' or `gnome-open' >> (start-process-shell-command "browse" >> "*scratch*" >> (concat file-manager " " dir-as-string)))) >> >> I'd like to use that when in Dired mode: to be able to launch >> the graphical file browser from the underlying OS. >> >> How to pass the current directory argument? > > If you're inside dired, you can use `dired-current-directory'. > So maybe this (untested) version does what you want: > > (defun my-browse-dir () > "Open the current directory in your OS's file manager." > (interactive) > (let ((dir-as-string (dired-current-directory)) > (file-manager > (cond (running-ms-windows "explorer") > (t "/usr/lib/kde4/bin/dolphin")))) > (start-process "browse" nil file-manager dir-as-string))) > > In should open the directory point is on. If it's on a file, it depends > on what the file manager does when it gets a file argument. Most will > open it with an appropriate application. Thanks for your answer, that (should have) filled my need. Though... Tested under Ubuntu: I don't know what happens, but my screen is flickering for less than one second, and... nothing... Like if the dolphin process was launched but stopped or crashed... No trace in Emacs... Don't know how to see what happened. Though, launching the command: --8<---------------cut here---------------start------------->8--- /usr/lib/kde4/bin/dolphin "/home/sva/texmf/tex/latex" --8<---------------cut here---------------end--------------->8--- does work... Ununderstandable (for me, at least)! Tested under Windows: explorer is launched but opens a pop-up saying: "The path 'z:/texmf/tex/latex' does not exist or is not a directory". This seems (after some tests from the command prompt) to be because of the `/' character that should have to be translated by a `\' for Windows... Not that fantastic yet, my snippet of code! Seb -- Sébastien Vauban ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2008-09-24 17:28 UTC | newest] Thread overview: 16+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-09-22 8:31 Browsing dirs from Dired with graphical explorer Sébastien Vauban 2008-09-22 10:04 ` Tassilo Horn 2008-09-22 12:45 ` Lennart Borgman (gmail) [not found] ` <mailman.19685.1222087548.18990.help-gnu-emacs@gnu.org> 2008-09-22 12:58 ` Sébastien Vauban [not found] ` <mailman.19679.1222078001.18990.help-gnu-emacs@gnu.org> 2008-09-22 12:05 ` Richard Riley 2008-09-22 13:06 ` Rupert Swarbrick 2008-09-22 13:37 ` Tassilo Horn [not found] ` <mailman.19686.1222090826.18990.help-gnu-emacs@gnu.org> 2008-09-22 15:47 ` Richard Riley 2008-09-22 19:15 ` Tassilo Horn [not found] ` <mailman.19711.1222111115.18990.help-gnu-emacs@gnu.org> 2008-09-22 22:07 ` Richard Riley 2008-09-23 7:58 ` Tassilo Horn [not found] ` <mailman.19745.1222156700.18990.help-gnu-emacs@gnu.org> 2008-09-23 11:58 ` Richard Riley 2008-09-23 12:00 ` Richard Riley 2008-09-24 17:28 ` Richard Riley 2008-09-22 12:55 ` Rupert Swarbrick 2008-09-22 13:13 ` Sébastien Vauban
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.