* 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 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
* 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