From: Peng Li Date: Wed, 22 Jun 2016 16:24:46 +0000 (+0800) Subject: applescript - for emacs & emacsclient, there is still a bug X-Git-Url: http://47.100.26.94:8080/?a=commitdiff_plain;h=e72ce0312e2edca2d911c15af3c7ba97ed36230b;p=dotfiles.git applescript - for emacs & emacsclient, there is still a bug --- diff --git a/scripts/emacs_toggle.applescript b/scripts/emacs_toggle.applescript index 4873117..7870b6d 100644 --- a/scripts/emacs_toggle.applescript +++ b/scripts/emacs_toggle.applescript @@ -2,18 +2,12 @@ ## this scirpt works together with Quicksilver ## copy/link this file to ~/Library/Application Support/Quicksilver/Action ## and set a toggle event on Quicksilver preference -#tell application "System Events" -# tell application process "Emacs" -# if visible then -# set visible to false -# else -# set visible to true -# tell application "Emacs" to activate -# end if -# end tell -#end tell # ## http://brettterpstra.com/2011/01/22/quick-tip-applescript-application-toggle/ +# +# +#Version 1.0 toggle emacs front + set appName to "Emacs" set startIt to false tell application "System Events" @@ -29,3 +23,31 @@ if startIt then tell application appName to activate end if +## version 2.0 - using emacs daemon and client +##set appName to "Emacs" +##set startIt to false +##tell application "System Events" +## try +## -- we look for <= 2 because Emacs --daemon seems to always have an entry in visibile-frame-list even if there isn't +## set frameVisible to do shell script "/usr/local/bin/emacsclient -e '(<= 2 (length (visible-frame-list)))'" +## if frameVisible is not "t" then +## -- there is a not a visible frame, launch one +## do shell script "/usr/local/bin/emacsclient -c -n" +## set startIt to true +## else if frontmost of process "Emacs" then +## set visible of process "Emacs" to false +## else +## set frontmost of process "Emacs" to true +## end if +## on error +## -- daemon is not running, start the daemon and open a frame +## do shell script "/usr/local/bin/emacs --daemon" +## do shell script "/usr/local/bin/emacsclient -c -n" +## set startIt to true +## end try +##end tell +## +##-- bring the visible frame to the front +##if startIt then +## tell application "Emacs" to activate +##end if