unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Emacs as the windows manager for graphical windows, How can I help?
@ 2013-04-03 10:04 Malk'Zameth
  2013-04-03 11:41 ` joakim
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Malk'Zameth @ 2013-04-03 10:04 UTC (permalink / raw)
  To: emacs-devel

Hello all!

I have always dreamed of using emacs as my WM, or at least opening a
graphical webbrowser inside Emacs, (only program I use outside Emacs
is my browser anyway, and I do use w3m.el for loads of stuff).

I was not the only one dreaming, because during the @EmacsConf this
past weekend I saw a presentation of the Emacs xwidget patch (
http://bzr.savannah.gnu.org/lh/emacs/xwidget/files ) by Joakim Verona
( http://www.emacswiki.org/emacs/JoakimVerona ) that does just that!

During his presentation he opens a webkit browser inside emacs,
watches streaming html5 videos and opens an Emacs inside Emacs.

So I asked Joakim : "Can this be merged into mainline Emacs?"

and he answered : "It is a matter of someone having the time and
patience to format the patch so it can be accepted into the mainline
Emacs"

Well, time to put my free time where my mouth is : I volunteer to work
on that, giving it all my "sideproject time" from the first of may
until completion.

I have never hacked Emacs source itself (maybe there is a welcome
guide somewhere?) and I am a newbie to Emacs lisp itself (only emacs
lisp I've done: ugly init.el config
https://github.com/malk/.emacs.d/blob/master/init.el ) but I am a
developer by trade and I do want to invest my time on that.

This Email here is to announce me volunteering but also to ask:
1. What needs to be done? what "format" does a code needs to conform
to be acceptable by the mainline Emacs?

2. Where do I need to apply to have the right to contribute those
changes to emacs at all? I understand I need to sign away a
contributor agreement with the FSF, I have no problem with that (and
my employer is eager to, being a FLOSS company) but what do I need to
do exactly?

sorry for the wall of text

Have a nice day



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

* Re: Emacs as the windows manager for graphical windows, How can I help?
  2013-04-03 10:04 Emacs as the windows manager for graphical windows, How can I help? Malk'Zameth
@ 2013-04-03 11:41 ` joakim
  2013-04-03 12:44 ` Xue Fuqiao
  2013-04-03 19:43 ` Stefan Monnier
  2 siblings, 0 replies; 7+ messages in thread
From: joakim @ 2013-04-03 11:41 UTC (permalink / raw)
  To: Malk'Zameth; +Cc: emacs-devel

"Malk'Zameth" <malk@zameth.org> writes:

> Hello all!
>
> I have always dreamed of using emacs as my WM, or at least opening a
> graphical webbrowser inside Emacs, (only program I use outside Emacs
> is my browser anyway, and I do use w3m.el for loads of stuff).
>
> I was not the only one dreaming, because during the @EmacsConf this
> past weekend I saw a presentation of the Emacs xwidget patch (
> http://bzr.savannah.gnu.org/lh/emacs/xwidget/files ) by Joakim Verona
> ( http://www.emacswiki.org/emacs/JoakimVerona ) that does just that!
>
> During his presentation he opens a webkit browser inside emacs,
> watches streaming html5 videos and opens an Emacs inside Emacs.
>
> So I asked Joakim : "Can this be merged into mainline Emacs?"
>
> and he answered : "It is a matter of someone having the time and
> patience to format the patch so it can be accepted into the mainline
> Emacs"
>
> Well, time to put my free time where my mouth is : I volunteer to work
> on that, giving it all my "sideproject time" from the first of may
> until completion.


Thanks for the offer!

> I have never hacked Emacs source itself (maybe there is a welcome
> guide somewhere?) and I am a newbie to Emacs lisp itself (only emacs
> lisp I've done: ugly init.el config
> https://github.com/malk/.emacs.d/blob/master/init.el ) but I am a
> developer by trade and I do want to invest my time on that.
>
> This Email here is to announce me volunteering but also to ask:
> 1. What needs to be done? what "format" does a code needs to conform
> to be acceptable by the mainline Emacs?

A good start would be to check out the branch and read the README.xwidget
file. (the Emacs Xwidget branch is packaged in AUR and Gentoo, I think,
so maybe its pretty easy there)

The readme can be read here:
http://bzr.savannah.gnu.org/lh/emacs/xwidget/annotate/head:/README.xwidget

The readme is in org format.

That said, the remaining work should not be underestimated. The work
should be documented as TODO:s in the readme, but briefly, these are the
hard remaining tasks:

- I have a bunch of hard coded C arrays in xwidget.c that should be
  switched over to lisp data.

- there are many different attempts simultaneously represented in
  xwidget.c to achieve the difficult emacs split window paradigm with
  external widgets. The old ones should be removed and the best one
  should be fully implemented. the best approach so far being:

  - rendering widgets offscreen and blit copies on-screen(this is
  implemented and works well for webkit but not for sockets)

  - flesh out the gnome introspection approach, that i believe is the
  most promising. (its called "xwgir" in the code). When xwgir works
  properly, potentially any gtk widget could be used dynamically in an
  Emacs buffer.

  - event copying and propagation works well for webkit but oddly enough
  not for simpler widgets like buttons. this needs to be investigated,
  and is extra hard because Emacs has its own event handling.
  
- sockets are xtra hard(which I used for the Emacs-in-Emacs demo). I
  want to use the same approach as for the webkit case, but offscreen
  rendering and event propagation is especially messy in this case.  

Then we need to split up the branch in reviewable patches that can be
applied to trunk piece by piece. 

so, to summarize, "format" isn't quite the right word(but I think you
knew that), and theres more C than Lisp work. (OTOH, I want to remove
quite a lot of C code and turn it into Lisp)
  
> 2. Where do I need to apply to have the right to contribute those
> changes to emacs at all? I understand I need to sign away a
> contributor agreement with the FSF, I have no problem with that (and
> my employer is eager to, being a FLOSS company) but what do I need to
> do exactly?

You need to fill out a form that the FSF copyright clerk will send to
you. This takes some time. I dont remember how I got mine, so someone
else will hopefully chime in. 


> sorry for the wall of text
>
> Have a nice day
>

-- 
Joakim Verona



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

* Re: Emacs as the windows manager for graphical windows, How can I help?
  2013-04-03 10:04 Emacs as the windows manager for graphical windows, How can I help? Malk'Zameth
  2013-04-03 11:41 ` joakim
@ 2013-04-03 12:44 ` Xue Fuqiao
  2013-04-03 19:24   ` Adrian Robert
  2013-04-03 19:43 ` Stefan Monnier
  2 siblings, 1 reply; 7+ messages in thread
From: Xue Fuqiao @ 2013-04-03 12:44 UTC (permalink / raw)
  To: Malk'Zameth; +Cc: Stefan Monnier, emacs-devel

On Wed, 3 Apr 2013 12:04:35 +0200
"Malk'Zameth" <malk@zameth.org> wrote:

> Hello all!

Hello,

> I have always dreamed of using emacs as my WM

You can have a look at this thread[1].  I think port XWEM to GNU Emacs
is a good idea.

> Well, time to put my free time where my mouth is : I volunteer to work
> on that, giving it all my "sideproject time" from the first of may
> until completion.

Thank you very much.

> I have never hacked Emacs source itself (maybe there is a welcome
> guide somewhere?) and I am a newbie to Emacs lisp itself (only emacs
> lisp I've done: ugly init.el config
> https://github.com/malk/.emacs.d/blob/master/init.el ) but I am a
> developer by trade and I do want to invest my time on that.

Thanks again.  I have two posts[2][3] about contributing code to Emacs
(contributing in general, not only the Emacs Xwidget branch).  As for
Xwidget, you can see the README[4], HTH.

You can ask Stefan for the copyright assignment stuff, I think.

Footnotes:
[1] http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00746.html
[2] http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00640.html
[3] http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00322.html
[4] http://bzr.savannah.gnu.org/lh/emacs/xwidget/annotate/head:/README.xwidget

-- 
Xue Fuqiao
http://www.gnu.org/software/emacs/



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

* Re: Emacs as the windows manager for graphical windows, How can I help?
  2013-04-03 12:44 ` Xue Fuqiao
@ 2013-04-03 19:24   ` Adrian Robert
  2013-04-03 19:45     ` joakim
  2013-04-04  0:44     ` Stefan Monnier
  0 siblings, 2 replies; 7+ messages in thread
From: Adrian Robert @ 2013-04-03 19:24 UTC (permalink / raw)
  To: emacs-devel

Is this going to be an "Emacs-on-X" only feature going into mainline,
or is there some idea of universal hooks and implementations on other
windowing systems?

I only ask because in the past there has been some resistance to
platform-specific functionality, though X does have special status also...





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

* Re: Emacs as the windows manager for graphical windows, How can I help?
  2013-04-03 10:04 Emacs as the windows manager for graphical windows, How can I help? Malk'Zameth
  2013-04-03 11:41 ` joakim
  2013-04-03 12:44 ` Xue Fuqiao
@ 2013-04-03 19:43 ` Stefan Monnier
  2 siblings, 0 replies; 7+ messages in thread
From: Stefan Monnier @ 2013-04-03 19:43 UTC (permalink / raw)
  To: Malk'Zameth; +Cc: emacs-devel

> Well, time to put my free time where my mouth is : I volunteer to work
> on that, giving it all my "sideproject time" from the first of may
> until completion.

Great!

> (maybe there is a welcome guide somewhere?)

Not really, sorry.

> 1. What needs to be done? what "format" does a code needs to conform
> to be acceptable by the mainline Emacs?

Obviously, Joakim knows better what needs to be done, but here are some
comments from "the other end": to be acceptable for inclusion in the
trunk I think the main criteria are along the following lines:
- the new code is unlikely to need to be replaced later on by something
  completely different.  That is meant to rule out "experimental" code.
  Also, while we try to speed it up, Emacs release cycle is pretty
  long/slow, so take into account that the code won't be in a release
  for at the very least another year, probably two, so try to make sure
  it doesn't rely on some external package that will be obsolete
  by then.
- the patch should be safe in that most/all the code it touches is
  properly #ifdef'd.
- nitpickers are satisfied (send your patch for review, and you'll
  see what I mean ;-).  Read the GNU coding standards beforehand, since
  it describes most of the details we like.

I think the best is if Joakim can give you a "first chunk" to chew on.

> 2. Where do I need to apply to have the right to contribute those
> changes to emacs at all?

I just sent you a private email for that.


        Stefan



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

* Re: Emacs as the windows manager for graphical windows, How can I help?
  2013-04-03 19:24   ` Adrian Robert
@ 2013-04-03 19:45     ` joakim
  2013-04-04  0:44     ` Stefan Monnier
  1 sibling, 0 replies; 7+ messages in thread
From: joakim @ 2013-04-03 19:45 UTC (permalink / raw)
  To: Adrian Robert; +Cc: emacs-devel

Adrian Robert <Adrian.B.Robert@gmail.com> writes:

> Is this going to be an "Emacs-on-X" only feature going into mainline,

No. The "xwidgets" name was spectacularily badly chosen. The "x" stems
from "eXternal", *not* "X11".

In retrospect "embedded widgets", would have given the name "the Emacs
Emwidget branch". Nobody would have understood that either, but it would
at least not caused all the confusion. I only recently understood this
confusion myself, which is why I havent changed the branch name. Now it
would be quite some work to change the internals to reflect a name change.

That said, the only Xwidget implementation there is, is based on GTK.

I did have a user telling me he had the xwidget branch working on OSX,
but I havent heard from him in a while.

> or is there some idea of universal hooks and implementations on other
> windowing systems?

The interface should be implementable on any sort of widget set that
allows for offscreen widgets and stuff like that. I'd be interested in
having a look at porting to other toolkits, but I want to have an actual
properly working gtk implementation first.

> I only ask because in the past there has been some resistance to
> platform-specific functionality, though X does have special status also...
>
>
>

-- 
Joakim Verona



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

* Re: Emacs as the windows manager for graphical windows, How can I help?
  2013-04-03 19:24   ` Adrian Robert
  2013-04-03 19:45     ` joakim
@ 2013-04-04  0:44     ` Stefan Monnier
  1 sibling, 0 replies; 7+ messages in thread
From: Stefan Monnier @ 2013-04-04  0:44 UTC (permalink / raw)
  To: Adrian Robert; +Cc: emacs-devel

> I only ask because in the past there has been some resistance to
> platform-specific functionality, though X does have special status also...

FWIW, the resistance is not "to platform-specific functionality" but "to
functionality that only works if you use proprietary Software"
(e.g. Windows-specific of OSX-specific).

In practice it basically means that X11 is given preferential treatment.
But if/when GNUstep support works well enough, you should be able to
argue for the addition of GNUstep-specific functionality (even if it
also works under OSX).


        Stefan



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

end of thread, other threads:[~2013-04-04  0:44 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-03 10:04 Emacs as the windows manager for graphical windows, How can I help? Malk'Zameth
2013-04-03 11:41 ` joakim
2013-04-03 12:44 ` Xue Fuqiao
2013-04-03 19:24   ` Adrian Robert
2013-04-03 19:45     ` joakim
2013-04-04  0:44     ` Stefan Monnier
2013-04-03 19:43 ` Stefan Monnier

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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).