diff options
-rwxr-xr-x | bin/ec | 40 |
1 files changed, 22 insertions, 18 deletions
@@ -2,25 +2,29 @@ export LC_CTYPE=zh_CN.UTF-8 -# Number of current visible frames, -# Emacs daemon always has a visible frame called F1 -visible_frames() { - emacsclient -a "" -e '(length (visible-frame-list))' -} +# Number of current visible frames, +# Emacs daemon always has a visible frame called F1 +visible_frames() { + emacsclient -a "" -e '(length (visible-frame-list))' +} -change_focus() { +change_focus() { emacsclient -n -e "(select-frame-set-input-focus (selected-frame))" > /dev/null -} +} -# try switching to the frame incase it is just minimized -# will start a server if not running -test "$(visible_frames)" -eq "1" && change_focus -if [ "$(visible_frames)" -lt "2" ]; then # need to create a frame - # -c $@ with no args just opens the scratch buffer - emacsclient -n -c "$@" && change_focus -else # there is already a visible frame besides the daemon, so - change_focus - # -n $@ errors if there are no args - test "$#" -ne "0" && emacsclient -n "$@" -fi +if [[ $(uname) == Darwin ]]; then + # try switching to the frame incase it is just minimized + # will start a server if not running + test "$(visible_frames)" -eq "1" && change_focus + if [ "$(visible_frames)" -lt "2" ]; then # need to create a frame + # -c $@ with no args just opens the scratch buffer + emacsclient -n -c "$@" && change_focus + else # there is already a visible frame besides the daemon, so + change_focus + # -n $@ errors if there are no args + test "$#" -ne "0" && emacsclient -n "$@" + fi +else + emacsclient -a "" -n -c "$@" +fi |