For how to automatically evaluate certain lisp code every time starting an emacsclient, click here.
My problem is different. I want to write a script that opens a new emacs frame (with focus on it) (one way to do this is to run emacsclient -c
) and then run the following elisp code in that frame.
(org-remember)
I tried
emacsclient -c & emacsclient -eval '(org-remember)'
But sometimes it just opens a new frame unfocused and then runs the elisp code, and other times, it opens a new frame focused but runs the elisp code in the old frame.
Some who knows what org-remember does might ask me why not just do this:
emacsclient -eval '(org-remember)'
but that doesn't bring focus on the old frame.
My version of emacsclient doesn't support the -c
argument, despite the documentation advertising it.
I'm not sure if there's a cleaner way to do this, but you could try using make-frame
and select-frame
, like so:
emacsclient -e '(select-frame (make-frame))' '(org-remember)'
That will create a new frame and, in case your window manager doesn't select it automatically, grant it focus, and then execute the second command with that new frame having focus.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With