From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: =?UTF-8?Q?Cl=c3=a9ment_Pit--Claudel?= Newsgroups: gmane.emacs.devel Subject: Re: Redisplay hook Date: Mon, 4 Jul 2016 12:07:39 -0400 Message-ID: <577A89CB.7050502@gmail.com> References: <577814F4.8060500@gmail.com> <8360sns8nj.fsf@gnu.org> <57789637.8020204@gmail.com> <83twg7qi5t.fsf@gnu.org> <5779A83D.6020201@gmail.com> <83twg6p1kd.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="an8uLiQDNkdTQuNkeQ43vQaSMeEPsVS4O" X-Trace: ger.gmane.org 1467648782 20727 80.91.229.3 (4 Jul 2016 16:13:02 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 4 Jul 2016 16:13:02 +0000 (UTC) Cc: emacs-devel@gnu.org To: Stefan Monnier , Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jul 04 18:12:51 2016 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 1bK6UN-0006aq-2h for ged-emacs-devel@m.gmane.org; Mon, 04 Jul 2016 18:12:51 +0200 Original-Received: from localhost ([::1]:48990 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bK6UM-00077W-BJ for ged-emacs-devel@m.gmane.org; Mon, 04 Jul 2016 12:12:50 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57291) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bK6PV-0008Pv-17 for emacs-devel@gnu.org; Mon, 04 Jul 2016 12:07:50 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bK6PR-00029K-RO for emacs-devel@gnu.org; Mon, 04 Jul 2016 12:07:48 -0400 Original-Received: from mout.kundenserver.de ([212.227.126.134]:64839) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bK6PR-000294-GR; Mon, 04 Jul 2016 12:07:45 -0400 Original-Received: from [18.189.1.110] ([18.189.1.110]) by mrelayeu.kundenserver.de (mreue002) with ESMTPSA (Nemesis) id 0MVEDt-1aoau035tl-00YVbn; Mon, 04 Jul 2016 18:07:42 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 In-Reply-To: X-Provags-ID: V03:K0:eBkMjETh4VFPm0ygI/8TKq61+UITVQKCXpjKt6HK0IRDKWM02nt 6Zwr/Mm7WhWWyWXywlT9k1ZWNrGFwbj9eej80pgC+KDL9f+y3qpijYcNetLhIHr/hY7ewQl on/Prd1OoIuAjQn0b/A36evv6A1C0/whWa4F3Nt+D4i4yVQTw+7572q4/a5VjlvVgNRHZUa rLZZ+EJXp3pdSKddiu/6Q== X-UI-Out-Filterresults: notjunk:1;V01:K0:8MJ0eO/1kXE=:AJXjCbEyUfFMJ8uEF1JxSO HXprbEBiOUpaZlSB97NTQXgDwJhfcBOWCelPxSAb3Bi5B27G0H45Za3olDYxl5lE0I5flVRXM rKzcSeFAIE0NUnEmIeG1Bs6d+rbqydh6fW6w3xhBXog9gVskXd/8rUJlFGo8Fl1/1GVY+3Fo5 FDHepkxB6k0+CfYgQmn4ltbnqtJZuspcJZamldEKd5jMS6kD+kx5a7AUHbIwOc2CUhQCkNLU2 cuJJ/COGD8pUBBuVDf6AdXf/EUjSgW3UkAC6EY8Or/RLZQTtww/sWUr7H4izNu34jpxjP1sYT jPM9KDmRdC2tkXy2KitYBjlfCd0+8BvhH3fun20x4hlgqPa9UUf4kHiDb6b2ecRDeJQOsK9St 3H62RD1UPCGct9Uo2hlw56p3fDDhPoJ+YIZEfLrO3bPDWXd3XaMZmR/1Xv/qauWzLYolC4hHY nihvBvbjTJO6H47XgYL5wc28RtoftEnH5L9iMx6f+rNFsOPIcJulFIuHbfbntI/fPwziu/5SP LsOjlPDAjaPJo3Cl1I4H0yTfoT/9ZAJ0Sr6jYowkOlWzkd9CRKddJDBW4YIyOg8dMG6v2wfes uYViMAILIYCJbzbS4tPMmEWJfVrSOBJ0/WOXYaq4ok36vlFUte6KKgD4Zb8m4ij8+HWj0lZDX 8AaoVqe8L6b6NhrS3ACPDXF9/MGIDy0av4HzM18fB4CitkBy4zS5DwYOQJVdId9moWZI= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.126.134 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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" Xref: news.gmane.org gmane.emacs.devel:205137 Archived-At: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --an8uLiQDNkdTQuNkeQ43vQaSMeEPsVS4O Content-Type: multipart/mixed; boundary="5v2X7tnlGKqto2G83MCSMcedQ8mj7UWt4" From: =?UTF-8?Q?Cl=c3=a9ment_Pit--Claudel?= To: Stefan Monnier , Eli Zaretskii Cc: emacs-devel@gnu.org Message-ID: <577A89CB.7050502@gmail.com> Subject: Re: Redisplay hook References: <577814F4.8060500@gmail.com> <8360sns8nj.fsf@gnu.org> <57789637.8020204@gmail.com> <83twg7qi5t.fsf@gnu.org> <5779A83D.6020201@gmail.com> <83twg6p1kd.fsf@gnu.org> In-Reply-To: --5v2X7tnlGKqto2G83MCSMcedQ8mj7UWt4 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 2016-07-04 03:55, Stefan Monnier wrote: > I guess part of the question is what would be the use of such a hook. > The difference between a pre-redisplay-hook and a > post-redisplay-hook is not very large since most of the result of > redisplay is "invisible" to Elisp. Hi Stefan, My main use case is described above in this thread; it's a very convenien= t way to generate relatively compact, but accurate, emacs screencasts. We= don't currently have such a facility. Arthur's excellent https://github.= com/Malabarba/camcorder.el comes close, but it still depends on recordmyd= esktop, an external application that records frames at a fixed rate. This= means it sometimes misses frames, or captures too many, or shows interme= diate display states. With a post-redisplay hook, I can let emacs drive the capture process. He= re's an example: http://web.mit.edu/cpitcla/www/emacs-screencast.gif (as = I mentioned earlier in the thread, notice the xref pulsing and the M-x bu= tterfly animation) Additionally, since Emacs is driving, I can record plenty of per-frame da= ta, such as which key is being pressed with each frame. Here's an example= , which was fairly easy to assemble using this new hook and a bit of Imag= eMagick: http://web.mit.edu/cpitcla/www/emacs-screencast-annot.gif (it ma= y take a bit of time to load). What do you think of the result? I think a feature to generate such annotated screencasts would be very ni= ce. I'll be happy to contribute the lisp code if we can find a nice way t= o add the necessary hooks. Cl=E9ment. --5v2X7tnlGKqto2G83MCSMcedQ8mj7UWt4-- --an8uLiQDNkdTQuNkeQ43vQaSMeEPsVS4O Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQIcBAEBAgAGBQJXeonLAAoJEPqg+cTm90wjXUcQAI9lYnMcO6cYRcJoumic58V8 fNNbsRdp/WuXArvJxQ8FRS7T86jJK1u3QDMzp+GijenT3RT3IvmZ4XLyzj7W4yTJ PYnmUntgJJCmzdyVJ89O82J2Ma7l1RBQaCdcPs3eRY6cDc7N8R5E6aHiOIBarDIU +pLb7OJWe6aefDWtFT2WLDYrkMnPWxwceNqNA2u00nOWiwUBVvgSGzMpNs9BRb82 2cdM952aiH4TtIEaRWkfPz6Zim31DG8lmGUiGo8BtzjVK7RcIDvbT0FdNskqNESa 5Hi9Rv0twtXrMQLWKmsG15Vdha0YHi5C5kY/AvOFKnGQd+kPQhYaSV8pbDmqkDj4 8ZXYgaCtYaWAM0Rrk0lAWfMaxbIJVswS5aONTk7hzegkevR5E8hZroXq1NFvbMHn 6Gn0nWPEw7pzGWolYgOIZizBalMoGZ669rN4R1WtCmUrCqWaFzrUt/gDpQlV430z P81ZUy811RyorCOhlZvferDK6+ZF1TzhB7S2v99MZzH6Bm+VtcvQpfuLnrASby6+ ajS+5i+XqUVPy83sl8S71yjAzryZgMf/9WRZXpzM+kA95hIw0TAraJ/lSu8MmyNW 2us5QxASI7lvNAJDlYHYRxyVzto4gZ3C2zKMLyFcCbH33AZxp+aUX67UOfJ7IZhs bk1Z3zNv4HvDPSJDo2pA =TT88 -----END PGP SIGNATURE----- --an8uLiQDNkdTQuNkeQ43vQaSMeEPsVS4O--