[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to get DISPLAY of emacsclient?
From: |
Max Nikulin |
Subject: |
Re: How to get DISPLAY of emacsclient? |
Date: |
Sat, 26 Nov 2022 10:36:30 +0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 |
On 25/11/2022 23:57, Stefan Monnier wrote:
Unfortunately the value of following expression is the DISPLAY environment
of the server process
emacsclient --eval '(getenv "DISPLAY")'
There are different ways which will give you different answers in
different cases:
- you can check the `display` parameter of the selected frame (should
handle the `emacsclient --display` case).
emacsclient --display "$DISPLAY" \
--eval "(frame-parameter (selected-frame) 'display)"
may be a workaround, thank you for the idea. A caveat is that --display
parameter becomes mandatory, DISPLAY environment is not enough:
emacsclient --eval "(frame-parameter (selected-frame) 'display)"
nil
Emacs daemon may have no x frames yet at the moment of emacsclient
invocation.
- you can check the `environment` parameter of the selected frame
(probably not very useful).
emacsclient --display :0 \
--eval "(frame-parameter (selected-frame) 'environment)"
nil
- You can check the `env` parameter (with `process-get`) of the proc
object that represents (on Emacs's side) the emacsclient connection.
For that you'll need to get access to this proc object, but I don't
know offhand how to.
I am unsure that -display argument is added to the `env` parameter. I do
not like the following approach since I am afraid of races. Anyway it
does not work
emacsclient --eval "(process-get (car server-clients) 'env)"
So I have no idea how to access `proc` passed to a process filter as well.
Though it does not answer to the question how to get DISPLAY, the
following is at least a workaround:
DISPLAY= emacs -q --daemon
emacsclient --display "$DISPLAY" \
--eval "(require 'org)" \
--eval "(org-get-x-clipboard 'PRIMARY)"
- How to get DISPLAY of emacsclient?, Max Nikulin, 2022/11/25
- Re: How to get DISPLAY of emacsclient?, Stefan Monnier, 2022/11/25
- Re: How to get DISPLAY of emacsclient?,
Max Nikulin <=
- Re: How to get DISPLAY of emacsclient?, chad, 2022/11/26
- Re: How to get DISPLAY of emacsclient?, Max Nikulin, 2022/11/27
- Re: How to get DISPLAY of emacsclient?, Gregory Heytings, 2022/11/27
- Re: How to get DISPLAY of emacsclient?, Max Nikulin, 2022/11/27
- Re: How to get DISPLAY of emacsclient?, Gregory Heytings, 2022/11/27
- Re: How to get DISPLAY of emacsclient?, Max Nikulin, 2022/11/27
- Re: How to get DISPLAY of emacsclient?, Gregory Heytings, 2022/11/27
- Re: How to get DISPLAY of emacsclient?, Po Lu, 2022/11/27
- Re: How to get DISPLAY of emacsclient?, Jim Porter, 2022/11/27
- Re: How to get DISPLAY of emacsclient?, Max Nikulin, 2022/11/28