From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eric Hanchrow Newsgroups: gmane.emacs.help Subject: Re: check whether emacs session is running under local X server Date: Wed, 27 Sep 2006 15:39:09 -0700 Message-ID: <87u02t3pf6.fsf@offby1.atm01.sea.blarg.net> References: NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1159397629 32036 80.91.229.2 (27 Sep 2006 22:53:49 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 27 Sep 2006 22:53:49 +0000 (UTC) Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Thu Sep 28 00:53:45 2006 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1GSiHh-0005mW-76 for geh-help-gnu-emacs@m.gmane.org; Thu, 28 Sep 2006 00:53:45 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1GSiHg-0004Qy-NE for geh-help-gnu-emacs@m.gmane.org; Wed, 27 Sep 2006 18:53:44 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1GSiHV-0004Qq-6w for help-gnu-emacs@gnu.org; Wed, 27 Sep 2006 18:53:33 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1GSiHS-0004Pw-Lt for help-gnu-emacs@gnu.org; Wed, 27 Sep 2006 18:53:32 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1GSiHS-0004Pt-IR for help-gnu-emacs@gnu.org; Wed, 27 Sep 2006 18:53:30 -0400 Original-Received: from [80.91.229.2] (helo=ciao.gmane.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA:32) (Exim 4.52) id 1GSiMP-0002Ve-HB for help-gnu-emacs@gnu.org; Wed, 27 Sep 2006 18:58:37 -0400 Original-Received: from list by ciao.gmane.org with local (Exim 4.43) id 1GSiHI-0005j3-Ax for help-gnu-emacs@gnu.org; Thu, 28 Sep 2006 00:53:20 +0200 Original-Received: from q-static-138-125.avvanta.com ([206.124.138.125]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 28 Sep 2006 00:53:20 +0200 Original-Received: from offby1 by q-static-138-125.avvanta.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 28 Sep 2006 00:53:20 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-To: help-gnu-emacs@gnu.org Original-Lines: 44 Original-X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: q-static-138-125.avvanta.com User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) Cancel-Lock: sha1:MI08YaqlCw9alerv4WtZ97P45Wc= X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:37686 Archived-At: >>>>> "Roland" == Roland Winkler writes: Roland> In my .emacs I would like to distinguish between an emacs Roland> session running under the local X server and an emacs Roland> session running under a remote X server. I expect that Roland> the $DISPLAY variable can do the job. But I am not Roland> familiar with the details. (Once upon a time I set Roland> $DISPLAY manually. Nowadays I use ssh which handles Roland> $DISPLAY for me, but I do not understand the scheme it Roland> uses.) I don't think there's a 100% foolproof way, but here's how I do it: (Isn't this awful?) (let ((x-running-locally (and (boundp 'window-system) (or (eq (assoc-default 'window-system (frame-parameters current-frame)) 'x) (and (assq 'font (frame-parameters current-frame)) (assq 'display (frame-parameters current-frame)))) (getenv "DISPLAY") (let ((display-data (split-string (getenv "DISPLAY") ":"))) (if (= 1 (length display-data)) ; e.g. ("0") ;; e.g. ("offby1" "0") (setq display-data (cons (car (split-string (system-name) "\\.")) display-data)) (let* ((display-host (nth 0 display-data)) (display-number (car (read-from-string (nth 1 display-data))))) ;; display numbers >=10 imply we're using SSH from a remote ;; machine (and (< display-number 10) ;; (string-equal (downcase (car (split-string display-host "\\."))) ;; (downcase (car (split-string (system-name)"\\.")))) )))))) )) -- When it comes to electronic voting, most liberals are just plain old-fashioned nuts. -- Joe Andrew, former chairman of the Democratic National Committee