From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: joakim@verona.se Newsgroups: gmane.emacs.devel Subject: Re: Emacs as the windows manager for graphical windows, How can I help? Date: Wed, 03 Apr 2013 13:41:58 +0200 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1364989349 28182 80.91.229.3 (3 Apr 2013 11:42:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 3 Apr 2013 11:42:29 +0000 (UTC) Cc: emacs-devel@gnu.org To: "Malk'Zameth" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Apr 03 13:42:57 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UNM5g-00073U-K0 for ged-emacs-devel@m.gmane.org; Wed, 03 Apr 2013 13:42:56 +0200 Original-Received: from localhost ([::1]:33014 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UNM5H-0004y5-Sd for ged-emacs-devel@m.gmane.org; Wed, 03 Apr 2013 07:42:31 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:57549) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UNM58-0004xj-4J for emacs-devel@gnu.org; Wed, 03 Apr 2013 07:42:29 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UNM51-00037v-Db for emacs-devel@gnu.org; Wed, 03 Apr 2013 07:42:22 -0400 Original-Received: from mx2.bahnhof.se ([213.80.101.12]:63711) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UNM51-00037S-2s for emacs-devel@gnu.org; Wed, 03 Apr 2013 07:42:15 -0400 Original-Received: from localhost (mf.bahnhof.se [213.80.101.20]) by mx2-reinject (Postfix) with ESMTP id E7E1AD637B; Wed, 3 Apr 2013 13:42:15 +0200 (CEST) X-Virus-Scanned: by amavisd-new using ClamAV at bahnhof.se (MF1) Original-Received: from mf1.bahnhof.se ([127.0.0.1]) by localhost (mf1.bahnhof.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id i+6e6d9lSkLV; Wed, 3 Apr 2013 13:42:11 +0200 (CEST) Original-Received: from mta.verona.se (h-235-102.a149.priv.bahnhof.se [85.24.235.102]) by mf1.bahnhof.se (Postfix) with ESMTP id B79A6AEA878; Wed, 3 Apr 2013 13:42:09 +0200 (CEST) Original-Received: from localhost (unknown [127.0.0.1]) by mta.verona.se (Postfix) with ESMTP id 179984E275B; Wed, 3 Apr 2013 11:42:00 +0000 (UTC) X-Virus-Scanned: amavisd-new at verona Original-Received: from mta.verona.se ([127.0.0.1]) by localhost (exodia.verona.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mmigXQvvsIx5; Wed, 3 Apr 2013 13:41:59 +0200 (CEST) Original-Received: from chopper.vpn.verona.se (unknown [192.168.201.18]) by mta.verona.se (Postfix) with ESMTP id 07EE84E12C4; Wed, 3 Apr 2013 13:41:59 +0200 (CEST) In-Reply-To: (Malk'Zameth's message of "Wed, 3 Apr 2013 12:04:35 +0200") User-Agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.3.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Mac OS X 10.x X-Received-From: 213.80.101.12 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:158584 Archived-At: "Malk'Zameth" 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