You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

41 lines
1.5 KiB

#!/bin/zsh
# Helper to fetch last return status
function laststatus { return $? }
kde-current-activity () {
qdbus org.kde.ActivityManager /ActivityManager/Activities org.kde.ActivityManager.Activities.CurrentActivity
}
kde-current-activity-name () {
qdbus org.kde.ActivityManager /ActivityManager/Activities org.kde.ActivityManager.Activities.ActivityName `kde-current-activity`
}
# Check if server has been started and start it otherwise
emacs-server-start () {
emacsclient -s "$(kde-current-activity-name)" -e '(version)' &> /dev/null || (/usr/bin/emacs --daemon="$(kde-current-activity-name)";
);
}
# This ensures that the right server is started;
# I guess it can be done with -a "" when calling emacsclient, but
# eventually I want to start emacs servers when the activity changes,
# so this would need to be done separately anyways.
emacs-server-start
# This ensures that a new frame is created if only the default (tty)
# one is present. It also names the new frame, in case I decide to
# create secondary frames (e.g. for the agenda).
emacsclient -s "$(kde-current-activity-name)" -n -e "(if (> (length (frame-list)) 1) 't)" | grep t >/dev/null;
if [ "$?" = "1" ]; then
emacsclient -s "$(kde-current-activity-name)" -c --frame-parameters="(quote (name . \"main-frame on $(kde-current-activity-name)\"))" "$@"
else
emacsclient -s "$(kde-current-activity-name)" "$@"
fi
STATUS=$?;
# This does not seem to be needed anymore
#emacsclient -s "$(kde-current-activity-name)" -e '(recenter-top-bottom)'
return $STATUS