From e64253adc84b62a01660e7de276ba61711f7421f Mon Sep 17 00:00:00 2001 From: Guangxiong Lin Date: Sun, 20 Mar 2022 18:41:45 +0800 Subject: Improve emacsclient --- .aliases | 6 ++---- bin/ec | 30 ++++++++++++++++++++++++++++++ bin/ek | 12 ++++++++++++ bin/et | 3 +++ 4 files changed, 47 insertions(+), 4 deletions(-) create mode 100755 bin/ec create mode 100755 bin/ek create mode 100755 bin/et diff --git a/.aliases b/.aliases index ba4c5aa..582a776 100644 --- a/.aliases +++ b/.aliases @@ -6,10 +6,8 @@ alias diff='diff --color=auto' alias grep='grep --color=auto' alias emacs='emacs -nw' -alias et='emacsclient -a "" -t' -alias ec='nohup emacsclient -a "" -c &!' -alias mu4e='emacs -nw -f mu4e' -alias agenda='emacs -nw -f org-agenda' +alias magit='et -e "(magit-status \"$(pwd)\")"' +alias agenda='et -e "(org-agenda)"' alias nb='cd ~/journals; vim index.md; cd -' alias todo='cd ~/journals; vim gtd.md; cd -' alias vimg='vim +Git +only' diff --git a/bin/ec b/bin/ec new file mode 100755 index 0000000..96499d3 --- /dev/null +++ b/bin/ec @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +# Below is copied from network. I am not quite sure its purpose. Maybe I +# may need it someday. + + +# # 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() { +# 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 + +emacsclient -a "" -n -c "$@" diff --git a/bin/ek b/bin/ek new file mode 100755 index 0000000..4420327 --- /dev/null +++ b/bin/ek @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +server_running () { + emacsclient -a "false" -e "(boundp 'server-process)" +} + +if [ "t" == "$(server_running)" ]; then + emacsclient -e '(kill-emacs)' + echo "Emacs server is killed" +else + echo "Emacs server is not running" +fi diff --git a/bin/et b/bin/et new file mode 100755 index 0000000..807fa38 --- /dev/null +++ b/bin/et @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +exec emacsclient -a "" -c -t "$@" -- cgit v1.2.3