From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Gregory Heytings Newsgroups: gmane.emacs.devel Subject: Re: How to get DISPLAY of emacsclient? Date: Mon, 28 Nov 2022 17:15:28 +0000 Message-ID: <338f50d42149668a6b3a@heytings.org> References: <973588ef-d931-47a0-66d3-f8d70d92bd57@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; format=flowed; charset=us-ascii Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19199"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Max Nikulin Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Nov 28 18:16:26 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozhk1-0004lS-OS for ged-emacs-devel@m.gmane-mx.org; Mon, 28 Nov 2022 18:16:25 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ozhjQ-00018l-Ow; Mon, 28 Nov 2022 12:15:48 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ozhjB-000154-HY for emacs-devel@gnu.org; Mon, 28 Nov 2022 12:15:46 -0500 Original-Received: from heytings.org ([95.142.160.155]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ozhj8-000310-KZ for emacs-devel@gnu.org; Mon, 28 Nov 2022 12:15:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=heytings.org; s=20220101; t=1669655728; bh=CBRtEttHo9ifEqWtyhUevhesLPd/mVexavOVSMlLUDk=; h=Date:From:To:cc:Subject:In-Reply-To:Message-ID:References:From; b=ulZNVH8jlWdAnH93elq0ioYMdSPs88MBmIPnpwBR3qUuyXcRozWre1kjdP8sodx60 s1hYiuaPUTPaiICYeT7sfk9vJNw78TLcYTBnXIk9rHiZNOzIHcZnQZOdVQABdcY5/7 v7HPJA4J7nO8Fn172hFowOSGYS8vs3wzYFjgd40NCTT9QBYyMY/9GSQCBOZhIUMyMS zUnT8uPKZPZJjUDMLOEc1XP0wIFTtynLpwB++V7CkzW+m5pmrPk1qpSYzAMX2V1wp6 TsO89Mz9Snd6O3O2OHEKnsgKb+8OQQC59geyRdF4j73SZywy7iL8/EU+Eyeo3qiucn /PLNCHjj7iOxg== In-Reply-To: Received-SPF: pass client-ip=95.142.160.155; envelope-from=gregory@heytings.org; helo=heytings.org X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:300675 Archived-At: > > I was seeking a way to avoid creation a visible frame and to call a > function that does not work without X connection. > > So I should thank Jim again for drawing my attention why the effect of > the --display option is stronger than for the DISPLAY environment. This > option indirectly solves the problem. > I still think this is an ill-posed problem, so here are a few additional thoughs, in case you find them useful. There are at least three cases: 1. "emacsclient --eval '(+ 1 1)'" does NOT use a display: it is evaluated in the server process. You can use '(getenv DISPLAY)' there, but it will not return any useful information, it will return the value of DISPLAY that was current when the Emacs daemon was created. 2. "emacsclient -c", which creates a frame on the display specified in the environment variable DISPLAY (if DISPLAY is unset, "emacsclient -c" is equivalent to "emacsclient -nw"). 3. "emacsclient --display -c", which creates a frame on the specified display ; it is equivalent to "env DISPLAY= emacsclient -c". If you want to know the value if the environment variable DISPLAY in case 1, the best way to do that is to explicitly include "$DISPLAY" in the form you evaluate, e.g. like this: emacsclient --eval '(progn (setq display "'$DISPLAY'") (princ display))'