help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: starting up with two frames on different monitors in Mac OS X


From: Gilbert Harman
Subject: Re: starting up with two frames on different monitors in Mac OS X
Date: Thu, 15 Jul 2004 21:58:40 -0400
User-agent: Microsoft-Entourage/11.0.0.040405

Dear Mike,

Thanks.  I had to modify your idea, because on my set-up (frame-parameters)
always gives the same results no matter where I drag a frame.  Furthermore I
can't get (make-frame ...) to make a frame in the other display.  But your
suggestion did set me on the right track (or a right track).

 I was able to get things set up by using the right monitor as the main
display, so that frames would appear there by default, but I used trial and
error to get appropriate values for the initial-frame-alist to get the
initial frame on the left monitor.  In my case I used:

(add-to-list
 'initial-frame-alist '(height . 40))
(add-to-list
 'initial-frame-alist '(top . 160))
(add-to-list
 'initial-frame-alist '(left . -1550))

(I tried '(left + -1550) but that didn't work.)  Then I simply added
(make-frame) at the end of my emacs to get the second frame on the right
monitor using the default dimensions (with greater height).

 Gil


> Michael Slass <address@hidden> writes:
> 
> Replying to my own post --- small change in step (4), so the output
> goes right into the *scratch* buffer
> 
> 
>> Gilbert Harman <address@hidden> writes:
>> 
>>> What can I put in my .emacs so that emacs will start up with two frames, one
>>> on each of my monitors.  I am using Gnu Emacs 21.3.50.1 in Mac OS 10.3.4.
>>> 
>>> Thanks in advance for any help on this.
>> ......
> Professor Harman:
> 
> I think this recipe will do:
> 
> 1) start emacs with no filename, so you'll visit the *scratch* buffer
> 2) resize the frame on the first monitor to the size you want
> 3) enter (frame-parameters) in the *scratch* buffer
> 4) evaluate the form: place the cursor after the closing paren, and
>      type C-j
> 5) in the resulting alist, there will be cells that show where the top
>    and left corners of the frame are: (top . 10) ... (left . 0)
>    copy those cells for later use; we'll call them init-top and init-left
> 6) Drag the frame to your other monitor, and resize it to the shape
>    you'd like it to start with.
> 7) repeat steps 4 and 5; we'll call these cells second-top and
>    second-left.  NB: if the second frame is to the left of the first,
>    these cells may have a negative number, and + instead of a .
> 
> 8) add to your .emacs (replacing <bracketed-names> with the cells
>    gathered above):
> 
> [near the top of .emacs]:
> 
> (mapcar
>  (lambda (property-cons)
>    (assq-delete-all (car property-cons) default-frame-alist)
>    (add-to-list 'default-frame-alist property-cons))
>  '(<init-top> <init-left>))
> 
>  
>  [near the bottom of .emacs]:
>  
>  (make-frame '(<second-top> <second-left>))
> 
> 
> On my machine, I get something like this
> 
> 
>  (mapcar
>  (lambda (property-cons)
>    (assq-delete-all (car property-cons) default-frame-alist)
>    (add-to-list 'default-frame-alist property-cons))
>  '((top . 1) (left . 1)))
> 
> 
> 
> (make-frame '((top + -73) (left + -1282)))
> 
> 
> Best regards, and don't hesitate to contact me if you have any
> problems.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]