unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* customizing emacs windows
@ 2007-05-23 17:04 Ivan
  2007-05-23 22:24 ` Lennart Borgman (gmail)
  2007-05-24  0:28 ` Lennart Borgman (gmail)
  0 siblings, 2 replies; 25+ messages in thread
From: Ivan @ 2007-05-23 17:04 UTC (permalink / raw)
  To: help-gnu-emacs

Hi,

How can I customize Emacs so that my windows customization is
persisted (so that the customization is put in the .emacs file)? I'd
like to divide my Emacs frame to several windows with particular sizes
and to set-up some of the windows open particular buffers. Generally
I'd like to do somthing like ECB, but not exactly that.

Thanks,

-- 
Ivan

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-23 17:04 customizing emacs windows Ivan
@ 2007-05-23 22:24 ` Lennart Borgman (gmail)
  2007-05-24  7:32   ` Eli Zaretskii
       [not found]   ` <mailman.1130.1179991947.32220.help-gnu-emacs@gnu.org>
  2007-05-24  0:28 ` Lennart Borgman (gmail)
  1 sibling, 2 replies; 25+ messages in thread
From: Lennart Borgman (gmail) @ 2007-05-23 22:24 UTC (permalink / raw)
  To: Ivan; +Cc: help-gnu-emacs

Ivan wrote:
> Hi,
> 
> How can I customize Emacs so that my windows customization is
> persisted (so that the customization is put in the .emacs file)? I'd
> like to divide my Emacs frame to several windows with particular sizes
> and to set-up some of the windows open particular buffers. Generally
> I'd like to do somthing like ECB, but not exactly that.

You can try winsav.el from here

   http://ourcomments.org/Emacs/DL/elisp/

It currently does not do what you want. The parts save/restore from file 
are not finished, but I did begin writing them. Maybe someone wants to 
finish that part?

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-23 17:04 customizing emacs windows Ivan
  2007-05-23 22:24 ` Lennart Borgman (gmail)
@ 2007-05-24  0:28 ` Lennart Borgman (gmail)
  1 sibling, 0 replies; 25+ messages in thread
From: Lennart Borgman (gmail) @ 2007-05-24  0:28 UTC (permalink / raw)
  To: Ivan; +Cc: help-gnu-emacs

Ivan wrote:
> Hi,
> 
> How can I customize Emacs so that my windows customization is
> persisted (so that the customization is put in the .emacs file)? I'd
> like to divide my Emacs frame to several windows with particular sizes
> and to set-up some of the windows open particular buffers. Generally
> I'd like to do somthing like ECB, but not exactly that.
> 
> Thanks,

I fixed winsav.el so that it should work for save/restore window config 
to/from files.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-23 22:24 ` Lennart Borgman (gmail)
@ 2007-05-24  7:32   ` Eli Zaretskii
  2007-05-24 10:06     ` Lennart Borgman (gmail)
       [not found]   ` <mailman.1130.1179991947.32220.help-gnu-emacs@gnu.org>
  1 sibling, 1 reply; 25+ messages in thread
From: Eli Zaretskii @ 2007-05-24  7:32 UTC (permalink / raw)
  To: help-gnu-emacs

> Date: Thu, 24 May 2007 00:24:23 +0200
> From: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
> Cc: help-gnu-emacs@gnu.org
> 
> > How can I customize Emacs so that my windows customization is
> > persisted (so that the customization is put in the .emacs file)? I'd
> > like to divide my Emacs frame to several windows with particular sizes
> > and to set-up some of the windows open particular buffers. Generally
> > I'd like to do somthing like ECB, but not exactly that.
> 
> You can try winsav.el from here
> 
>    http://ourcomments.org/Emacs/DL/elisp/

Rather than introduce a new and unbundled package, isn't it better to
enhance the bundled winner.el?

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
       [not found]   ` <mailman.1130.1179991947.32220.help-gnu-emacs@gnu.org>
@ 2007-05-24  9:41     ` Ivan
  2007-05-24 10:00       ` Jason Rumney
  2007-05-25  5:13       ` Tim X
  0 siblings, 2 replies; 25+ messages in thread
From: Ivan @ 2007-05-24  9:41 UTC (permalink / raw)
  To: help-gnu-emacs

On четвъртък, Май 24 2007, Eli Zaretskii wrote:

>> Date: Thu, 24 May 2007 00:24:23 +0200
>> From: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
>> Cc: help-gnu-emacs@gnu.org
>> 
>> > How can I customize Emacs so that my windows customization is
>> > persisted (so that the customization is put in the .emacs file)? I'd
>> > like to divide my Emacs frame to several windows with particular sizes
>> > and to set-up some of the windows open particular buffers. Generally
>> > I'd like to do somthing like ECB, but not exactly that.
>> 
>> You can try winsav.el from here
>> 
>>    http://ourcomments.org/Emacs/DL/elisp/

Thanks but, I refuse to beleive that the functionality I'm loooking
for does not exist in Emacs.

> Rather than introduce a new and unbundled package, isn't it better
> to enhance the bundled winner.el?

I read about winner-mode but I don't understand how to use it.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-24  9:41     ` Ivan
@ 2007-05-24 10:00       ` Jason Rumney
  2007-05-24 11:06         ` Lennart Borgman (gmail)
  2007-05-25  5:13       ` Tim X
  1 sibling, 1 reply; 25+ messages in thread
From: Jason Rumney @ 2007-05-24 10:00 UTC (permalink / raw)
  To: help-gnu-emacs


> > Rather than introduce a new and unbundled package, isn't it better
> > to enhance the bundled winner.el?
>
> I read about winner-mode but I don't understand how to use it.

`winner' does not save its state across sessions, but it does keep
track of the window-configuration, which will help.  `desktop' keeps
track of which files are loaded across sessions, but does not deal
with window configuration (yet). Some combination of the two seems to
be what you want.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-24  7:32   ` Eli Zaretskii
@ 2007-05-24 10:06     ` Lennart Borgman (gmail)
  2007-05-24 10:49       ` Eli Zaretskii
  0 siblings, 1 reply; 25+ messages in thread
From: Lennart Borgman (gmail) @ 2007-05-24 10:06 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs

Eli Zaretskii wrote:
>> Date: Thu, 24 May 2007 00:24:23 +0200
>> From: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
>> Cc: help-gnu-emacs@gnu.org
>>
>>> How can I customize Emacs so that my windows customization is
>>> persisted (so that the customization is put in the .emacs file)? I'd
>>> like to divide my Emacs frame to several windows with particular sizes
>>> and to set-up some of the windows open particular buffers. Generally
>>> I'd like to do somthing like ECB, but not exactly that.
>> You can try winsav.el from here
>>
>>    http://ourcomments.org/Emacs/DL/elisp/
> 
> Rather than introduce a new and unbundled package, isn't it better to
> enhance the bundled winner.el?


Maybe, I do not know. I do not think winner.el was mentioned when we 
discussed this before.

After a quick look it seems to me they are not doing the same thing. 
winner.el looks more for redoing/undoing window configuration 
interactively (a nice thing).

winsav.el was written to save window configurations and inject them in 
frames or windows.

It looks like winner.el and winsav.el complement each other.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-24 10:06     ` Lennart Borgman (gmail)
@ 2007-05-24 10:49       ` Eli Zaretskii
  2007-05-24 11:22         ` Lennart Borgman (gmail)
  0 siblings, 1 reply; 25+ messages in thread
From: Eli Zaretskii @ 2007-05-24 10:49 UTC (permalink / raw)
  To: help-gnu-emacs

> Date: Thu, 24 May 2007 12:06:41 +0200
> From: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
> CC:  help-gnu-emacs@gnu.org
> 
> It looks like winner.el and winsav.el complement each other.

To me it looks like saving the window configuration to a file is a
natural extension of a package that lets you save and restore window
configuration during a single session.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-24 10:00       ` Jason Rumney
@ 2007-05-24 11:06         ` Lennart Borgman (gmail)
  0 siblings, 0 replies; 25+ messages in thread
From: Lennart Borgman (gmail) @ 2007-05-24 11:06 UTC (permalink / raw)
  To: Jason Rumney; +Cc: help-gnu-emacs

Jason Rumney wrote:
>>> Rather than introduce a new and unbundled package, isn't it better
>>> to enhance the bundled winner.el?
>> I read about winner-mode but I don't understand how to use it.
> 
> `winner' does not save its state across sessions, but it does keep
> track of the window-configuration, which will help.  `desktop' keeps
> track of which files are loaded across sessions, but does not deal
> with window configuration (yet). Some combination of the two seems to
> be what you want.


I looks to me it will be difficult to achieve what Ivan wants with that, 
but I might be misunderstanding him.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-24 10:49       ` Eli Zaretskii
@ 2007-05-24 11:22         ` Lennart Borgman (gmail)
  2007-05-24 13:21           ` Eli Zaretskii
  0 siblings, 1 reply; 25+ messages in thread
From: Lennart Borgman (gmail) @ 2007-05-24 11:22 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs

Eli Zaretskii wrote:
>> Date: Thu, 24 May 2007 12:06:41 +0200
>> From: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
>> CC:  help-gnu-emacs@gnu.org
>>
>> It looks like winner.el and winsav.el complement each other.
> 
> To me it looks like saving the window configuration to a file is a
> natural extension of a package that lets you save and restore window
> configuration during a single session.


Absolutely, from a logical point of view. Maybe also from a code point 
of view, but I doubt that a bit in this case. The data structures that 
winner.el is using is perhaps not feasable for save/restore, but maybe 
you think differently?

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-24 11:22         ` Lennart Borgman (gmail)
@ 2007-05-24 13:21           ` Eli Zaretskii
  2007-05-24 13:55             ` Lennart Borgman (gmail)
  0 siblings, 1 reply; 25+ messages in thread
From: Eli Zaretskii @ 2007-05-24 13:21 UTC (permalink / raw)
  To: help-gnu-emacs

> Date: Thu, 24 May 2007 13:22:59 +0200
> From: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
> CC:  help-gnu-emacs@gnu.org
> 
> Eli Zaretskii wrote:
> >> Date: Thu, 24 May 2007 12:06:41 +0200
> >> From: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
> >> CC:  help-gnu-emacs@gnu.org
> >>
> >> It looks like winner.el and winsav.el complement each other.
> > 
> > To me it looks like saving the window configuration to a file is a
> > natural extension of a package that lets you save and restore window
> > configuration during a single session.
> 
> 
> Absolutely, from a logical point of view. Maybe also from a code point 
> of view, but I doubt that a bit in this case. The data structures that 
> winner.el is using is perhaps not feasable for save/restore, but maybe 
> you think differently?

Lisp data structures are easily converted into plain text, and then a
buffer which holds that text can be saved to a disk file.  To restore,
you need only invoke the Lisp reader on the saved text.  How difficult
can that be?  There are already quite a few packages that do similar
things, like saveplace, for example.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-24 13:21           ` Eli Zaretskii
@ 2007-05-24 13:55             ` Lennart Borgman (gmail)
  2007-05-24 14:21               ` Eli Zaretskii
  0 siblings, 1 reply; 25+ messages in thread
From: Lennart Borgman (gmail) @ 2007-05-24 13:55 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs

Eli Zaretskii wrote:
>> Date: Thu, 24 May 2007 13:22:59 +0200
>> From: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
>> CC:  help-gnu-emacs@gnu.org
>>
>> Eli Zaretskii wrote:
>>>> Date: Thu, 24 May 2007 12:06:41 +0200
>>>> From: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
>>>> CC:  help-gnu-emacs@gnu.org
>>>>
>>>> It looks like winner.el and winsav.el complement each other.
>>> To me it looks like saving the window configuration to a file is a
>>> natural extension of a package that lets you save and restore window
>>> configuration during a single session.
>>
>> Absolutely, from a logical point of view. Maybe also from a code point 
>> of view, but I doubt that a bit in this case. The data structures that 
>> winner.el is using is perhaps not feasable for save/restore, but maybe 
>> you think differently?
> 
> Lisp data structures are easily converted into plain text, and then a
> buffer which holds that text can be saved to a disk file.  To restore,
> you need only invoke the Lisp reader on the saved text.  How difficult
> can that be?  There are already quite a few packages that do similar
> things, like saveplace, for example.


That is not exactly what I meant. I meant if the data structures 
contains information that are useful for save/restore.

But I did not look close at it. The data structures in winner.el may be 
that too. I took a look at winner-currents and maybe that contains the 
information needed.

However I do not know if there is a way to save it. It contains the 
information needed in something that looks like #<window-configuration> 
when trying to print it. Is there a way to print this so that it can be 
saved?

BTW, winsav.el has a little bit different focus, solving a problem that 
I could not find a way to solve easily: Injection of a window 
configuration into a window. The ability to save and restore window 
configuration on a frame is just a byproduct.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-24 13:55             ` Lennart Borgman (gmail)
@ 2007-05-24 14:21               ` Eli Zaretskii
  2007-05-24 19:29                 ` Lennart Borgman (gmail)
  0 siblings, 1 reply; 25+ messages in thread
From: Eli Zaretskii @ 2007-05-24 14:21 UTC (permalink / raw)
  To: help-gnu-emacs

> Date: Thu, 24 May 2007 15:55:24 +0200
> From: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
> CC:  help-gnu-emacs@gnu.org
> 
> However I do not know if there is a way to save it. It contains the 
> information needed in something that looks like #<window-configuration> 
> when trying to print it. Is there a way to print this so that it can be 
> saved?

winner.el uses functions from ring.el to maintain its info.  The
various print functions are your friends.  Reading those hashed
objects might be a little tricky, but you could perhaps use the
technique similar to desktop.el to output, instead of the objects,
function calls that create the objects.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-24 14:21               ` Eli Zaretskii
@ 2007-05-24 19:29                 ` Lennart Borgman (gmail)
  0 siblings, 0 replies; 25+ messages in thread
From: Lennart Borgman (gmail) @ 2007-05-24 19:29 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs

Eli Zaretskii wrote:
>> Date: Thu, 24 May 2007 15:55:24 +0200
>> From: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
>> CC:  help-gnu-emacs@gnu.org
>>
>> However I do not know if there is a way to save it. It contains the 
>> information needed in something that looks like #<window-configuration> 
>> when trying to print it. Is there a way to print this so that it can be 
>> saved?
> 
> winner.el uses functions from ring.el to maintain its info.  The
> various print functions are your friends.  Reading those hashed
> objects might be a little tricky, but you could perhaps use the
> technique similar to desktop.el to output, instead of the objects,
> function calls that create the objects.


I think it is only you get back from (current-window-configuration) that 
holds the information that winner.el uses to restore the windows. 
Everything is there so winner.el does not have to do very much.

Unfortunately you can not investigate the value of this and it prints 
just as #<window-configuration>. I think I remember now that we (I do 
not know if you were involved) discussed this on the devel list.

Because of this I use (window-tree) instead which gives the necessary 
window structure information.

For now I can not see any other way to save the window configuration 
than something similar to what I have done in winsav.el.

It is however complicated to do this on the lisp level (as in 
winsav.el), the window layout is probably more easier handled on the C 
level, like in set-window-configuration. So for a long term solution I 
would think it is much better to enhance the printed representation of 
the value of (current-window-configuration) so that it could be used 
together with (set-window-configuration) for save/restore from file. A 
bit more than the printed representation must be added of course, but I 
guess that is clear.

Eli, I would be glad if you put this in etc/TODO. I think that at the 
splitting of the top level in window tree is also a matter to consider 
there. (That this can not be done was the main reason for writing 
winsav.el.)

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-24  9:41     ` Ivan
  2007-05-24 10:00       ` Jason Rumney
@ 2007-05-25  5:13       ` Tim X
  2007-05-25 10:09         ` Ivan
  1 sibling, 1 reply; 25+ messages in thread
From: Tim X @ 2007-05-25  5:13 UTC (permalink / raw)
  To: help-gnu-emacs

Ivan <ivanushka@yahoo.com> writes:

> On четвъртък, Май 24 2007, Eli Zaretskii wrote:
>
>>> Date: Thu, 24 May 2007 00:24:23 +0200
>>> From: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
>>> Cc: help-gnu-emacs@gnu.org
>>> 
>>> > How can I customize Emacs so that my windows customization is
>>> > persisted (so that the customization is put in the .emacs file)? I'd
>>> > like to divide my Emacs frame to several windows with particular sizes
>>> > and to set-up some of the windows open particular buffers. Generally
>>> > I'd like to do somthing like ECB, but not exactly that.
>>> 
>>> You can try winsav.el from here
>>> 
>>>    http://ourcomments.org/Emacs/DL/elisp/
>
> Thanks but, I refuse to beleive that the functionality I'm loooking
> for does not exist in Emacs.
>
>> Rather than introduce a new and unbundled package, isn't it better
>> to enhance the bundled winner.el?
>
> I read about winner-mode but I don't understand how to use it.

AFAIK and understand what you are requesting, the functionality you want does
not exist 'out of the box'. All the low level functionality exists, but not all
put together in a nice high level package for end users. There are a number of
such packages available which may or may not meet your needs, but as far as I
know, none of them are yet bundled with emacs. 

Tim

-- 
tcross (at) rapttech dot com dot au

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-25  5:13       ` Tim X
@ 2007-05-25 10:09         ` Ivan
  2007-05-25 11:02           ` Ivan
  0 siblings, 1 reply; 25+ messages in thread
From: Ivan @ 2007-05-25 10:09 UTC (permalink / raw)
  To: help-gnu-emacs

On петък, Май 25 2007, Tim X wrote:

> Ivan <ivanushka@yahoo.com> writes:
>
>> On четвъртък, Май 24 2007, Eli Zaretskii wrote:
>>
>>>> Date: Thu, 24 May 2007 00:24:23 +0200
>>>> From: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
>>>> Cc: help-gnu-emacs@gnu.org
>>>> 
>>>> > How can I customize Emacs so that my windows customization is
>>>> > persisted (so that the customization is put in the .emacs
>>>> > file)? I'd like to divide my Emacs frame to several windows
>>>> > with particular sizes and to set-up some of the windows open
>>>> > particular buffers. Generally I'd like to do somthing like ECB,
>>>> > but not exactly that.
>>>> 
>>>> You can try winsav.el from here
>>>> 
>>>>    http://ourcomments.org/Emacs/DL/elisp/
>>
>> Thanks but, I refuse to beleive that the functionality I'm loooking
>> for does not exist in Emacs.
>>
>>> Rather than introduce a new and unbundled package, isn't it better
>>> to enhance the bundled winner.el?
>>
>> I read about winner-mode but I don't understand how to use it.
>
> AFAIK and understand what you are requesting, the functionality you
> want does not exist 'out of the box'. All the low level
> functionality exists, but not all put together in a nice high level
> package for end users. There are a number of such packages available
> which may or may not meet your needs, but as far as I know, none of
> them are yet bundled with emacs.

First, thanks for your messages. Sorry if I wasn't quite clear in my
request. I almost managed to achieve what I needed with simple
Emacs-commands. I defined a function in .emacs that opens buffers and
splits windows and I called that function on Emacs start. I used
commands such as split-window-vertically, find-file, other-window and
so on. It is not perfect because I have problems controlling which
window which buffer to display as one of the things I start is - run
Slime and Slime does some strange things with the windows. I also have
problems controlling windows's sizes. 

My requirements are very simple for now - I need the Emacs frame
devided into several windows with particular sizes. Each window should
display a particular buffer.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-25 10:09         ` Ivan
@ 2007-05-25 11:02           ` Ivan
  2007-05-26  3:29             ` Tim X
  0 siblings, 1 reply; 25+ messages in thread
From: Ivan @ 2007-05-25 11:02 UTC (permalink / raw)
  To: help-gnu-emacs

On петък, Май 25 2007, Ivan wrote:

> First, thanks for your messages. Sorry if I wasn't quite clear in my
> request. I almost managed to achieve what I needed with simple
> Emacs-commands. I defined a function in .emacs that opens buffers and
> splits windows and I called that function on Emacs start. I used
> commands such as split-window-vertically, find-file, other-window and
> so on. It is not perfect because I have problems controlling which
> window which buffer to display as one of the things I start is - run
> Slime and Slime does some strange things with the windows. I also have
> problems controlling windows's sizes. 
>
> My requirements are very simple for now - I need the Emacs frame
> devided into several windows with particular sizes. Each window should
> display a particular buffer.

As a matter of fact what I'm trying to do is make Emacs provide an
integrated development environment for Lisp development like
Eclispe. I need several buffers:
1. REPL
2. Log output buffer
3. Project's source files tree
4. Web browser

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-25 11:02           ` Ivan
@ 2007-05-26  3:29             ` Tim X
  2007-05-26  9:02               ` Ivan
  2007-05-26 10:18               ` Petter Gustad
  0 siblings, 2 replies; 25+ messages in thread
From: Tim X @ 2007-05-26  3:29 UTC (permalink / raw)
  To: help-gnu-emacs

Ivan <ivanushka@yahoo.com> writes:

> On петък, Май 25 2007, Ivan wrote:
>
>> First, thanks for your messages. Sorry if I wasn't quite clear in my
>> request. I almost managed to achieve what I needed with simple
>> Emacs-commands. I defined a function in .emacs that opens buffers and
>> splits windows and I called that function on Emacs start. I used
>> commands such as split-window-vertically, find-file, other-window and
>> so on. It is not perfect because I have problems controlling which
>> window which buffer to display as one of the things I start is - run
>> Slime and Slime does some strange things with the windows. I also have
>> problems controlling windows's sizes. 
>>
>> My requirements are very simple for now - I need the Emacs frame
>> devided into several windows with particular sizes. Each window should
>> display a particular buffer.
>
> As a matter of fact what I'm trying to do is make Emacs provide an
> integrated development environment for Lisp development like
> Eclispe. I need several buffers:
> 1. REPL
> 2. Log output buffer
> 3. Project's source files tree
> 4. Web browser

Something which may provide some ideas or some code you could borrow is the
emacs window manager. I think it may be mentioned on the emacs wiki site
(http://emacswiki.org) and at one time, I think there was a Debian package for
it. 

>From memory, it only works for XEmacs, but it may have some code or ideas you
could use to create the function you want. 

Another possibility depends on your window manager. I use Sawfish, which is a
light weight window manager written in 'rep', which is essentially a lisp
dialect. However, it has support for window groups, named desktops etc and the
ability to send specific windows to specific workspaces and positions. It would
probably be possible to use a combination of emacs and rep to control frame
placement and some emacs functions to divide up the frames according to how you
want them. 

When using slime, I open three frames, send them to different workspaces and
have a function key defined to switch between the frames. In one frame I have a
buffer witht he source code in it, in another frame, I have the slime REPL and
log window and in the third frame, I have w3m. I've thought about automating
the whole process, but to be honest, haven't bothered because I restart emacs
so rarely that its not really been necessary. I usually have about 15 different
workspaces and different emacs frames on most of them. I then just switch
between workspaces using two function keys or by moving the mouse to the left
or right edge of the screen. 

A package able to open frames, divide them up into windows, associate specific
buffers with the windows and distribute the frames over specific workspaces
would be very handy. The ability to define 'groups' of such would be even more
useful than just the ability to save your config on exit and restore it. 

Tim




-- 
tcross (at) rapttech dot com dot au

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-26  3:29             ` Tim X
@ 2007-05-26  9:02               ` Ivan
  2007-05-26  9:45                 ` Leo
                                   ` (3 more replies)
  2007-05-26 10:18               ` Petter Gustad
  1 sibling, 4 replies; 25+ messages in thread
From: Ivan @ 2007-05-26  9:02 UTC (permalink / raw)
  To: help-gnu-emacs

On събота, Май 26 2007, Tim X wrote:

> Ivan <ivanushka@yahoo.com> writes:
>
>> On петък, Май 25 2007, Ivan wrote:
>>
>>> First, thanks for your messages. Sorry if I wasn't quite clear in my
>>> request. I almost managed to achieve what I needed with simple
>>> Emacs-commands. I defined a function in .emacs that opens buffers and
>>> splits windows and I called that function on Emacs start. I used
>>> commands such as split-window-vertically, find-file, other-window and
>>> so on. It is not perfect because I have problems controlling which
>>> window which buffer to display as one of the things I start is - run
>>> Slime and Slime does some strange things with the windows. I also have
>>> problems controlling windows's sizes. 
>>>
>>> My requirements are very simple for now - I need the Emacs frame
>>> devided into several windows with particular sizes. Each window should
>>> display a particular buffer.
>>
>> As a matter of fact what I'm trying to do is make Emacs provide an
>> integrated development environment for Lisp development like
>> Eclispe. I need several buffers:
>> 1. REPL
>> 2. Log output buffer
>> 3. Project's source files tree
>> 4. Web browser
>
> Something which may provide some ideas or some code you could borrow is the
> emacs window manager. I think it may be mentioned on the emacs wiki site
> (http://emacswiki.org) and at one time, I think there was a Debian package for
> it. 

I found this while looking it up:

http://www.emacswiki.org/cgi-bin/wiki/XWindowEmacsManager

> From memory, it only works for XEmacs, but it may have some code or ideas you
> could use to create the function you want. 
>
> Another possibility depends on your window manager. I use Sawfish, which is a
> light weight window manager written in 'rep', which is essentially a lisp
> dialect. However, it has support for window groups, named desktops etc and the
> ability to send specific windows to specific workspaces and positions. It would
> probably be possible to use a combination of emacs and rep to control frame
> placement and some emacs functions to divide up the frames according to how you
> want them. 

I use Windows on my desktop. Other times I only have a console.

> When using slime, I open three frames, send them to different workspaces and
> have a function key defined to switch between the frames. In one frame I have a
> buffer witht he source code in it, in another frame, I have the slime REPL and
> log window and in the third frame, I have w3m. I've thought about automating
> the whole process, but to be honest, haven't bothered because I restart emacs
> so rarely that its not really been necessary. I usually have about 15 different
> workspaces and different emacs frames on most of them. I then just switch
> between workspaces using two function keys or by moving the mouse to the left
> or right edge of the screen. 

My target is one Emacs frame divided into several windows just like in
Eclipse. In tune with the Emacs ideology the active window should be
controled with a kbd shortcut and not only with the mouse.

Switching workspaces is tiring for the eyes. A contemporary display
should be enough for a window representing an IDE.

> A package able to open frames, divide them up into windows, associate specific
> buffers with the windows and distribute the frames over specific workspaces
> would be very handy. The ability to define 'groups' of such would be even more
> useful than just the ability to save your config on exit and restore it. 

I'd rather have buffer - window association and control over windows's
size and position. Currently even if we manage to set this up, many
functions (for example describe) open windows within Emacs and on
closing them the set-up is broken.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-26  9:02               ` Ivan
@ 2007-05-26  9:45                 ` Leo
  2007-05-26 10:12                 ` Peter Dyballa
                                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 25+ messages in thread
From: Leo @ 2007-05-26  9:45 UTC (permalink / raw)
  To: help-gnu-emacs

----- Ivan (2007-05-26) wrote:-----

> My target is one Emacs frame divided into several windows just like in
> Eclipse. In tune with the Emacs ideology the active window should be
> controled with a kbd shortcut and not only with the mouse.
>
> Switching workspaces is tiring for the eyes. A contemporary display
> should be enough for a window representing an IDE.

It seems ECB¹ is what you want.


Footnotes: 
¹  http://ecb.sourceforge.net/screenshots/1.png
-- 
Leo <sdl.web AT gmail.com>                         (GPG Key: 9283AA3F)

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-26  9:02               ` Ivan
  2007-05-26  9:45                 ` Leo
@ 2007-05-26 10:12                 ` Peter Dyballa
       [not found]                 ` <mailman.1273.1180174364.32220.help-gnu-emacs@gnu.org>
       [not found]                 ` <mailman.1268.1180172850.32220.help-gnu-emacs@gnu.org>
  3 siblings, 0 replies; 25+ messages in thread
From: Peter Dyballa @ 2007-05-26 10:12 UTC (permalink / raw)
  To: Ivan; +Cc: help-gnu-emacs


Am 26.05.2007 um 11:02 schrieb Ivan:

> My target is one Emacs frame divided into several windows just like in
> Eclipse. In tune with the Emacs ideology the active window should be
> controled with a kbd shortcut and not only with the mouse.

Have you thought of using desktop.el and/or session.el? They save and  
can restore buffers and also layouts, at least up to some  
configurable degree ... Changing to others windows works with mouse  
best IMO, but you could also exchange this buffer with that one, here  
in this window!

--
Greetings

   Pete

In a world without walls and fences, who needs gates and windows?

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-26  3:29             ` Tim X
  2007-05-26  9:02               ` Ivan
@ 2007-05-26 10:18               ` Petter Gustad
  2007-05-26 13:50                 ` Tim X
  1 sibling, 1 reply; 25+ messages in thread
From: Petter Gustad @ 2007-05-26 10:18 UTC (permalink / raw)
  To: help-gnu-emacs

Tim X <timx@nospam.dev.null> writes:


> so rarely that its not really been necessary. I usually have about
> 15 different workspaces and different emacs frames on most of
> them. I then just switch between workspaces using two function keys
> or by moving the mouse to the left or right edge of the screen.

I prefer to select Emacs frames using a popup menu. I've made a
function in sawfish which pops up a menu of all Emacs frames:

(provide 'menu-of)
(require 'sawfish.wm.menus)

(defun wm-class-is (w class)
  (equal (aref (get-x-text-property w 'WM_CLASS) 1) class))

(defun emacs-p (w)
  (wm-class-is w "Emacs"))

(defun xterm-p (w)
  (wm-class-is w "XTerm"))

(defun popup-menu-of (pred)
  "make popup windows of a certain type"
  (popup-menu 
   (mapcar #'(lambda (w) 
               (list (window-name w) 
                     (lambda () 
                       (uniconify-window w)
                       (x-raise-window w)
                       (set-input-focus w))))
           (filter pred (managed-windows)))))

(defun menu-of-emacs ()
  "make a popup menu of emacs windows"
  (interactive)
  (popup-menu-of emacs-p))

(defun menu-of-xterm ()
  "make a popup menu of xterm windows"
  (interactive)
  (popup-menu-of xterm-p))


Then in the global keymap I bind menu-of-emacs to e.g. to H-1 so when I
press the Windows key and 1 I get a popup menu of all Emacs frames.

Petter

-- 
________________________________________________________________________
Petter Gustad         8'h2B | ~8'h2B        http://www.gustad.com/petter

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
       [not found]                 ` <mailman.1273.1180174364.32220.help-gnu-emacs@gnu.org>
@ 2007-05-26 11:34                   ` Ivan
  0 siblings, 0 replies; 25+ messages in thread
From: Ivan @ 2007-05-26 11:34 UTC (permalink / raw)
  To: help-gnu-emacs

On събота, Май 26 2007, Peter Dyballa wrote:

> Am 26.05.2007 um 11:02 schrieb Ivan:
>
>> My target is one Emacs frame divided into several windows just like
>> in Eclipse. In tune with the Emacs ideology the active window
>> should be controled with a kbd shortcut and not only with the
>> mouse.
>
> Have you thought of using desktop.el and/or session.el? They save
> and can restore buffers and also layouts, at least up to some
> configurable degree ... 

No, what can I do with them?

> Changing to others windows works with mouse best IMO, but you could
> also exchange this buffer with that one, here in this window!

Yeah, sure - it's just a preference. It is the idology of Emacs that
your hands are constantly on the keyboard.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
       [not found]                 ` <mailman.1268.1180172850.32220.help-gnu-emacs@gnu.org>
@ 2007-05-26 11:35                   ` Ivan
  0 siblings, 0 replies; 25+ messages in thread
From: Ivan @ 2007-05-26 11:35 UTC (permalink / raw)
  To: help-gnu-emacs

On събота, Май 26 2007, Leo wrote:

> ----- Ivan (2007-05-26) wrote:-----
>
>> My target is one Emacs frame divided into several windows just like in
>> Eclipse. In tune with the Emacs ideology the active window should be
>> controled with a kbd shortcut and not only with the mouse.
>>
>> Switching workspaces is tiring for the eyes. A contemporary display
>> should be enough for a window representing an IDE.
>
> It seems ECB¹ is what you want.

Does anybody managed to integrate it well with Slime for example?

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: customizing emacs windows
  2007-05-26 10:18               ` Petter Gustad
@ 2007-05-26 13:50                 ` Tim X
  0 siblings, 0 replies; 25+ messages in thread
From: Tim X @ 2007-05-26 13:50 UTC (permalink / raw)
  To: help-gnu-emacs

Petter Gustad <newsmail6@gustad.com> writes:

> Tim X <timx@nospam.dev.null> writes:
>
>
>> so rarely that its not really been necessary. I usually have about
>> 15 different workspaces and different emacs frames on most of
>> them. I then just switch between workspaces using two function keys
>> or by moving the mouse to the left or right edge of the screen.
>
> I prefer to select Emacs frames using a popup menu. I've made a
> function in sawfish which pops up a menu of all Emacs frames:
>
> (provide 'menu-of)
> (require 'sawfish.wm.menus)
>
> (defun wm-class-is (w class)
>   (equal (aref (get-x-text-property w 'WM_CLASS) 1) class))
>
> (defun emacs-p (w)
>   (wm-class-is w "Emacs"))
>
> (defun xterm-p (w)
>   (wm-class-is w "XTerm"))
>
> (defun popup-menu-of (pred)
>   "make popup windows of a certain type"
>   (popup-menu 
>    (mapcar #'(lambda (w) 
>                (list (window-name w) 
>                      (lambda () 
>                        (uniconify-window w)
>                        (x-raise-window w)
>                        (set-input-focus w))))
>            (filter pred (managed-windows)))))
>
> (defun menu-of-emacs ()
>   "make a popup menu of emacs windows"
>   (interactive)
>   (popup-menu-of emacs-p))
>
> (defun menu-of-xterm ()
>   "make a popup menu of xterm windows"
>   (interactive)
>   (popup-menu-of xterm-p))
>
>
> Then in the global keymap I bind menu-of-emacs to e.g. to H-1 so when I
> press the Windows key and 1 I get a popup menu of all Emacs frames.
>
> Petter
>
> -- 
> ________________________________________________________________________
> Petter Gustad         8'h2B | ~8'h2B        http://www.gustad.com/petter

Exactly why I love sawfish as a wm! The combination of sawfish and emacs is
truely friendly.

Thanks for the code snippets.

Tim
-- 
tcross (at) rapttech dot com dot au

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2007-05-26 13:50 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-23 17:04 customizing emacs windows Ivan
2007-05-23 22:24 ` Lennart Borgman (gmail)
2007-05-24  7:32   ` Eli Zaretskii
2007-05-24 10:06     ` Lennart Borgman (gmail)
2007-05-24 10:49       ` Eli Zaretskii
2007-05-24 11:22         ` Lennart Borgman (gmail)
2007-05-24 13:21           ` Eli Zaretskii
2007-05-24 13:55             ` Lennart Borgman (gmail)
2007-05-24 14:21               ` Eli Zaretskii
2007-05-24 19:29                 ` Lennart Borgman (gmail)
     [not found]   ` <mailman.1130.1179991947.32220.help-gnu-emacs@gnu.org>
2007-05-24  9:41     ` Ivan
2007-05-24 10:00       ` Jason Rumney
2007-05-24 11:06         ` Lennart Borgman (gmail)
2007-05-25  5:13       ` Tim X
2007-05-25 10:09         ` Ivan
2007-05-25 11:02           ` Ivan
2007-05-26  3:29             ` Tim X
2007-05-26  9:02               ` Ivan
2007-05-26  9:45                 ` Leo
2007-05-26 10:12                 ` Peter Dyballa
     [not found]                 ` <mailman.1273.1180174364.32220.help-gnu-emacs@gnu.org>
2007-05-26 11:34                   ` Ivan
     [not found]                 ` <mailman.1268.1180172850.32220.help-gnu-emacs@gnu.org>
2007-05-26 11:35                   ` Ivan
2007-05-26 10:18               ` Petter Gustad
2007-05-26 13:50                 ` Tim X
2007-05-24  0:28 ` Lennart Borgman (gmail)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).