From 248fc7fca0b684c27234acd34011d5a67570bdd2 Mon Sep 17 00:00:00 2001 From: Guangxiong Lin Date: Tue, 22 Mar 2022 23:48:01 +0800 Subject: Update ec (emacs) --- bin/ec | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) (limited to 'bin/ec') diff --git a/bin/ec b/bin/ec index 4a4dfb9..78483a7 100755 --- a/bin/ec +++ b/bin/ec @@ -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 -- cgit v1.2.3