summaryrefslogtreecommitdiffstats
path: root/2020
diff options
context:
space:
mode:
Diffstat (limited to '2020')
-rw-r--r--2020/info/34.md568
-rw-r--r--2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng.vtt (renamed from 2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt)1080
2 files changed, 1088 insertions, 560 deletions
diff --git a/2020/info/34.md b/2020/info/34.md
index c8aaee9e..cfca7972 100644
--- a/2020/info/34.md
+++ b/2020/info/34.md
@@ -1,8 +1,9 @@
# Extend Emacs to Modern GUI Applications with EAF
Matthew Zeng
-[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng.webm"]]
-[Download compressed .webm video (28.4M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng--vp9-q56-video-original-audio.webm)
+[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng.webm" size="113M" subtitles="/2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng.vtt" duration="22:23"]]
+[Download compressed .webm video (28.4M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng--vp9-q56-video-original-audio.webm)
+[View transcript](#transcript)
Emacs Application Framework (EAF) is a customizable and extensible GUI
application framework that extends Emacs graphical capabilities using
@@ -102,3 +103,566 @@ Not yet! Will have a look into it later :-)
- One of the admins of the [Emacs China
forum](https://emacs-china.org/).
- <https://github.com/manateelazycat/emacs-application-framework>
+
+<a name="transcript"></a>
+# Transcript
+
+[[!template new="1" text="Hello." start="00:00:03.600" video="mainVideo" id=subtitle]]
+[[!template text="Hopefully everyone is staying safe and" start="00:00:04.560" video="mainVideo" id=subtitle]]
+[[!template text="staying home," start="00:00:06.720" video="mainVideo" id=subtitle]]
+[[!template text="I feel very grateful to live in a world" start="00:00:08.000" video="mainVideo" id=subtitle]]
+[[!template text="today that technology and free software" start="00:00:10.000" video="mainVideo" id=subtitle]]
+[[!template text="can be leveraged to connect people in" start="00:00:12.000" video="mainVideo" id=subtitle]]
+[[!template text="such disconnected and difficult times," start="00:00:13.759" video="mainVideo" id=subtitle]]
+[[!template text="and to have an online conference like" start="00:00:16.080" video="mainVideo" id=subtitle]]
+[[!template text="this. Hopefully you've all" start="00:00:17.840" video="mainVideo" id=subtitle]]
+[[!template text="enjoyed this year's EmacsConf so far." start="00:00:19.920" video="mainVideo" id=subtitle]]
+[[!template text="Many thanks to all the people that made" start="00:00:22.960" video="mainVideo" id=subtitle]]
+[[!template text="this possible." start="00:00:24.720" video="mainVideo" id=subtitle]]
+[[!template text="Anyways, welcome to my talk &quot;Extend Emacs" start="00:00:26.880" video="mainVideo" id=subtitle]]
+[[!template text="to Modern GUI" start="00:00:30.000" video="mainVideo" id=subtitle]]
+[[!template text="Applications with EAF, the Emacs" start="00:00:30.960" video="mainVideo" id=subtitle]]
+[[!template text="Application Framework&quot;." start="00:00:34.079" video="mainVideo" id=subtitle]]
+[[!template text="This will be my first ever talk, so" start="00:00:35.920" video="mainVideo" id=subtitle]]
+[[!template text="apologies for my" start="00:00:38.320" video="mainVideo" id=subtitle]]
+[[!template text="inexperience, let us begin." start="00:00:39.840" video="mainVideo" id=subtitle]]
+[[!template text="About me: my name is Matthew Zeng, you can" start="00:00:43.280" video="mainVideo" id=subtitle]]
+[[!template text="also call me MT" start="00:00:46.559" video="mainVideo" id=subtitle]]
+[[!template text="or Mingde. I'm a Chinese Canadian living" start="00:00:47.840" video="mainVideo" id=subtitle]]
+[[!template text="in Toronto," start="00:00:50.640" video="mainVideo" id=subtitle]]
+[[!template text="Ontario. Offline: I'm an undergrad" start="00:00:51.440" video="mainVideo" id=subtitle]]
+[[!template text="studying mathematics at the University" start="00:00:54.239" video="mainVideo" id=subtitle]]
+[[!template text="of Waterloo." start="00:00:56.079" video="mainVideo" id=subtitle]]
+[[!template text="Online: I'm one of the admins of the" start="00:00:57.760" video="mainVideo" id=subtitle]]
+[[!template text="Emacs China" start="00:01:00.480" video="mainVideo" id=subtitle]]
+[[!template text="— the largest Emacs forum in China. So," start="00:01:03.039" video="mainVideo" id=subtitle]]
+[[!template text="to all Chinese listening to my talk right" start="00:01:06.320" video="mainVideo" id=subtitle]]
+[[!template text="now, feel free to check it out." start="00:01:08.080" video="mainVideo" id=subtitle]]
+[[!template text="And this is a link to my GitHub profile," start="00:01:10.960" video="mainVideo" id=subtitle]]
+[[!template text="(and) to my projects I'm involved in." start="00:01:14.320" video="mainVideo" id=subtitle]]
+[[!template text="One's M-EMACS which is" start="00:01:16.206" video="mainVideo" id=subtitle]]
+[[!template text="I'm the author of — a user-friendly" start="00:01:18.240" video="mainVideo" id=subtitle]]
+[[!template text="full-featured Emacs configuration" start="00:01:20.159" video="mainVideo" id=subtitle]]
+[[!template text="distribution," start="00:01:21.840" video="mainVideo" id=subtitle]]
+[[!template text="it is what I'm using right now, as well" start="00:01:22.799" video="mainVideo" id=subtitle]]
+[[!template text="as the Emacs Application Framework" start="00:01:25.040" video="mainVideo" id=subtitle]]
+[[!template text="which I help to maintain along with the" start="00:01:26.880" video="mainVideo" id=subtitle]]
+[[!template text="other author" start="00:01:29.119" video="mainVideo" id=subtitle]]
+[[!template text="lazycat, which of course, is today's" start="00:01:30.400" video="mainVideo" id=subtitle]]
+[[!template text="topic." start="00:01:33.040" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So, as you all might have already" start="00:01:35.759" video="mainVideo" id=subtitle]]
+[[!template text="noticed I'm currently using Emacs" start="00:01:38.720" video="mainVideo" id=subtitle]]
+[[!template text="and opening navigating closing" start="00:01:40.960" video="mainVideo" id=subtitle]]
+[[!template text="all these websites that are rendered" start="00:01:43.600" video="mainVideo" id=subtitle]]
+[[!template text="properly" start="00:01:45.360" video="mainVideo" id=subtitle]]
+[[!template text="all within Emacs, it's all thanks to the" start="00:01:46.159" video="mainVideo" id=subtitle]]
+[[!template text="EAF project." start="00:01:49.200" video="mainVideo" id=subtitle]]
+[[!template text="So, we're living in a society that's" start="00:01:51.840" video="mainVideo" id=subtitle]]
+[[!template text="heavily dependent on the internet" start="00:01:54.000" video="mainVideo" id=subtitle]]
+[[!template text="and multimedia, it is unavoidable to run" start="00:01:55.920" video="mainVideo" id=subtitle]]
+[[!template text="to some occasion that you need to" start="00:01:59.520" video="mainVideo" id=subtitle]]
+[[!template text="open a fancy website that uses" start="00:02:01.200" video="mainVideo" id=subtitle]]
+[[!template text="JavaScript and CSS," start="00:02:02.880" video="mainVideo" id=subtitle]]
+[[!template text="or you need to watch some videos. However," start="00:02:04.799" video="mainVideo" id=subtitle]]
+[[!template text="due to the nature and history of Emacs," start="00:02:08.239" video="mainVideo" id=subtitle]]
+[[!template text="it cannot" start="00:02:11.120" video="mainVideo" id=subtitle]]
+[[!template text="render all these modern graphics" start="00:02:11.840" video="mainVideo" id=subtitle]]
+[[!template text="effectively and efficiently." start="00:02:13.840" video="mainVideo" id=subtitle]]
+[[!template text="Emacs is solely a text-based editing" start="00:02:16.400" video="mainVideo" id=subtitle]]
+[[!template text="environment," start="00:02:19.360" video="mainVideo" id=subtitle]]
+[[!template text="and I argue that this is not a bad thing," start="00:02:20.400" video="mainVideo" id=subtitle]]
+[[!template text="in fact, it is one of the reasons that me" start="00:02:23.520" video="mainVideo" id=subtitle]]
+[[!template text="and I believe many of you as well" start="00:02:25.680" video="mainVideo" id=subtitle]]
+[[!template text="are attracted to Emacs in the first" start="00:02:27.760" video="mainVideo" id=subtitle]]
+[[!template text="place." start="00:02:29.760" video="mainVideo" id=subtitle]]
+[[!template text="Unfortunately, this results in us having" start="00:02:30.879" video="mainVideo" id=subtitle]]
+[[!template text="to open a dedicated web browser to" start="00:02:33.760" video="mainVideo" id=subtitle]]
+[[!template text="browse the internet," start="00:02:35.680" video="mainVideo" id=subtitle]]
+[[!template text="open a dedicated video player to watch" start="00:02:37.040" video="mainVideo" id=subtitle]]
+[[!template text="some videos, or a PDF renderer to read some" start="00:02:38.879" video="mainVideo" id=subtitle]]
+[[!template text="documents." start="00:02:41.440" video="mainVideo" id=subtitle]]
+[[!template text="So far Emacs cannot do all these tasks on" start="00:02:42.640" video="mainVideo" id=subtitle]]
+[[!template text="its own" start="00:02:45.200" video="mainVideo" id=subtitle]]
+[[!template text="but can only be achieved using other" start="00:02:46.000" video="mainVideo" id=subtitle]]
+[[!template text="external applications." start="00:02:48.080" video="mainVideo" id=subtitle]]
+[[!template text="So, the other author manateelazycat," start="00:02:51.519" video="mainVideo" id=subtitle]]
+[[!template text="or lazycat in short, didn't want to use" start="00:02:55.840" video="mainVideo" id=subtitle]]
+[[!template text="all these external applications," start="00:02:58.640" video="mainVideo" id=subtitle]]
+[[!template text="he wanted to have an uninterrupted Emacs" start="00:03:00.560" video="mainVideo" id=subtitle]]
+[[!template text="experience," start="00:03:03.120" video="mainVideo" id=subtitle]]
+[[!template text="he wanted to truly live in Emacs." start="00:03:04.159" video="mainVideo" id=subtitle]]
+[[!template text="However, it would be a lot of work to" start="00:03:07.280" video="mainVideo" id=subtitle]]
+[[!template text="build this" start="00:03:10.080" video="mainVideo" id=subtitle]]
+[[!template text="modern application from scratch, there's" start="00:03:11.040" video="mainVideo" id=subtitle]]
+[[!template text="simply no time or research to do that." start="00:03:13.519" video="mainVideo" id=subtitle]]
+[[!template text="So, lazycat thought of utilizing existing" start="00:03:16.239" video="mainVideo" id=subtitle]]
+[[!template text="applications" start="00:03:18.800" video="mainVideo" id=subtitle]]
+[[!template text="and to try to make it collaborate with" start="00:03:20.400" video="mainVideo" id=subtitle]]
+[[!template text="Emacs, there are many solutions available," start="00:03:22.319" video="mainVideo" id=subtitle]]
+[[!template text="one of it" start="00:03:24.959" video="mainVideo" id=subtitle]]
+[[!template text="is the Emacs X Windows Manager, and I'm" start="00:03:26.000" video="mainVideo" id=subtitle]]
+[[!template text="sure a lot of you already know that —" start="00:03:28.560" video="mainVideo" id=subtitle]]
+[[!template text="the EXWM. However, it didn't work for him," start="00:03:30.159" video="mainVideo" id=subtitle]]
+[[!template text="because although EXWM opens the" start="00:03:33.360" video="mainVideo" id=subtitle]]
+[[!template text="door to use other applications within" start="00:03:35.200" video="mainVideo" id=subtitle]]
+[[!template text="Emacs," start="00:03:37.440" video="mainVideo" id=subtitle]]
+[[!template text="it as a fine window manager cannot" start="00:03:38.239" video="mainVideo" id=subtitle]]
+[[!template text="modify," start="00:03:40.879" video="mainVideo" id=subtitle]]
+[[!template text="customize, or extend other software from" start="00:03:41.519" video="mainVideo" id=subtitle]]
+[[!template text="Emacs." start="00:03:43.920" video="mainVideo" id=subtitle]]
+[[!template text="For example, it cannot modify the" start="00:03:45.040" video="mainVideo" id=subtitle]]
+[[!template text="behavior when you press a key in" start="00:03:46.799" video="mainVideo" id=subtitle]]
+[[!template text="Chromium or" start="00:03:48.480" video="mainVideo" id=subtitle]]
+[[!template text="PDF viewer, therefore it cannot utilize" start="00:03:49.599" video="mainVideo" id=subtitle]]
+[[!template text="the rich Emacs ecosystem that's been" start="00:03:52.159" video="mainVideo" id=subtitle]]
+[[!template text="growing for almost 40 years." start="00:03:54.000" video="mainVideo" id=subtitle]]
+[[!template new="1" text="On the other hand, in the EAF browser, so," start="00:03:57.360" video="mainVideo" id=subtitle]]
+[[!template text="if you M-x eaf-open-browser-with-history," start="00:04:00.720" video="mainVideo" id=subtitle]]
+[[!template text="you can see" start="00:04:06.206" video="mainVideo" id=subtitle]]
+[[!template text="on the lower half of my screen — a list of" start="00:04:07.200" video="mainVideo" id=subtitle]]
+[[!template text="histories sorted by my personal" start="00:04:09.840" video="mainVideo" id=subtitle]]
+[[!template text="most visited sites, and you can search" start="00:04:11.920" video="mainVideo" id=subtitle]]
+[[!template text="for a site that you've been" start="00:04:14.560" video="mainVideo" id=subtitle]]
+[[!template text="to or search for some keyword in a" start="00:04:16.560" video="mainVideo" id=subtitle]]
+[[!template text="search engine." start="00:04:19.440" video="mainVideo" id=subtitle]]
+[[!template text="So, this is all achieved by utilizing the" start="00:04:21.840" video="mainVideo" id=subtitle]]
+[[!template text="popular completion framework in the" start="00:04:24.240" video="mainVideo" id=subtitle]]
+[[!template text="Emacs ecosystem — ivy." start="00:04:25.919" video="mainVideo" id=subtitle]]
+[[!template text="So, lazycat decided to develop a" start="00:04:29.280" video="mainVideo" id=subtitle]]
+[[!template text="solution of his own in 2018," start="00:04:31.120" video="mainVideo" id=subtitle]]
+[[!template text="namely the EAF project, so, I joined the" start="00:04:33.680" video="mainVideo" id=subtitle]]
+[[!template text="development last year, 2019." start="00:04:36.960" video="mainVideo" id=subtitle]]
+[[!template text="EAF is" start="00:04:42.756" video="mainVideo" id=subtitle]]
+[[!template text="a highly customizable and extensible" start="00:04:44.000" video="mainVideo" id=subtitle]]
+[[!template text="GUI application framework that extends" start="00:04:47.880" video="mainVideo" id=subtitle]]
+[[!template text="Emacs to graphical capabilities using" start="00:04:49.759" video="mainVideo" id=subtitle]]
+[[!template text="PyQt5, and it is not a window manager." start="00:04:52.056" video="mainVideo" id=subtitle]]
+[[!template text="Alright. So, in the README, you can see a" start="00:04:57.840" video="mainVideo" id=subtitle]]
+[[!template text="list of GIFs" start="00:05:02.479" video="mainVideo" id=subtitle]]
+[[!template text="showcasing all the available EAF" start="00:05:03.440" video="mainVideo" id=subtitle]]
+[[!template text="applications," start="00:05:05.600" video="mainVideo" id=subtitle]]
+[[!template text="a browser, a markdown previewer, a video" start="00:05:06.720" video="mainVideo" id=subtitle]]
+[[!template text="player, a PDF viewer, and more." start="00:05:09.520" video="mainVideo" id=subtitle]]
+[[!template text="Today I don't have" start="00:05:12.789" video="mainVideo" id=subtitle]]
+[[!template text="enough time to demonstrate each one of" start="00:05:14.240" video="mainVideo" id=subtitle]]
+[[!template text="them," start="00:05:16.160" video="mainVideo" id=subtitle]]
+[[!template text="but I will select a couple applications" start="00:05:16.560" video="mainVideo" id=subtitle]]
+[[!template text="to show you." start="00:05:18.720" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So, since we are already using EAF browser," start="00:05:21.120" video="mainVideo" id=subtitle]]
+[[!template text="we'll start with this. Besides using the" start="00:05:24.240" video="mainVideo" id=subtitle]]
+[[!template text="classic Control n (C-n), Control p (C-p)" start="00:05:27.840" video="mainVideo" id=subtitle]]
+[[!template text="you can also use the Vim style hjkl to" start="00:05:29.600" video="mainVideo" id=subtitle]]
+[[!template text="move up or down." start="00:05:32.000" video="mainVideo" id=subtitle]]
+[[!template text="Also, Meta Shift comma (M-<) or g (moves) to the" start="00:05:33.840" video="mainVideo" id=subtitle]]
+[[!template text="beginning of page," start="00:05:36.320" video="mainVideo" id=subtitle]]
+[[!template text="Meta Shift period (M->) or capital g (moves) to" start="00:05:37.280" video="mainVideo" id=subtitle]]
+[[!template text="the end of page." start="00:05:39.120" video="mainVideo" id=subtitle]]
+[[!template text="Vimium and Surfingkeys" start="00:05:41.199" video="mainVideo" id=subtitle]]
+[[!template text="are popular keyboard-based" start="00:05:45.306" video="mainVideo" id=subtitle]]
+[[!template text="browsing techniques in Chrome," start="00:05:46.479" video="mainVideo" id=subtitle]]
+[[!template text="and they've imported here as well. You" start="00:05:48.400" video="mainVideo" id=subtitle]]
+[[!template text="can press f to toggle markers pointing" start="00:05:50.479" video="mainVideo" id=subtitle]]
+[[!template text="to" start="00:05:52.720" video="mainVideo" id=subtitle]]
+[[!template text="all the links in the current page, say, I" start="00:05:53.039" video="mainVideo" id=subtitle]]
+[[!template text="want to visit the wiki —" start="00:05:55.280" video="mainVideo" id=subtitle]]
+[[!template text="which comes very very handy when you" start="00:05:56.960" video="mainVideo" id=subtitle]]
+[[!template text="want to configure EAF to your liking," start="00:05:59.680" video="mainVideo" id=subtitle]]
+[[!template text="so you see the marker on top of wiki is" start="00:06:02.400" video="mainVideo" id=subtitle]]
+[[!template text="dd," start="00:06:04.720" video="mainVideo" id=subtitle]]
+[[!template text="press dd and Enter (RET), and now" start="00:06:05.440" video="mainVideo" id=subtitle]]
+[[!template text="you are navigated to this link, so you" start="00:06:08.479" video="mainVideo" id=subtitle]]
+[[!template text="don't need to use your mouse at all." start="00:06:10.240" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So, a full list of key bindings can be" start="00:06:13.840" video="mainVideo" id=subtitle]]
+[[!template text="found when you (press)" start="00:06:16.560" video="mainVideo" id=subtitle]]
+[[!template text="Control h m (C-h m), just as any other Emacs major" start="00:06:17.680" video="mainVideo" id=subtitle]]
+[[!template text="mode," start="00:06:20.560" video="mainVideo" id=subtitle]]
+[[!template text="so you don't have to remember everything…" start="00:06:21.199" video="mainVideo" id=subtitle]]
+[[!template text="all the key bindings I said to you." start="00:06:22.960" video="mainVideo" id=subtitle]]
+[[!template text="So, this is a global binding application" start="00:06:25.600" video="mainVideo" id=subtitle]]
+[[!template text="to every other EAF application as well." start="00:06:28.560" video="mainVideo" id=subtitle]]
+[[!template text="You can find it under the wiki in the" start="00:06:30.960" video="mainVideo" id=subtitle]]
+[[!template text="keybindings" start="00:06:36.720" video="mainVideo" id=subtitle]]
+[[!template text="section, so press f again and use" start="00:06:37.600" video="mainVideo" id=subtitle]]
+[[!template text="ns, press Enter (RET), now you're in the" start="00:06:40.639" video="mainVideo" id=subtitle]]
+[[!template text="keybindings web page." start="00:06:44.240" video="mainVideo" id=subtitle]]
+[[!template text="You can see all of the keybindings" start="00:06:45.600" video="mainVideo" id=subtitle]]
+[[!template text="available in every" start="00:06:47.520" video="mainVideo" id=subtitle]]
+[[!template text="EAF application, and you can try them out," start="00:06:49.280" video="mainVideo" id=subtitle]]
+[[!template text="and you can customize your key bindings" start="00:06:53.919" video="mainVideo" id=subtitle]]
+[[!template text="using eaf-bind-key," start="00:06:56.479" video="mainVideo" id=subtitle]]
+[[!template text="you can customize Control n (C-n) as" start="00:06:57.956" video="mainVideo" id=subtitle]]
+[[!template text="in the web page" start="00:07:00.240" video="mainVideo" id=subtitle]]
+[[!template text="to scroll up in the EAF PDF viewer, or you" start="00:07:02.960" video="mainVideo" id=subtitle]]
+[[!template text="can unbind" start="00:07:05.759" video="mainVideo" id=subtitle]]
+[[!template text="an existing binding using" start="00:07:06.639" video="mainVideo" id=subtitle]]
+[[!template text="eaf-bind-key," start="00:07:08.806" video="mainVideo" id=subtitle]]
+[[!template text="bind it to nil, so it doesn't bind to" start="00:07:10.000" video="mainVideo" id=subtitle]]
+[[!template text="anything." start="00:07:14.840" video="mainVideo" id=subtitle]]
+[[!template text="Okay, so, here comes the important part," start="00:07:16.160" video="mainVideo" id=subtitle]]
+[[!template text="if you want to customize EAF, you should" start="00:07:20.319" video="mainVideo" id=subtitle]]
+[[!template text="visit the customization page in the wiki." start="00:07:22.479" video="mainVideo" id=subtitle]]
+[[!template text="Now, I press Meta b to go back in" start="00:07:25.440" video="mainVideo" id=subtitle]]
+[[!template text="history, and" start="00:07:28.840" video="mainVideo" id=subtitle]]
+[[!template text="go to the customization page, press f," start="00:07:30.240" video="mainVideo" id=subtitle]]
+[[!template text="press ad," start="00:07:32.960" video="mainVideo" id=subtitle]]
+[[!template text="Enter, and now we're in the customization" start="00:07:34.080" video="mainVideo" id=subtitle]]
+[[!template text="page." start="00:07:36.639" video="mainVideo" id=subtitle]]
+[[!template text="So, the first customization option you" start="00:07:37.360" video="mainVideo" id=subtitle]]
+[[!template text="see is dark mode," start="00:07:39.280" video="mainVideo" id=subtitle]]
+[[!template text="let's say, if you want to turn on the dark" start="00:07:42.639" video="mainVideo" id=subtitle]]
+[[!template text="mode for EAF browser," start="00:07:44.479" video="mainVideo" id=subtitle]]
+[[!template text="and you don't want to use your mouse to" start="00:07:46.720" video="mainVideo" id=subtitle]]
+[[!template text="do all this stuff." start="00:07:48.479" video="mainVideo" id=subtitle]]
+[[!template text="You press c, and you can select" start="00:07:49.919" video="mainVideo" id=subtitle]]
+[[!template text="c to toggle the caret browsing, you can" start="00:07:53.360" video="mainVideo" id=subtitle]]
+[[!template text="see a lot of markers available," start="00:07:55.840" video="mainVideo" id=subtitle]]
+[[!template text="poped up again, but they're not" start="00:07:58.240" video="mainVideo" id=subtitle]]
+[[!template text="on top of links but instead of" start="00:08:01.280" video="mainVideo" id=subtitle]]
+[[!template text="paragraphs." start="00:08:02.720" video="mainVideo" id=subtitle]]
+[[!template text="You select the paragraph of your choice," start="00:08:03.599" video="mainVideo" id=subtitle]]
+[[!template text="in this case you want" start="00:08:05.360" video="mainVideo" id=subtitle]]
+[[!template text="ls which comes here," start="00:08:06.639" video="mainVideo" id=subtitle]]
+[[!template text="and then you just move the" start="00:08:10.240" video="mainVideo" id=subtitle]]
+[[!template text="cursor like what you always do" start="00:08:12.720" video="mainVideo" id=subtitle]]
+[[!template text="in Emacs, and now you select everything" start="00:08:15.120" video="mainVideo" id=subtitle]]
+[[!template text="and use Meta w (M-w) to copy the text." start="00:08:18.800" video="mainVideo" id=subtitle]]
+[[!template text="Now, we (run) Meta Shift colon (M-:) to evaluate" start="00:08:26.479" video="mainVideo" id=subtitle]]
+[[!template text="what we just copied," start="00:08:29.199" video="mainVideo" id=subtitle]]
+[[!template text="and set that to true, and" start="00:08:30.960" video="mainVideo" id=subtitle]]
+[[!template text="press r or F5 to refresh the page," start="00:08:35.120" video="mainVideo" id=subtitle]]
+[[!template text="voilà we have the dark mode enabled." start="00:08:38.320" video="mainVideo" id=subtitle]]
+[[!template text="So, there are…, well, let's toggle" start="00:08:42.159" video="mainVideo" id=subtitle]]
+[[!template text="it back off for now." start="00:08:44.880" video="mainVideo" id=subtitle]]
+[[!template text="Now, we (run) Meta Shift colon (M-:) again," start="00:08:46.160" video="mainVideo" id=subtitle]]
+[[!template text="and we find the one we just used, and" start="00:08:49.360" video="mainVideo" id=subtitle]]
+[[!template text="change it back to false," start="00:08:51.600" video="mainVideo" id=subtitle]]
+[[!template text="and refresh the page, back in the light" start="00:08:53.519" video="mainVideo" id=subtitle]]
+[[!template text="mode." start="00:08:56.880" video="mainVideo" id=subtitle]]
+[[!template text="So, there are many other customization" start="00:08:59.360" video="mainVideo" id=subtitle]]
+[[!template text="options available, you can either" start="00:09:02.160" video="mainVideo" id=subtitle]]
+[[!template text="evaluate like what we just did or add it" start="00:09:03.680" video="mainVideo" id=subtitle]]
+[[!template text="to your Emacs configuration file." start="00:09:05.920" video="mainVideo" id=subtitle]]
+[[!template text="So, in this wiki…," start="00:09:08.000" video="mainVideo" id=subtitle]]
+[[!template text="you can make the EAF browser to" start="00:09:11.680" video="mainVideo" id=subtitle]]
+[[!template text="continue where you left off" start="00:09:14.399" video="mainVideo" id=subtitle]]
+[[!template text="similar to the Chromium setting." start="00:09:16.320" video="mainVideo" id=subtitle]]
+[[!template text="You can make EAF the default browser" start="00:09:20.160" video="mainVideo" id=subtitle]]
+[[!template text="(in) Emacs by" start="00:09:22.800" video="mainVideo" id=subtitle]]
+[[!template text="aliasing browse-web to" start="00:09:23.839" video="mainVideo" id=subtitle]]
+[[!template text="eaf-open-browser," start="00:09:26.720" video="mainVideo" id=subtitle]]
+[[!template text="or set the browse-url-browser-function to" start="00:09:27.680" video="mainVideo" id=subtitle]]
+[[!template text="eaf-open-browser, there's just some tricks." start="00:09:31.200" video="mainVideo" id=subtitle]]
+[[!template text="And there (is) also" start="00:09:33.519" video="mainVideo" id=subtitle]]
+[[!template text="an experimental adblocker currently" start="00:09:34.480" video="mainVideo" id=subtitle]]
+[[!template text="in place, therefore it can" start="00:09:37.920" video="mainVideo" id=subtitle]]
+[[!template text="block some elements but not all, so" start="00:09:41.680" video="mainVideo" id=subtitle]]
+[[!template text="we really encourage people to help us" start="00:09:44.720" video="mainVideo" id=subtitle]]
+[[!template text="test out and" start="00:09:47.279" video="mainVideo" id=subtitle]]
+[[!template text="add more conditions in." start="00:09:48.240" video="mainVideo" id=subtitle]]
+[[!template text="So, you can…, the EAF Browser is able to" start="00:09:51.440" video="mainVideo" id=subtitle]]
+[[!template text="download" start="00:09:54.560" video="mainVideo" id=subtitle]]
+[[!template text="any files from the internet, and it will" start="00:09:55.760" video="mainVideo" id=subtitle]]
+[[!template text="be downloaded using Aria2." start="00:09:57.680" video="mainVideo" id=subtitle]]
+[[!template text="You can also customize" start="00:10:04.000" video="mainVideo" id=subtitle]]
+[[!template text="the eaf-browser-download-path" start="00:10:05.339" video="mainVideo" id=subtitle]]
+[[!template text="using eaf-setq, it's a function that we" start="00:10:07.200" video="mainVideo" id=subtitle]]
+[[!template text="defined similar to setq," start="00:10:11.120" video="mainVideo" id=subtitle]]
+[[!template text="the normal setq we know." start="00:10:13.623" video="mainVideo" id=subtitle]]
+[[!template text="So, by default the download file is" start="00:10:15.040" video="mainVideo" id=subtitle]]
+[[!template text="stored in your home directory slash" start="00:10:16.480" video="mainVideo" id=subtitle]]
+[[!template text="downloads," start="00:10:18.160" video="mainVideo" id=subtitle]]
+[[!template text="and you can change that whenever you" start="00:10:19.600" video="mainVideo" id=subtitle]]
+[[!template text="want. You can also disable" start="00:10:20.800" video="mainVideo" id=subtitle]]
+[[!template text="saving browsing history, so, remember" start="00:10:22.720" video="mainVideo" id=subtitle]]
+[[!template text="when I press…," start="00:10:26.079" video="mainVideo" id=subtitle]]
+[[!template text="when I use M-x eaf-open-browser's" start="00:10:27.089" video="mainVideo" id=subtitle]]
+[[!template text="history, I see all the" start="00:10:28.959" video="mainVideo" id=subtitle]]
+[[!template text="histories here, but if you want more" start="00:10:30.480" video="mainVideo" id=subtitle]]
+[[!template text="privacy, you don't want that to be" start="00:10:32.079" video="mainVideo" id=subtitle]]
+[[!template text="available at all. You can turn it off" start="00:10:33.680" video="mainVideo" id=subtitle]]
+[[!template text="easily with eaf-setq," start="00:10:35.360" video="mainVideo" id=subtitle]]
+[[!template text="and set that remember-history to false." start="00:10:37.356" video="mainVideo" id=subtitle]]
+[[!template text="You can also set your default search" start="00:10:40.640" video="mainVideo" id=subtitle]]
+[[!template text="engine." start="00:10:42.399" video="mainVideo" id=subtitle]]
+[[!template text="Right now we have Google, although" start="00:10:43.839" video="mainVideo" id=subtitle]]
+[[!template text="not really good but… Google and also" start="00:10:47.200" video="mainVideo" id=subtitle]]
+[[!template text="DuckDuckGo which is a better search engine," start="00:10:50.480" video="mainVideo" id=subtitle]]
+[[!template text="well, yeah, ethically better search" start="00:10:53.600" video="mainVideo" id=subtitle]]
+[[!template text="engine." start="00:10:57.360" video="mainVideo" id=subtitle]]
+[[!template text="So, you can also configure" start="00:10:59.360" video="mainVideo" id=subtitle]]
+[[!template text="the zoom. The default zoom of your" start="00:11:02.560" video="mainVideo" id=subtitle]]
+[[!template text="browser is 1.0, you can convert" start="00:11:05.040" video="mainVideo" id=subtitle]]
+[[!template text="default-zoom to 1.25, so when" start="00:11:07.600" video="mainVideo" id=subtitle]]
+[[!template text="you open any web page, it will be" start="00:11:10.000" video="mainVideo" id=subtitle]]
+[[!template text="zoomed by default. You can" start="00:11:11.920" video="mainVideo" id=subtitle]]
+[[!template text="also disable JavaScript, although I" start="00:11:17.360" video="mainVideo" id=subtitle]]
+[[!template text="personally don't really suggest you to" start="00:11:20.399" video="mainVideo" id=subtitle]]
+[[!template text="do, because it will" start="00:11:22.240" video="mainVideo" id=subtitle]]
+[[!template text="basically break a lot of our features," start="00:11:23.440" video="mainVideo" id=subtitle]]
+[[!template text="because a lot of the browser" start="00:11:26.240" video="mainVideo" id=subtitle]]
+[[!template text="related features" start="00:11:28.480" video="mainVideo" id=subtitle]]
+[[!template text="must be implemented using JavaScript," start="00:11:29.519" video="mainVideo" id=subtitle]]
+[[!template text="but yeah, you can do it if you really" start="00:11:33.760" video="mainVideo" id=subtitle]]
+[[!template text="want to. And there's also some" start="00:11:35.440" video="mainVideo" id=subtitle]]
+[[!template text="customization on EAF Camera" start="00:11:37.920" video="mainVideo" id=subtitle]]
+[[!template text="you can do as well." start="00:11:41.519" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Let's move on to EAF PDF Viewer." start="00:11:47.760" video="mainVideo" id=subtitle]]
+[[!template text="Now, let's open" start="00:11:52.399" video="mainVideo" id=subtitle]]
+[[!template text="the PDF file using EAF." start="00:11:56.079" video="mainVideo" id=subtitle]]
+[[!template text="So, that's one something already here, but" start="00:11:59.440" video="mainVideo" id=subtitle]]
+[[!template text="let's open it here." start="00:12:01.519" video="mainVideo" id=subtitle]]
+[[!template text="So, eaf-open, and" start="00:12:02.720" video="mainVideo" id=subtitle]]
+[[!template text="select &quot;Introduction to Programming in" start="00:12:06.079" video="mainVideo" id=subtitle]]
+[[!template text="Emacs Lisp&quot;." start="00:12:08.160" video="mainVideo" id=subtitle]]
+[[!template text="I have it already open, but it's okay." start="00:12:11.440" video="mainVideo" id=subtitle]]
+[[!template text="So, you have the file," start="00:12:13.760" video="mainVideo" id=subtitle]]
+[[!template text="you have other files displayed…" start="00:12:17.040" video="mainVideo" id=subtitle]]
+[[!template text="you have all the pages display, sorry." start="00:12:20.160" video="mainVideo" id=subtitle]]
+[[!template text="There are 273 pages in total, but notice" start="00:12:23.200" video="mainVideo" id=subtitle]]
+[[!template text="how fast it is to browse" start="00:12:27.040" video="mainVideo" id=subtitle]]
+[[!template text="all the pages, it is blazingly fast," start="00:12:29.279" video="mainVideo" id=subtitle]]
+[[!template text="that's all thanks to Python and" start="00:12:31.440" video="mainVideo" id=subtitle]]
+[[!template text="MuPDF which you don't really get from" start="00:12:33.519" video="mainVideo" id=subtitle]]
+[[!template text="Emacs Lisp." start="00:12:37.040" video="mainVideo" id=subtitle]]
+[[!template text="So, let's say if I want to jump to page" start="00:12:40.880" video="mainVideo" id=subtitle]]
+[[!template text="50." start="00:12:43.600" video="mainVideo" id=subtitle]]
+[[!template text="We press p and Enter 50." start="00:12:44.079" video="mainVideo" id=subtitle]]
+[[!template text="And here we are, we are at page 50." start="00:12:48.639" video="mainVideo" id=subtitle]]
+[[!template text="You can look at the lower right to" start="00:12:53.279" video="mainVideo" id=subtitle]]
+[[!template text="verify the page you're on." start="00:12:55.440" video="mainVideo" id=subtitle]]
+[[!template text="You can use i to toggle dark mode" start="00:12:58.880" video="mainVideo" id=subtitle]]
+[[!template text="as expected. Let's say you want to" start="00:13:05.120" video="mainVideo" id=subtitle]]
+[[!template text="find" start="00:13:07.839" video="mainVideo" id=subtitle]]
+[[!template text="table of contents, so use Control s —" start="00:13:08.240" video="mainVideo" id=subtitle]]
+[[!template text="the Emacs default binding for I-search," start="00:13:11.519" video="mainVideo" id=subtitle]]
+[[!template text="and search for a &quot;table of contents&quot;," start="00:13:15.680" video="mainVideo" id=subtitle]]
+[[!template text="here we are, it is highlighted for you," start="00:13:19.360" video="mainVideo" id=subtitle]]
+[[!template text="and you can Control s for more but" start="00:13:21.680" video="mainVideo" id=subtitle]]
+[[!template text="there's only one match," start="00:13:23.120" video="mainVideo" id=subtitle]]
+[[!template text="you (press) Control g (C-g) to" start="00:13:26.006" video="mainVideo" id=subtitle]]
+[[!template text="disable the highlight," start="00:13:27.200" video="mainVideo" id=subtitle]]
+[[!template text="and you see a lot of options for you to" start="00:13:28.800" video="mainVideo" id=subtitle]]
+[[!template text="go." start="00:13:30.880" video="mainVideo" id=subtitle]]
+[[!template text="Okay. Let's say, if you want to go to the" start="00:13:32.320" video="mainVideo" id=subtitle]]
+[[!template text="preface." start="00:13:35.040" video="mainVideo" id=subtitle]]
+[[!template text="That is, you press f which is" start="00:13:36.240" video="mainVideo" id=subtitle]]
+[[!template text="also similar to" start="00:13:39.519" video="mainVideo" id=subtitle]]
+[[!template text="EAF browser, you press f for Vimium," start="00:13:40.639" video="mainVideo" id=subtitle]]
+[[!template text="and you see the marker, now change to wn," start="00:13:44.240" video="mainVideo" id=subtitle]]
+[[!template text="press wn, and then you can go to the" start="00:13:47.760" video="mainVideo" id=subtitle]]
+[[!template text="preface." start="00:13:50.160" video="mainVideo" id=subtitle]]
+[[!template text="Now, we are at the preface." start="00:13:51.279" video="mainVideo" id=subtitle]]
+[[!template text="So, now you finish reading, you want to" start="00:13:54.320" video="mainVideo" id=subtitle]]
+[[!template text="save your progress?" start="00:13:56.480" video="mainVideo" id=subtitle]]
+[[!template text="No worries, it is already saved for you" start="00:13:57.600" video="mainVideo" id=subtitle]]
+[[!template text="by EAF. You can safely" start="00:13:59.440" video="mainVideo" id=subtitle]]
+[[!template text="close the document using x," start="00:14:01.199" video="mainVideo" id=subtitle]]
+[[!template text="and opening again, eaf-open," start="00:14:04.240" video="mainVideo" id=subtitle]]
+[[!template text="and the file…, see you are at" start="00:14:07.519" video="mainVideo" id=subtitle]]
+[[!template text="preface again. You're right at where" start="00:14:10.560" video="mainVideo" id=subtitle]]
+[[!template text="you left of." start="00:14:14.000" video="mainVideo" id=subtitle]]
+[[!template new="1" text="You can also use M-x org-store-link, or" start="00:14:16.560" video="mainVideo" id=subtitle]]
+[[!template text="Control c l (C-c l) —" start="00:14:19.440" video="mainVideo" id=subtitle]]
+[[!template text="which I prefer, if you want to save a" start="00:14:20.480" video="mainVideo" id=subtitle]]
+[[!template text="particular page in" start="00:14:23.279" video="mainVideo" id=subtitle]]
+[[!template text="a Org mode file. Now," start="00:14:24.480" video="mainVideo" id=subtitle]]
+[[!template text="I go back to my presentation doc, I don't" start="00:14:28.240" video="mainVideo" id=subtitle]]
+[[!template text="need this anymore." start="00:14:30.320" video="mainVideo" id=subtitle]]
+[[!template text="So, you just (press) Control c Control l (C-c C-l)," start="00:14:31.760" video="mainVideo" id=subtitle]]
+[[!template text="or I think M-x org-insert-link." start="00:14:35.600" video="mainVideo" id=subtitle]]
+[[!template text="You can find the file right here, and" start="00:14:39.120" video="mainVideo" id=subtitle]]
+[[!template text="you press Enter (RET)," start="00:14:41.040" video="mainVideo" id=subtitle]]
+[[!template text="and you press Enter (RET) for the description" start="00:14:42.399" video="mainVideo" id=subtitle]]
+[[!template text="again, and now it's right here," start="00:14:44.320" video="mainVideo" id=subtitle]]
+[[!template text="and Control c Control o (C-c C-o) to open it. Voilà!" start="00:14:46.480" video="mainVideo" id=subtitle]]
+[[!template text="You're back." start="00:14:50.720" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Let's now demonstrate the EAF Video" start="00:14:54.000" video="mainVideo" id=subtitle]]
+[[!template text="Player." start="00:14:57.120" video="mainVideo" id=subtitle]]
+[[!template text="So, M-x eaf-open, you use eaf-open whenever" start="00:14:58.880" video="mainVideo" id=subtitle]]
+[[!template text="you want to" start="00:15:02.639" video="mainVideo" id=subtitle]]
+[[!template text="open some file. You use eaf-open-browser" start="00:15:03.279" video="mainVideo" id=subtitle]]
+[[!template text="if you want to use some" start="00:15:06.079" video="mainVideo" id=subtitle]]
+[[!template text="actual application that's not really" start="00:15:07.279" video="mainVideo" id=subtitle]]
+[[!template text="related to a file." start="00:15:09.920" video="mainVideo" id=subtitle]]
+[[!template text="So, eaf-open, and select the video" start="00:15:11.199" video="mainVideo" id=subtitle]]
+[[!template text="you want, so," start="00:15:14.800" video="mainVideo" id=subtitle]]
+[[!template text="video-demo, I already have a video" start="00:15:15.600" video="mainVideo" id=subtitle]]
+[[!template text="demo" start="00:15:18.320" video="mainVideo" id=subtitle]]
+[[!template text="ready, because I recorded a video of" start="00:15:19.040" video="mainVideo" id=subtitle]]
+[[!template text="the demo" start="00:15:21.839" video="mainVideo" id=subtitle]]
+[[!template text="of the EAF Camera, have a look." start="00:15:22.720" video="mainVideo" id=subtitle]]
+[[!template text="Let's move to the beginning, &quot;Hello people" start="00:15:26.000" video="mainVideo" id=subtitle]]
+[[!template text="from the future!" start="00:15:28.079" video="mainVideo" id=subtitle]]
+[[!template text="This is a demo of the EAF Video Player" start="00:15:29.279" video="mainVideo" id=subtitle]]
+[[!template text="that demos the EAF Camera feature," start="00:15:32.399" video="mainVideo" id=subtitle]]
+[[!template text="so, as you can see on the screen of me" start="00:15:35.199" video="mainVideo" id=subtitle]]
+[[!template text="inside my camera," start="00:15:37.440" video="mainVideo" id=subtitle]]
+[[!template text="and the screen is actually with all" start="00:15:38.639" video="mainVideo" id=subtitle]]
+[[!template text="within Emacs." start="00:15:40.959" video="mainVideo" id=subtitle]]
+[[!template text="(Right, the video itself is as well, haha.)" start="00:15:42.880" video="mainVideo" id=subtitle]]
+[[!template text="You can open this" start="00:15:45.273" video="mainVideo" id=subtitle]]
+[[!template text="using eaf-open-camera" start="00:15:46.079" video="mainVideo" id=subtitle]]
+[[!template text="which I'm already into, and you can" start="00:15:49.839" video="mainVideo" id=subtitle]]
+[[!template text="press" start="00:15:53.040" video="mainVideo" id=subtitle]]
+[[!template text="p to capture a photo," start="00:15:53.600" video="mainVideo" id=subtitle]]
+[[!template text="so, the photo is by default stored at" start="00:15:56.720" video="mainVideo" id=subtitle]]
+[[!template text="your $HOME/Downloads directory," start="00:15:59.680" video="mainVideo" id=subtitle]]
+[[!template text="and you can modify it" start="00:16:02.773" video="mainVideo" id=subtitle]]
+[[!template text="freely. If you go here, and you can see" start="00:16:04.320" video="mainVideo" id=subtitle]]
+[[!template text="the camera stored" start="00:16:07.839" video="mainVideo" id=subtitle]]
+[[!template text="right here.&quot;" start="00:16:09.519" video="mainVideo" id=subtitle]]
+[[!template text="So, you press Space (SPC) to pause, what I used" start="00:16:13.759" video="mainVideo" id=subtitle]]
+[[!template text="here is" start="00:16:16.240" video="mainVideo" id=subtitle]]
+[[!template text="the eaf-open-this-from-dired." start="00:16:17.120" video="mainVideo" id=subtitle]]
+[[!template text="Basically, in dired" start="00:16:20.320" video="mainVideo" id=subtitle]]
+[[!template text="you select" start="00:16:22.959" video="mainVideo" id=subtitle]]
+[[!template text="the file that should be opened by" start="00:16:23.839" video="mainVideo" id=subtitle]]
+[[!template text="EAF, and I used that. It detects that" start="00:16:26.959" video="mainVideo" id=subtitle]]
+[[!template text="it wants to use the EAF Image Viewer, so" start="00:16:30.320" video="mainVideo" id=subtitle]]
+[[!template text="I accidentally tested EAF Image Viewer" start="00:16:32.720" video="mainVideo" id=subtitle]]
+[[!template text="before I noticed. That gives the" start="00:16:35.839" video="mainVideo" id=subtitle]]
+[[!template text="image of the photo I just took" start="00:16:40.240" video="mainVideo" id=subtitle]]
+[[!template text="using EAF Camera. As you can see, you" start="00:16:43.680" video="mainVideo" id=subtitle]]
+[[!template text="can" start="00:16:47.040" video="mainVideo" id=subtitle]]
+[[!template text="use hl — the Vim binding to navigate" start="00:16:47.360" video="mainVideo" id=subtitle]]
+[[!template text="in the timestamp in the video," start="00:16:50.720" video="mainVideo" id=subtitle]]
+[[!template text="and I can use" start="00:16:53.256" video="mainVideo" id=subtitle]]
+[[!template text="jk to change the volumes of the video." start="00:16:55.920" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Alright. Now, you've seen all the basic" start="00:17:02.320" video="mainVideo" id=subtitle]]
+[[!template text="usages" start="00:17:05.520" video="mainVideo" id=subtitle]]
+[[!template text="of the EAF project, it comes the question" start="00:17:06.160" video="mainVideo" id=subtitle]]
+[[!template text="of what is the magic behind it." start="00:17:08.720" video="mainVideo" id=subtitle]]
+[[!template text="All right. Let's open the hacking page in" start="00:17:11.600" video="mainVideo" id=subtitle]]
+[[!template text="the wiki," start="00:17:14.559" video="mainVideo" id=subtitle]]
+[[!template text="the design is laid out in a diagram here." start="00:17:15.919" video="mainVideo" id=subtitle]]
+[[!template text="Let's put it" start="00:17:20.400" video="mainVideo" id=subtitle]]
+[[!template text="side by side along with my text, so" start="00:17:25.120" video="mainVideo" id=subtitle]]
+[[!template text="we can follow through." start="00:17:27.839" video="mainVideo" id=subtitle]]
+[[!template text="Right, okay. Let me…," start="00:17:32.320" video="mainVideo" id=subtitle]]
+[[!template text="sorry, let me drink some water." start="00:17:36.080" video="mainVideo" id=subtitle]]
+[[!template text="This page in the wiki went into a lot" start="00:17:42.320" video="mainVideo" id=subtitle]]
+[[!template text="of detail," start="00:17:46.000" video="mainVideo" id=subtitle]]
+[[!template text="due to the time constraint I will just" start="00:17:48.160" video="mainVideo" id=subtitle]]
+[[!template text="rephrase some of the ideas here, so for" start="00:17:49.520" video="mainVideo" id=subtitle]]
+[[!template text="anyone interested, please have a look at" start="00:17:51.679" video="mainVideo" id=subtitle]]
+[[!template text="the wiki yourself." start="00:17:53.520" video="mainVideo" id=subtitle]]
+[[!template text="The easiest way to think about EAF is" start="00:17:55.600" video="mainVideo" id=subtitle]]
+[[!template text="that" start="00:17:58.160" video="mainVideo" id=subtitle]]
+[[!template text="the actual GUI application is started in" start="00:17:58.720" video="mainVideo" id=subtitle]]
+[[!template text="the background," start="00:18:01.679" video="mainVideo" id=subtitle]]
+[[!template text="then the frame of the application is" start="00:18:02.960" video="mainVideo" id=subtitle]]
+[[!template text="attached to the appropriate location on" start="00:18:04.960" video="mainVideo" id=subtitle]]
+[[!template text="the" start="00:18:07.120" video="mainVideo" id=subtitle]]
+[[!template text="Emacs window. So," start="00:18:07.679" video="mainVideo" id=subtitle]]
+[[!template text="EAF linked Qt5 with Emacs using" start="00:18:10.720" video="mainVideo" id=subtitle]]
+[[!template text="Elisp and Python." start="00:18:13.440" video="mainVideo" id=subtitle]]
+[[!template text="On the Python side which is colored" start="00:18:14.960" video="mainVideo" id=subtitle]]
+[[!template text="yellow in the image," start="00:18:17.120" video="mainVideo" id=subtitle]]
+[[!template text="we have QGraphicsView and" start="00:18:18.640" video="mainVideo" id=subtitle]]
+[[!template text="QGraphicsScene objects." start="00:18:20.439" video="mainVideo" id=subtitle]]
+[[!template text="These are used to simulate the Emacs" start="00:18:22.960" video="mainVideo" id=subtitle]]
+[[!template text="window buffer design" start="00:18:25.039" video="mainVideo" id=subtitle]]
+[[!template text="where QGraphicsScene is similar to" start="00:18:26.640" video="mainVideo" id=subtitle]]
+[[!template text="buffers in Emacs," start="00:18:28.640" video="mainVideo" id=subtitle]]
+[[!template text="it controls the state and the content" start="00:18:29.840" video="mainVideo" id=subtitle]]
+[[!template text="details of the application" start="00:18:31.840" video="mainVideo" id=subtitle]]
+[[!template text="where QGraphicsView is similar to Emacs" start="00:18:34.240" video="mainVideo" id=subtitle]]
+[[!template text="window. It populates the buffer" start="00:18:41.200" video="mainVideo" id=subtitle]]
+[[!template text="(QGraphicsScene) to the foreground at" start="00:18:43.200" video="mainVideo" id=subtitle]]
+[[!template text="the appropriate" start="00:18:45.919" video="mainVideo" id=subtitle]]
+[[!template text="position." start="00:18:46.960" video="mainVideo" id=subtitle]]
+[[!template text="Whenever an EAF mode buffer" start="00:18:48.573" video="mainVideo" id=subtitle]]
+[[!template text="brings to a background…." start="00:18:50.320" video="mainVideo" id=subtitle]]
+[[!template text="Whenever an EAF mode buffer brings to the" start="00:18:57.679" video="mainVideo" id=subtitle]]
+[[!template text="foreground, sorry," start="00:18:59.679" video="mainVideo" id=subtitle]]
+[[!template text="a QGraphicsView instance is" start="00:19:00.880" video="mainVideo" id=subtitle]]
+[[!template text="created, and whenever the buffer goes to" start="00:19:02.559" video="mainVideo" id=subtitle]]
+[[!template text="the background" start="00:19:05.120" video="mainVideo" id=subtitle]]
+[[!template text="the QGraphicsView instance is then" start="00:19:06.080" video="mainVideo" id=subtitle]]
+[[!template text="deleted," start="00:19:08.000" video="mainVideo" id=subtitle]]
+[[!template text="while QGraphicsScene — the actual" start="00:19:09.120" video="mainVideo" id=subtitle]]
+[[!template text="process — remains running in the" start="00:19:10.960" video="mainVideo" id=subtitle]]
+[[!template text="background until the EAF mode buffer is" start="00:19:12.480" video="mainVideo" id=subtitle]]
+[[!template text="killed." start="00:19:14.480" video="mainVideo" id=subtitle]]
+[[!template text="GPU compositing is used to ensure that" start="00:19:16.000" video="mainVideo" id=subtitle]]
+[[!template text="QGraphicsView and" start="00:19:18.320" video="mainVideo" id=subtitle]]
+[[!template text="QGraphicsScene is synchronized real time." start="00:19:19.440" video="mainVideo" id=subtitle]]
+[[!template text="Using QWindow::setParent function" start="00:19:21.840" video="mainVideo" id=subtitle]]
+[[!template text="the QGraphicsView is attached to the" start="00:19:24.000" video="mainVideo" id=subtitle]]
+[[!template text="appropriate location on the Emacs frame," start="00:19:25.679" video="mainVideo" id=subtitle]]
+[[!template text="so that although GUI applications are" start="00:19:27.840" video="mainVideo" id=subtitle]]
+[[!template text="not running within Emacs," start="00:19:30.640" video="mainVideo" id=subtitle]]
+[[!template text="they look as if they were." start="00:19:32.400" video="mainVideo" id=subtitle]]
+[[!template text="When user types on the keyboard it is" start="00:19:36.160" video="mainVideo" id=subtitle]]
+[[!template text="first received by the Emacs" start="00:19:39.039" video="mainVideo" id=subtitle]]
+[[!template text="EAF mode buffer, and then Elisp sends" start="00:19:41.039" video="mainVideo" id=subtitle]]
+[[!template text="the event to QGraphicsScene using" start="00:19:43.520" video="mainVideo" id=subtitle]]
+[[!template text="D-Bus." start="00:19:45.360" video="mainVideo" id=subtitle]]
+[[!template text="When user clicks on the GUI application" start="00:19:46.240" video="mainVideo" id=subtitle]]
+[[!template text="it is received by the QGraphicsView" start="00:19:48.720" video="mainVideo" id=subtitle]]
+[[!template text="and processed in Python. Elisp can" start="00:19:50.799" video="mainVideo" id=subtitle]]
+[[!template text="communicate with Python through D-Bus," start="00:19:53.280" video="mainVideo" id=subtitle]]
+[[!template text="in other words you can" start="00:19:55.200" video="mainVideo" id=subtitle]]
+[[!template text="customize and extend Emacs not just" start="00:19:59.200" video="mainVideo" id=subtitle]]
+[[!template text="using" start="00:20:01.360" video="mainVideo" id=subtitle]]
+[[!template text="Elisp, and now you can use Python, this way" start="00:20:01.760" video="mainVideo" id=subtitle]]
+[[!template text="one can leverage" start="00:20:04.480" video="mainVideo" id=subtitle]]
+[[!template text="all the Python properties like" start="00:20:05.360" video="mainVideo" id=subtitle]]
+[[!template text="multi-threading or some other stuff," start="00:20:07.039" video="mainVideo" id=subtitle]]
+[[!template text="the entire Python ecosystem can be" start="00:20:09.600" video="mainVideo" id=subtitle]]
+[[!template text="utilized as well," start="00:20:11.679" video="mainVideo" id=subtitle]]
+[[!template text="such as the Qt web engine that is the" start="00:20:13.520" video="mainVideo" id=subtitle]]
+[[!template text="basis for" start="00:20:16.159" video="mainVideo" id=subtitle]]
+[[!template text="our EAF Browser, and PyMuPDF is the" start="00:20:16.960" video="mainVideo" id=subtitle]]
+[[!template text="basis for the EAF PDF Viewer." start="00:20:20.640" video="mainVideo" id=subtitle]]
+[[!template text="This really opens the window to many" start="00:20:23.360" video="mainVideo" id=subtitle]]
+[[!template text="many new possibilities to extend Emacs" start="00:20:25.840" video="mainVideo" id=subtitle]]
+[[!template text="using EAF." start="00:20:28.240" video="mainVideo" id=subtitle]]
+[[!template new="1" text="All right, back here. We are always" start="00:20:32.720" video="mainVideo" id=subtitle]]
+[[!template text="looking for people to join the" start="00:20:36.080" video="mainVideo" id=subtitle]]
+[[!template text="development, there are many many" start="00:20:37.760" video="mainVideo" id=subtitle]]
+[[!template text="more work that needs to be done," start="00:20:39.679" video="mainVideo" id=subtitle]]
+[[!template text="such as testing and debug EAF on" start="00:20:42.720" video="mainVideo" id=subtitle]]
+[[!template text="more Linux distros and window managers" start="00:20:44.640" video="mainVideo" id=subtitle]]
+[[!template text="such as i3" start="00:20:46.640" video="mainVideo" id=subtitle]]
+[[!template text="and stuff, you can also add new EAF" start="00:20:47.760" video="mainVideo" id=subtitle]]
+[[!template text="applications," start="00:20:51.200" video="mainVideo" id=subtitle]]
+[[!template text="or debug and enhance existing EAF" start="00:20:52.080" video="mainVideo" id=subtitle]]
+[[!template text="applications," start="00:20:54.240" video="mainVideo" id=subtitle]]
+[[!template text="or you can port EAF to native Wayland" start="00:20:55.440" video="mainVideo" id=subtitle]]
+[[!template text="which I just discussed with" start="00:20:58.000" video="mainVideo" id=subtitle]]
+[[!template text="the emacs-webkit author" start="00:21:00.240" video="mainVideo" id=subtitle]]
+[[!template text="Akira Kyle, and he told me that" start="00:21:03.840" video="mainVideo" id=subtitle]]
+[[!template text="EAF doesn't really work on" start="00:21:07.919" video="mainVideo" id=subtitle]]
+[[!template text="native Wayland, because it uses" start="00:21:11.200" video="mainVideo" id=subtitle]]
+[[!template text="XWayland, so it doesn't work on the pgtk" start="00:21:14.320" video="mainVideo" id=subtitle]]
+[[!template text="port of Emacs." start="00:21:16.799" video="mainVideo" id=subtitle]]
+[[!template text="And we also need people to port EAF to" start="00:21:18.159" video="mainVideo" id=subtitle]]
+[[!template text="non-free operating systems" start="00:21:20.559" video="mainVideo" id=subtitle]]
+[[!template text="including Windows and macOS," start="00:21:22.080" video="mainVideo" id=subtitle]]
+[[!template text="and that's because, like, D-Bus is a Linux" start="00:21:25.600" video="mainVideo" id=subtitle]]
+[[!template text="specific feature, so it doesn't really" start="00:21:28.480" video="mainVideo" id=subtitle]]
+[[!template text="work on other platform." start="00:21:30.080" video="mainVideo" id=subtitle]]
+[[!template text="We need to check, replace it with some" start="00:21:31.360" video="mainVideo" id=subtitle]]
+[[!template text="alternative, and" start="00:21:33.039" video="mainVideo" id=subtitle]]
+[[!template text="QGraphicsScene somehow doesn't really" start="00:21:34.640" video="mainVideo" id=subtitle]]
+[[!template text="work on macOS," start="00:21:36.720" video="mainVideo" id=subtitle]]
+[[!template text="and there are many other to-do lists" start="00:21:38.640" video="mainVideo" id=subtitle]]
+[[!template text="available, so please have a look" start="00:21:40.320" video="mainVideo" id=subtitle]]
+[[!template text="and see if there is anything you want to" start="00:21:42.880" video="mainVideo" id=subtitle]]
+[[!template text="work on." start="00:21:45.039" video="mainVideo" id=subtitle]]
+[[!template text="All right. So, since this is a" start="00:21:46.640" video="mainVideo" id=subtitle]]
+[[!template text="pre-recorded talk I won't be able to do" start="00:21:49.039" video="mainVideo" id=subtitle]]
+[[!template text="the Q & A real time in the video." start="00:21:51.120" video="mainVideo" id=subtitle]]
+[[!template text="However, I will be around on the" start="00:21:53.520" video="mainVideo" id=subtitle]]
+[[!template text="collaborative pad" start="00:21:56.080" video="mainVideo" id=subtitle]]
+[[!template text="and the IRC #emacsconf," start="00:21:57.200" video="mainVideo" id=subtitle]]
+[[!template text="#emacsconf-questions" start="00:22:00.239" video="mainVideo" id=subtitle]]
+[[!template text="to answer any questions when it pops up," start="00:22:01.360" video="mainVideo" id=subtitle]]
+[[!template text="and you can also submit an issue" start="00:22:04.139" video="mainVideo" id=subtitle]]
+[[!template text="on the repo, and you can check the wiki" start="00:22:05.760" video="mainVideo" id=subtitle]]
+[[!template text="for some other guides and tricks." start="00:22:09.120" video="mainVideo" id=subtitle]]
+[[!template text="All right. Thank you guys, and hopefully" start="00:22:12.640" video="mainVideo" id=subtitle]]
+[[!template text="you find" start="00:22:15.039" video="mainVideo" id=subtitle]]
+[[!template text="this EAF project very interesting, and" start="00:22:16.000" video="mainVideo" id=subtitle]]
+[[!template text="enjoy the rest of EmacsConf 2020." start="00:22:18.320" video="mainVideo" id=subtitle]]
diff --git a/2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt b/2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng.vtt
index d9a406f9..ca4ae9ea 100644
--- a/2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt
+++ b/2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng.vtt
@@ -1,13 +1,13 @@
WEBVTT
00:00:03.600 --> 00:00:04.560
-hello
+Hello.
00:00:04.560 --> 00:00:06.720
-hopefully everyone is staying safe and
+Hopefully everyone is staying safe and
00:00:06.720 --> 00:00:08.000
-staying home
+staying home,
00:00:08.000 --> 00:00:10.000
I feel very grateful to live in a world
@@ -19,124 +19,124 @@ today that technology and free software
can be leveraged to connect people in
00:00:13.759 --> 00:00:16.080
-such disconnected and difficult times
+such disconnected and difficult times,
00:00:16.080 --> 00:00:17.840
and to have an online conference like
00:00:17.840 --> 00:00:19.920
-this hopefully you've all
+this. Hopefully you've all
00:00:19.920 --> 00:00:22.960
-enjoyed this year's Emacs con so far
+enjoyed this year's EmacsConf so far.
00:00:22.960 --> 00:00:24.720
-many thanks to all the people that made
+Many thanks to all the people that made
00:00:24.720 --> 00:00:26.880
-this possible
+this possible.
00:00:26.880 --> 00:00:30.000
-anyways welcome to my talk extend Emacs
+Anyways, welcome to my talk "Extend Emacs
00:00:30.000 --> 00:00:30.960
-to modern gui
+to Modern GUI
00:00:30.960 --> 00:00:34.079
-applications with eaf the imax
+Applications with EAF, the Emacs
00:00:34.079 --> 00:00:35.920
-application framework
+Application Framework".
00:00:35.920 --> 00:00:38.320
-this will be my first ever talk so
+This will be my first ever talk, so
00:00:38.320 --> 00:00:39.840
apologies for my
00:00:39.840 --> 00:00:43.280
-inexperience let us begin
+inexperience, let us begin.
00:00:43.280 --> 00:00:46.559
-about me my name is matthew zing you can
+About me: my name is Matthew Zeng, you can
00:00:46.559 --> 00:00:47.840
-also call me mt
+also call me MT
00:00:47.840 --> 00:00:50.640
-or mindu I'm a chinese canadian living
+or Mingde. I'm a Chinese Canadian living
00:00:50.640 --> 00:00:51.440
-in toronto
+in Toronto,
00:00:51.440 --> 00:00:54.239
-ontario offline I'm an undergrad
+Ontario. Offline: I'm an undergrad
00:00:54.239 --> 00:00:56.079
-studying mathematics at the university
+studying mathematics at the University
00:00:56.079 --> 00:00:57.760
-of urudu
+of Waterloo.
00:00:57.760 --> 00:01:00.480
-online I mean one of the admins of the
+Online: I'm one of the admins of the
00:01:00.480 --> 00:01:03.039
-Emacs china
+Emacs China
00:01:03.039 --> 00:01:06.320
-the largest Emacs forum in china so
+— the largest Emacs forum in China. So,
00:01:06.320 --> 00:01:08.080
-to all chinese listen to my talk right
+to all Chinese listening to my talk right
00:01:08.080 --> 00:01:10.960
-now feel free to check it out
+now, feel free to check it out.
00:01:10.960 --> 00:01:14.320
-and this is a link to my github profile
+And this is a link to my GitHub profile,
-00:01:14.320 --> 00:01:17.280
-to my projects I'm involving one's me
+00:01:14.320 --> 00:01:16.206
+(and) to my projects I'm involved in.
-00:01:17.280 --> 00:01:18.240
-max which is
+00:01:16.206 --> 00:01:18.240
+One's M-EMACS which is
00:01:18.240 --> 00:01:20.159
-I'm the author of a user-friendly
+I'm the author of — a user-friendly
00:01:20.159 --> 00:01:21.840
-full-featured image configuration
+full-featured Emacs configuration
00:01:21.840 --> 00:01:22.799
-distribution
+distribution,
00:01:22.799 --> 00:01:25.040
-it is what I'm using right now as well
+it is what I'm using right now, as well
00:01:25.040 --> 00:01:26.880
-as the imax application filter
+as the Emacs Application Framework
00:01:26.880 --> 00:01:29.119
which I help to maintain along with the
00:01:29.119 --> 00:01:30.400
-other other
+other author
00:01:30.400 --> 00:01:33.040
-lazy cat which of course is today's
+lazycat, which of course, is today's
00:01:33.040 --> 00:01:35.759
-topic
+topic.
00:01:35.759 --> 00:01:38.720
-so as you might all might have already
+So, as you all might have already
00:01:38.720 --> 00:01:40.960
noticed I'm currently using Emacs
00:01:40.960 --> 00:01:43.600
-and oh and opening navigating closing
+and opening navigating closing
00:01:43.600 --> 00:01:45.360
all these websites that are rendered
@@ -145,19 +145,19 @@ all these websites that are rendered
properly
00:01:46.159 --> 00:01:49.200
-or within Emacs it's all thanks to the
+all within Emacs, it's all thanks to the
00:01:49.200 --> 00:01:51.840
-ef project
+EAF project.
00:01:51.840 --> 00:01:54.000
-so we're living in a society that's
+So, we're living in a society that's
00:01:54.000 --> 00:01:55.920
heavily dependent on the internet
00:01:55.920 --> 00:01:59.520
-and multimedia it is unavoidable to run
+and multimedia, it is unavoidable to run
00:01:59.520 --> 00:02:01.200
to some occasion that you need to
@@ -166,13 +166,13 @@ to some occasion that you need to
open a fancy website that uses
00:02:02.880 --> 00:02:04.799
-javascript and css
+JavaScript and CSS,
00:02:04.799 --> 00:02:08.239
-or you need to watch some videos however
+or you need to watch some videos. However,
00:02:08.239 --> 00:02:11.120
-due to the nature and history of Emacs
+due to the nature and history of Emacs,
00:02:11.120 --> 00:02:11.840
it cannot
@@ -181,19 +181,19 @@ it cannot
render all these modern graphics
00:02:13.840 --> 00:02:16.400
-effectively and efficiently
+effectively and efficiently.
00:02:16.400 --> 00:02:19.360
Emacs is solely a text-based editing
00:02:19.360 --> 00:02:20.400
-environment
+environment,
00:02:20.400 --> 00:02:23.520
-and I argue that this is not a bad thing
+and I argue that this is not a bad thing,
00:02:23.520 --> 00:02:25.680
-in fact it is one of the reasons that me
+in fact, it is one of the reasons that me
00:02:25.680 --> 00:02:27.760
and I believe many of you as well
@@ -202,28 +202,28 @@ and I believe many of you as well
are attracted to Emacs in the first
00:02:29.760 --> 00:02:30.879
-place
+place.
00:02:30.879 --> 00:02:33.760
-unfortunately this results in us having
+Unfortunately, this results in us having
00:02:33.760 --> 00:02:35.680
to open a dedicated web browser to
00:02:35.680 --> 00:02:37.040
-browse the internet
+browse the internet,
00:02:37.040 --> 00:02:38.879
open a dedicated video player to watch
00:02:38.879 --> 00:02:41.440
-some videos or a pdf render to read some
+some videos, or a PDF renderer to read some
00:02:41.440 --> 00:02:42.640
-documents
+documents.
00:02:42.640 --> 00:02:45.200
-so far ems cannot do all these tasks on
+So far Emacs cannot do all these tasks on
00:02:45.200 --> 00:02:46.000
its own
@@ -232,40 +232,40 @@ its own
but can only be achieved using other
00:02:48.080 --> 00:02:51.519
-external applications
+external applications.
00:02:51.519 --> 00:02:55.840
-so the other the author manatee lazy cat
+So, the other author manateelazycat,
00:02:55.840 --> 00:02:58.640
-or lazy cat in short didn't want to use
+or lazycat in short, didn't want to use
00:02:58.640 --> 00:03:00.560
-all these external applications
+all these external applications,
00:03:00.560 --> 00:03:03.120
-he wanted to have an uninterrupted e-max
+he wanted to have an uninterrupted Emacs
00:03:03.120 --> 00:03:04.159
-experience
+experience,
00:03:04.159 --> 00:03:07.280
-he wanted to truly live in e-max
+he wanted to truly live in Emacs.
00:03:07.280 --> 00:03:10.080
-however it would be a lot of work to
+However, it would be a lot of work to
00:03:10.080 --> 00:03:11.040
build this
00:03:11.040 --> 00:03:13.519
-modern application from scratch there's
+modern application from scratch, there's
00:03:13.519 --> 00:03:16.239
-simply no time or research to do that
+simply no time or research to do that.
00:03:16.239 --> 00:03:18.800
-so lazy car without utilizing existing
+So, lazycat thought of utilizing existing
00:03:18.800 --> 00:03:20.400
applications
@@ -274,193 +274,193 @@ applications
and to try to make it collaborate with
00:03:22.319 --> 00:03:24.959
-Emacs there are many solutions available
+Emacs, there are many solutions available,
00:03:24.959 --> 00:03:26.000
one of it
00:03:26.000 --> 00:03:28.560
-is the e-max x windows manager and I'm
+is the Emacs X Windows Manager, and I'm
00:03:28.560 --> 00:03:30.159
-sure a lot of you already know that
+sure a lot of you already know that —
00:03:30.159 --> 00:03:33.360
-the exwm however it didn't work for him
+the EXWM. However, it didn't work for him,
00:03:33.360 --> 00:03:35.200
-because although ux doubling opens the
+because although EXWM opens the
00:03:35.200 --> 00:03:37.440
door to use other applications within
00:03:37.440 --> 00:03:38.239
-Emacs
+Emacs,
00:03:38.239 --> 00:03:40.879
it as a fine window manager cannot
00:03:40.879 --> 00:03:41.519
-modify
+modify,
00:03:41.519 --> 00:03:43.920
-customize or extend other software from
+customize, or extend other software from
00:03:43.920 --> 00:03:45.040
-Emacs
+Emacs.
00:03:45.040 --> 00:03:46.799
-for example it cannot modify the
+For example, it cannot modify the
00:03:46.799 --> 00:03:48.480
behavior when you press a key in
00:03:48.480 --> 00:03:49.599
-chromium or
+Chromium or
00:03:49.599 --> 00:03:52.159
-pdf viewer therefore it cannot utilize
+PDF viewer, therefore it cannot utilize
00:03:52.159 --> 00:03:54.000
-the rich emax ecosystem that's been
+the rich Emacs ecosystem that's been
00:03:54.000 --> 00:03:57.360
-growing for almost 40 years
+growing for almost 40 years.
00:03:57.360 --> 00:04:00.720
-on the other hand in the ef browser so
+On the other hand, in the EAF browser, so,
-00:04:00.720 --> 00:04:03.760
-if you mx ef open
+00:04:00.720 --> 00:04:06.206
+if you M-x eaf-open-browser-with-history,
-00:04:03.760 --> 00:04:07.200
-browser with history you can see
+00:04:06.206 --> 00:04:07.200
+you can see
00:04:07.200 --> 00:04:09.840
-on the lower half of my screen a list of
+on the lower half of my screen — a list of
00:04:09.840 --> 00:04:11.920
histories sorted by my personal
00:04:11.920 --> 00:04:14.560
-most visited sites and you can search
+most visited sites, and you can search
00:04:14.560 --> 00:04:16.560
for a site that you've been
00:04:16.560 --> 00:04:19.440
-into or search for some keyword and in a
+to or search for some keyword in a
00:04:19.440 --> 00:04:21.840
-search engine
+search engine.
00:04:21.840 --> 00:04:24.240
-so this is all achieved by utilizing the
+So, this is all achieved by utilizing the
00:04:24.240 --> 00:04:25.919
popular completion framework in the
00:04:25.919 --> 00:04:29.280
-Emacs ecosystem
+Emacs ecosystem — ivy.
00:04:29.280 --> 00:04:31.120
-so this car decided to develop a
+So, lazycat decided to develop a
00:04:31.120 --> 00:04:33.680
-solution of its own in 2018
+solution of his own in 2018,
00:04:33.680 --> 00:04:36.960
-namely the eaf project so I joined the
+namely the EAF project, so, I joined the
-00:04:36.960 --> 00:04:40.840
-development last year
+00:04:36.960 --> 00:04:42.756
+development last year, 2019.
-00:04:40.840 --> 00:04:44.000
-2019 ef is
+00:04:42.756 --> 00:04:44.000
+EAF is
00:04:44.000 --> 00:04:47.880
a highly customizable and extensible
00:04:47.880 --> 00:04:49.759
-reapplication framework that extends
+GUI application framework that extends
-00:04:49.759 --> 00:04:52.160
-imax to graphical capabilities using pi
+00:04:49.759 --> 00:04:52.056
+Emacs to graphical capabilities using
-00:04:52.160 --> 00:04:57.840
-qd5 and it is not a window manager
+00:04:52.056 --> 00:04:57.840
+PyQt5, and it is not a window manager.
00:04:57.840 --> 00:05:02.479
-alright so in the readme you can see a
+Alright. So, in the README, you can see a
00:05:02.479 --> 00:05:03.440
-list of gifs
+list of GIFs
00:05:03.440 --> 00:05:05.600
-showcasing all the available ef
+showcasing all the available EAF
00:05:05.600 --> 00:05:06.720
-applications
+applications,
00:05:06.720 --> 00:05:09.520
-a browser a markdown premier a video
+a browser, a markdown previewer, a video
-00:05:09.520 --> 00:05:10.960
-player
+00:05:09.520 --> 00:05:12.789
+player, a PDF viewer, and more.
-00:05:10.960 --> 00:05:14.240
-a pdf viewer and more today I don't have
+00:05:12.789 --> 00:05:14.240
+Today I don't have
00:05:14.240 --> 00:05:16.160
enough time to demonstrate each one of
00:05:16.160 --> 00:05:16.560
-them
+them,
00:05:16.560 --> 00:05:18.720
but I will select a couple applications
00:05:18.720 --> 00:05:21.120
-to show you
+to show you.
00:05:21.120 --> 00:05:24.240
-so since we are already using ef browser
+So, since we are already using EAF browser,
00:05:24.240 --> 00:05:27.840
-we'll start with this besides using the
+we'll start with this. Besides using the
00:05:27.840 --> 00:05:29.600
-classic control n control p
+classic Control n (C-n), Control p (C-p)
00:05:29.600 --> 00:05:32.000
-you can also use the vim style xjkl to
+you can also use the Vim style hjkl to
00:05:32.000 --> 00:05:33.840
-move up or down
+move up or down.
00:05:33.840 --> 00:05:36.320
-also meta shift comma or g to the
+Also, Meta Shift comma (M-<) or g (moves) to the
00:05:36.320 --> 00:05:37.280
-beginning of page
+beginning of page,
00:05:37.280 --> 00:05:39.120
-when that shift period or capital g to
+Meta Shift period (M->) or capital g (moves) to
00:05:39.120 --> 00:05:41.199
-the end of page
+the end of page.
-00:05:41.199 --> 00:05:44.320
-limiting and surfing keys linear and
+00:05:41.199 --> 00:05:45.306
+Vimium and Surfingkeys
-00:05:44.320 --> 00:05:46.479
-surfing keys are popular keyboard-based
+00:05:45.306 --> 00:05:46.479
+are popular keyboard-based
00:05:46.479 --> 00:05:48.400
-browsing techniques in chrome
+browsing techniques in Chrome,
00:05:48.400 --> 00:05:50.479
-and they've imported here as well you
+and they've imported here as well. You
00:05:50.479 --> 00:05:52.720
can press f to toggle markers pointing
@@ -469,682 +469,658 @@ can press f to toggle markers pointing
to
00:05:53.039 --> 00:05:55.280
-all the links in the current page say I
+all the links in the current page, say, I
00:05:55.280 --> 00:05:56.960
-want to visit the wiki
+want to visit the wiki —
00:05:56.960 --> 00:05:59.680
which comes very very handy when you
00:05:59.680 --> 00:06:02.400
-want to configure ef to your liking
+want to configure EAF to your liking,
00:06:02.400 --> 00:06:04.720
so you see the marker on top of wiki is
00:06:04.720 --> 00:06:05.440
-dd
+dd,
00:06:05.440 --> 00:06:08.479
-press dd and you enter and now
+press dd and Enter (RET), and now
00:06:08.479 --> 00:06:10.240
-you will navigate it to this link so you
+you are navigated to this link, so you
00:06:10.240 --> 00:06:13.840
-don't need to use your mouse at all
+don't need to use your mouse at all.
00:06:13.840 --> 00:06:16.560
-so a full list of key bindings can be
+So, a full list of key bindings can be
00:06:16.560 --> 00:06:17.680
-found when you
+found when you (press)
00:06:17.680 --> 00:06:20.560
-control hm just as any other max major
+Control h m (C-h m), just as any other Emacs major
00:06:20.560 --> 00:06:21.199
-mode
+mode,
00:06:21.199 --> 00:06:22.960
-so you don't have to remember everything
+so you don't have to remember everything…
00:06:22.960 --> 00:06:25.600
-all the key bindings I said to you
+all the key bindings I said to you.
00:06:25.600 --> 00:06:28.560
-so this is a global binding application
+So, this is a global binding application
00:06:28.560 --> 00:06:30.960
-to every other ef application as well
-
-00:06:30.960 --> 00:06:34.319
-so you can find it under the week or or
+to every other EAF application as well.
-00:06:34.319 --> 00:06:36.720
-you can find it under the wiki in the
+00:06:30.960 --> 00:06:36.720
+You can find it under the wiki in the
00:06:36.720 --> 00:06:37.600
-key binding
+keybindings
00:06:37.600 --> 00:06:40.639
-section so press f again and use
+section, so press f again and use
00:06:40.639 --> 00:06:44.240
-ns press enter now you're in the key
+ns, press Enter (RET), now you're in the
00:06:44.240 --> 00:06:45.600
-binding web page
+keybindings web page.
00:06:45.600 --> 00:06:47.520
-you can see all of the key buttons
+You can see all of the keybindings
00:06:47.520 --> 00:06:49.280
available in every
00:06:49.280 --> 00:06:53.919
-es application and you can try them out
+EAF application, and you can try them out,
00:06:53.919 --> 00:06:56.479
and you can customize your key bindings
-00:06:56.479 --> 00:06:57.360
-using ef
+00:06:56.479 --> 00:06:57.956
+using eaf-bind-key,
-00:06:57.360 --> 00:07:00.240
-bank key you can customize control n as
+00:06:57.956 --> 00:07:00.240
+you can customize Control n (C-n) as
00:07:00.240 --> 00:07:02.960
-in the web page to
+in the web page
00:07:02.960 --> 00:07:05.759
-to scroll up in the ef pdf viewer or you
+to scroll up in the EAF PDF viewer, or you
00:07:05.759 --> 00:07:06.639
can unbind
-00:07:06.639 --> 00:07:09.599
-an existing binding using using yet bank
+00:07:06.639 --> 00:07:08.806
+an existing binding using
-00:07:09.599 --> 00:07:10.000
-key
+00:07:08.806 --> 00:07:10.000
+eaf-bind-key,
00:07:10.000 --> 00:07:14.840
-binder to new so it doesn't bind to
+bind it to nil, so it doesn't bind to
00:07:14.840 --> 00:07:16.160
-anything
+anything.
00:07:16.160 --> 00:07:20.319
-okay so here comes the important part
+Okay, so, here comes the important part,
00:07:20.319 --> 00:07:22.479
-if you want to customize ef you should
+if you want to customize EAF, you should
00:07:22.479 --> 00:07:25.440
-visit the customization page in the wiki
+visit the customization page in the wiki.
00:07:25.440 --> 00:07:28.840
-so now I press meta b to go back in
+Now, I press Meta b to go back in
00:07:28.840 --> 00:07:30.240
-history and
+history, and
00:07:30.240 --> 00:07:32.960
-go to the customization package press f
+go to the customization page, press f,
00:07:32.960 --> 00:07:34.080
-press a d
+press ad,
00:07:34.080 --> 00:07:36.639
-enter and now we're in the customization
+Enter, and now we're in the customization
00:07:36.639 --> 00:07:37.360
-page
+page.
00:07:37.360 --> 00:07:39.280
-so the first customization option you
+So, the first customization option you
00:07:39.280 --> 00:07:42.639
-see is dark mode
+see is dark mode,
00:07:42.639 --> 00:07:44.479
-let's say if you want to turn on the doc
+let's say, if you want to turn on the dark
00:07:44.479 --> 00:07:46.720
-mode for ef browser
+mode for EAF browser,
00:07:46.720 --> 00:07:48.479
and you don't want to use your mouse to
00:07:48.479 --> 00:07:49.919
-do all this stuff
+do all this stuff.
00:07:49.919 --> 00:07:53.360
-you press c and you can select
+You press c, and you can select
00:07:53.360 --> 00:07:55.840
-c to toggle the correct browsing you can
+c to toggle the caret browsing, you can
00:07:55.840 --> 00:07:58.240
-see a lot of markers available
+see a lot of markers available,
00:07:58.240 --> 00:08:01.280
-pop um again but they're not they're not
+poped up again, but they're not
00:08:01.280 --> 00:08:02.720
on top of links but instead of
00:08:02.720 --> 00:08:03.599
-paragraphs
+paragraphs.
00:08:03.599 --> 00:08:05.360
-you select the paragraph or your choice
+You select the paragraph of your choice,
00:08:05.360 --> 00:08:06.639
in this case you want
00:08:06.639 --> 00:08:10.240
-ls which comes here
+ls which comes here,
00:08:10.240 --> 00:08:12.720
-and then you just you just move the
+and then you just move the
00:08:12.720 --> 00:08:15.120
cursor like what you always do
00:08:15.120 --> 00:08:18.800
-in Emacs and now you select everything
-
-00:08:18.800 --> 00:08:23.280
-and use meta w to
+in Emacs, and now you select everything
-00:08:23.280 --> 00:08:25.680
-excuse me metadata to copy the taste the
-
-00:08:25.680 --> 00:08:26.479
-text
+00:08:18.800 --> 00:08:26.479
+and use Meta w (M-w) to copy the text.
00:08:26.479 --> 00:08:29.199
-now we made a shift column to evaluate
+Now, we (run) Meta Shift colon (M-:) to evaluate
00:08:29.199 --> 00:08:30.960
-what we just copied
+what we just copied,
00:08:30.960 --> 00:08:35.120
-and set that to true and
+and set that to true, and
00:08:35.120 --> 00:08:38.320
-press r or f5 to refresh the page
+press r or F5 to refresh the page,
00:08:38.320 --> 00:08:42.159
-voila we have the dark mode enabled
+voilà we have the dark mode enabled.
00:08:42.159 --> 00:08:44.880
-so there are well let's take a toggle
+So, there are…, well, let's toggle
00:08:44.880 --> 00:08:46.160
-back off for now
+it back off for now.
00:08:46.160 --> 00:08:49.360
-now we made our shift column again
+Now, we (run) Meta Shift colon (M-:) again,
00:08:49.360 --> 00:08:51.600
-and we find the the one we just used and
+and we find the one we just used, and
00:08:51.600 --> 00:08:53.519
-change it back to false
+change it back to false,
00:08:53.519 --> 00:08:56.880
-and refresh the page back in the light
+and refresh the page, back in the light
00:08:56.880 --> 00:08:59.360
-mode
+mode.
00:08:59.360 --> 00:09:02.160
-so there are many other customization
+So, there are many other customization
00:09:02.160 --> 00:09:03.680
-options available you can either
+options available, you can either
00:09:03.680 --> 00:09:05.920
evaluate like what we just did or add it
00:09:05.920 --> 00:09:08.000
-to your Emacs configuration file
+to your Emacs configuration file.
00:09:08.000 --> 00:09:11.680
-so in this wiki you can have you can
+So, in this wiki…,
00:09:11.680 --> 00:09:14.399
-you can make the ef browser to to
+you can make the EAF browser to
00:09:14.399 --> 00:09:16.320
continue where you left off
00:09:16.320 --> 00:09:20.160
-similar to the chromium setting
+similar to the Chromium setting.
00:09:20.160 --> 00:09:22.800
-and you can make yes the default browser
+You can make EAF the default browser
00:09:22.800 --> 00:09:23.839
-Emacs by
+(in) Emacs by
00:09:23.839 --> 00:09:26.720
-aliasing aliasing browse web to your
+aliasing browse-web to
00:09:26.720 --> 00:09:27.680
-open browser
-
-00:09:27.680 --> 00:09:30.399
-or or set the browse url browser
+eaf-open-browser,
-00:09:30.399 --> 00:09:31.200
-function to
+00:09:27.680 --> 00:09:31.200
+or set the browse-url-browser-function to
00:09:31.200 --> 00:09:33.519
-open browser there's just some tricks
+eaf-open-browser, there's just some tricks.
00:09:33.519 --> 00:09:34.480
-and there are also
+And there (is) also
00:09:34.480 --> 00:09:37.920
-uh an experimental app blocker currently
+an experimental adblocker currently
00:09:37.920 --> 00:09:41.680
-take in place and so therefore it can
+in place, therefore it can
00:09:41.680 --> 00:09:44.720
-block some elements but not all so
+block some elements but not all, so
00:09:44.720 --> 00:09:47.279
-we we really encourage people to help us
+we really encourage people to help us
00:09:47.279 --> 00:09:48.240
test out and
00:09:48.240 --> 00:09:51.440
-add more conditions in
+add more conditions in.
00:09:51.440 --> 00:09:54.560
-so you can so the ef browser is able to
+So, you can…, the EAF Browser is able to
00:09:54.560 --> 00:09:55.760
download
00:09:55.760 --> 00:09:57.680
-any files from the internet and it will
-
-00:09:57.680 --> 00:09:59.920
-be downloaded using
+any files from the internet, and it will
-00:09:59.920 --> 00:10:04.000
-a area too and
+00:09:57.680 --> 00:10:04.000
+be downloaded using Aria2.
-00:10:04.000 --> 00:10:06.079
-you can also customize the ef browser
+00:10:04.000 --> 00:10:05.339
+You can also customize
-00:10:06.079 --> 00:10:07.200
-download path
+00:10:05.339 --> 00:10:07.200
+the eaf-browser-download-path
00:10:07.200 --> 00:10:11.120
-using ef set so it's a function that we
+using eaf-setq, it's a function that we
-00:10:11.120 --> 00:10:14.399
-defined similar to set the normal set we
+00:10:11.120 --> 00:10:13.623
+defined similar to setq,
-00:10:14.399 --> 00:10:15.040
-know
+00:10:13.623 --> 00:10:15.040
+the normal setq we know.
00:10:15.040 --> 00:10:16.480
-so by default the download file is
+So, by default the download file is
00:10:16.480 --> 00:10:18.160
stored in your home directory slash
00:10:18.160 --> 00:10:19.600
-downloads
+downloads,
00:10:19.600 --> 00:10:20.800
and you can change that whenever you
00:10:20.800 --> 00:10:22.720
-want you can also disable
+want. You can also disable
00:10:22.720 --> 00:10:26.079
-saving browsing history so remember
+saving browsing history, so, remember
-00:10:26.079 --> 00:10:28.959
-when I press when I use mx you have open
+00:10:26.079 --> 00:10:27.089
+when I press…,
+
+00:10:27.089 --> 00:10:28.959
+when I use M-x eaf-open-browser's
00:10:28.959 --> 00:10:30.480
-browser's history I see all the
+history, I see all the
00:10:30.480 --> 00:10:32.079
-histories here but if you want more
+histories here, but if you want more
00:10:32.079 --> 00:10:33.680
-privacy you don't want that to be
+privacy, you don't want that to be
00:10:33.680 --> 00:10:35.360
-available at all you can turn it off
-
-00:10:35.360 --> 00:10:36.560
-easily with ef
+available at all. You can turn it off
-00:10:36.560 --> 00:10:38.720
-set queue and set that remember history
+00:10:35.360 --> 00:10:37.356
+easily with eaf-setq,
-00:10:38.720 --> 00:10:40.640
-to false
+00:10:37.356 --> 00:10:40.640
+and set that remember-history to false.
00:10:40.640 --> 00:10:42.399
-you can also say your default search
+You can also set your default search
00:10:42.399 --> 00:10:43.839
-engine so
+engine.
00:10:43.839 --> 00:10:47.200
-so right now we have google although
+Right now we have Google, although
00:10:47.200 --> 00:10:50.480
-not not really good but google and also
+not really good but… Google and also
00:10:50.480 --> 00:10:53.600
-go which is a better search engine
+DuckDuckGo which is a better search engine,
00:10:53.600 --> 00:10:57.360
-well uh yeah ethically better search
+well, yeah, ethically better search
00:10:57.360 --> 00:10:59.360
-engine
+engine.
00:10:59.360 --> 00:11:02.560
-so you can also configure
+So, you can also configure
00:11:02.560 --> 00:11:05.040
-the zoom so the default zoom of your
+the zoom. The default zoom of your
00:11:05.040 --> 00:11:07.600
-browser is 1.0 so you can convert
+browser is 1.0, you can convert
00:11:07.600 --> 00:11:10.000
-convert 3000 to 1.25 so you can so when
+default-zoom to 1.25, so when
00:11:10.000 --> 00:11:11.920
-you open any web page about it will be
-
-00:11:11.920 --> 00:11:14.079
-zoomed
+you open any web page, it will be
-00:11:14.079 --> 00:11:17.360
-by default uh you can
+00:11:11.920 --> 00:11:17.360
+zoomed by default. You can
00:11:17.360 --> 00:11:20.399
-also disable javascript although I
+also disable JavaScript, although I
00:11:20.399 --> 00:11:22.240
personally don't really suggest you to
00:11:22.240 --> 00:11:23.440
-do because it will
+do, because it will
00:11:23.440 --> 00:11:26.240
-basically break a lot of our features
+basically break a lot of our features,
00:11:26.240 --> 00:11:28.480
-because a lot of the browser browser
+because a lot of the browser
00:11:28.480 --> 00:11:29.519
related features
00:11:29.519 --> 00:11:33.760
-must be implemented using javascript
+must be implemented using JavaScript,
00:11:33.760 --> 00:11:35.440
-but yeah you can do it if you really
+but yeah, you can do it if you really
00:11:35.440 --> 00:11:37.920
-want to and there also some
+want to. And there's also some
00:11:37.920 --> 00:11:41.519
-customization on ef camera
+customization on EAF Camera
00:11:41.519 --> 00:11:47.760
-you can do as well yeah
+you can do as well.
00:11:47.760 --> 00:11:52.399
-so uh let's move on to efpd viewer
+Let's move on to EAF PDF Viewer.
00:11:52.399 --> 00:11:56.079
-so now now let's open
+Now, let's open
00:11:56.079 --> 00:11:59.440
-the pdf file using af
+the PDF file using EAF.
00:11:59.440 --> 00:12:01.519
-so that's one something already here but
+So, that's one something already here, but
00:12:01.519 --> 00:12:02.720
-let's open it here
+let's open it here.
00:12:02.720 --> 00:12:06.079
-so yes open and
+So, eaf-open, and
00:12:06.079 --> 00:12:08.160
-select introduction to programming in
+select "Introduction to Programming in
00:12:08.160 --> 00:12:11.440
-e-max list
+Emacs Lisp".
00:12:11.440 --> 00:12:13.760
-uh I have it already open but it's okay
+I have it already open, but it's okay.
00:12:13.760 --> 00:12:17.040
-so you have the file
+So, you have the file,
00:12:17.040 --> 00:12:20.160
-you have other files displayed
+you have other files displayed…
00:12:20.160 --> 00:12:22.800
-you have all the pages display story yes
-
-00:12:22.800 --> 00:12:23.200
-and
+you have all the pages display, sorry.
00:12:23.200 --> 00:12:27.040
-there are 273 pages in total but notice
+There are 273 pages in total, but notice
00:12:27.040 --> 00:12:29.279
-like how fast it is to browse
+how fast it is to browse
00:12:29.279 --> 00:12:31.440
-all the pages it is blazingly fast
+all the pages, it is blazingly fast,
00:12:31.440 --> 00:12:33.519
-that's all thanks to python and
+that's all thanks to Python and
00:12:33.519 --> 00:12:37.040
-mupdf which you don't really get from
+MuPDF which you don't really get from
00:12:37.040 --> 00:12:40.880
-Emacs list
+Emacs Lisp.
00:12:40.880 --> 00:12:43.600
-so let's say if I want to jump to page
+So, let's say if I want to jump to page
00:12:43.600 --> 00:12:44.079
-50
+50.
00:12:44.079 --> 00:12:48.639
-we press p and enter 50.
+We press p and Enter 50.
00:12:48.639 --> 00:12:53.279
-50 and here we are we are at page 50.
+And here we are, we are at page 50.
00:12:53.279 --> 00:12:55.440
-you can look at the lower right to
+You can look at the lower right to
00:12:55.440 --> 00:12:58.880
-verify the page you're on
-
-00:12:58.880 --> 00:13:02.079
-and you can you can
+verify the page you're on.
-00:13:02.079 --> 00:13:05.120
-use I to toggle dark mode
+00:12:58.880 --> 00:13:05.120
+You can use i to toggle dark mode
00:13:05.120 --> 00:13:07.839
-as expected and let's say you want to
+as expected. Let's say you want to
00:13:07.839 --> 00:13:08.240
find
00:13:08.240 --> 00:13:11.519
-table of contents so use ctrl s
+table of contents, so use Control s —
00:13:11.519 --> 00:13:15.680
-the image default binding for I search
+the Emacs default binding for I-search,
00:13:15.680 --> 00:13:19.360
-and search for a table of contents
+and search for a "table of contents",
00:13:19.360 --> 00:13:21.680
-here we are it is highlighted for you
+here we are, it is highlighted for you,
00:13:21.680 --> 00:13:23.120
-and you can control s for more but
+and you can Control s for more but
-00:13:23.120 --> 00:13:24.240
-there's only one or
+00:13:23.120 --> 00:13:26.006
+there's only one match,
-00:13:24.240 --> 00:13:27.200
-one match one other one you ctrl g to
+00:13:26.006 --> 00:13:27.200
+you (press) Control g (C-g) to
00:13:27.200 --> 00:13:28.800
-disable the highlight
+disable the highlight,
00:13:28.800 --> 00:13:30.880
and you see a lot of options for you to
00:13:30.880 --> 00:13:32.320
-go
+go.
00:13:32.320 --> 00:13:35.040
-okay let's say if you want to go to the
+Okay. Let's say, if you want to go to the
00:13:35.040 --> 00:13:36.240
-preface
+preface.
00:13:36.240 --> 00:13:39.519
-so that is you press f which which is
+That is, you press f which is
00:13:39.519 --> 00:13:40.639
also similar to
00:13:40.639 --> 00:13:44.240
-eef browser you press f for vimeo
+EAF browser, you press f for Vimium,
00:13:44.240 --> 00:13:47.760
-and you see the marker now change to w
+and you see the marker, now change to wn,
00:13:47.760 --> 00:13:50.160
-press wn and then you can go to the
+press wn, and then you can go to the
00:13:50.160 --> 00:13:51.279
-prefix
+preface.
00:13:51.279 --> 00:13:54.320
-now we'll add a prefix
+Now, we are at the preface.
00:13:54.320 --> 00:13:56.480
-so now you finish reading you want to
+So, now you finish reading, you want to
00:13:56.480 --> 00:13:57.600
-save your progress
+save your progress?
00:13:57.600 --> 00:13:59.440
-no worries it is already saved for you
+No worries, it is already saved for you
00:13:59.440 --> 00:14:01.199
-by ef you can safely
+by EAF. You can safely
00:14:01.199 --> 00:14:04.240
-close the document using x
+close the document using x,
00:14:04.240 --> 00:14:07.519
-and opening again af
+and opening again, eaf-open,
00:14:07.519 --> 00:14:10.560
-open and the file see your I
+and the file…, see you are at
00:14:10.560 --> 00:14:14.000
-preface again so you're right at where
+preface again. You're right at where
00:14:14.000 --> 00:14:16.560
-you let up left up
+you left of.
00:14:16.560 --> 00:14:19.440
-you can also use mx org store link or
+You can also use M-x org-store-link, or
00:14:19.440 --> 00:14:20.480
-ctrl cl
+Control c l (C-c l) —
00:14:20.480 --> 00:14:23.279
-which I prefer to if you want to save a
+which I prefer, if you want to save a
00:14:23.279 --> 00:14:24.480
particular page in
00:14:24.480 --> 00:14:28.240
-a orgmo file so now
+a Org mode file. Now,
00:14:28.240 --> 00:14:30.320
-I go back to my presentation now I don't
+I go back to my presentation doc, I don't
00:14:30.320 --> 00:14:31.760
-need this anymore
+need this anymore.
00:14:31.760 --> 00:14:35.600
-uh so you just control c control l
+So, you just (press) Control c Control l (C-c C-l),
00:14:35.600 --> 00:14:39.120
-or I think mx or insert link
+or I think M-x org-insert-link.
00:14:39.120 --> 00:14:41.040
-so you can find the file right here and
+You can find the file right here, and
00:14:41.040 --> 00:14:42.399
-you press enter
+you press Enter (RET),
00:14:42.399 --> 00:14:44.320
-and you press enter for the description
+and you press Enter (RET) for the description
00:14:44.320 --> 00:14:46.480
-again and now it's right here
+again, and now it's right here,
00:14:46.480 --> 00:14:50.720
-and ctrl c ctrl o to open it voila
+and Control c Control o (C-c C-o) to open it. Voilà!
00:14:50.720 --> 00:14:54.000
-you're back right so
+You're back.
00:14:54.000 --> 00:14:57.120
-let's now demonstrate the ef video
+Let's now demonstrate the EAF Video
00:14:57.120 --> 00:14:58.880
-player
+Player.
00:14:58.880 --> 00:15:02.639
-so mxef open if you use ef open whenever
+So, M-x eaf-open, you use eaf-open whenever
00:15:02.639 --> 00:15:03.279
you want to
00:15:03.279 --> 00:15:06.079
-open some file you use yet open browser
+open some file. You use eaf-open-browser
00:15:06.079 --> 00:15:07.279
if you want to use some
@@ -1153,100 +1129,100 @@ if you want to use some
actual application that's not really
00:15:09.920 --> 00:15:11.199
-related to a file
+related to a file.
00:15:11.199 --> 00:15:14.800
-so you have open and select the video
+So, eaf-open, and select the video
00:15:14.800 --> 00:15:15.600
-you want so
+you want, so,
00:15:15.600 --> 00:15:18.320
-video demo so I already have a video
+video-demo, I already have a video
00:15:18.320 --> 00:15:19.040
demo
00:15:19.040 --> 00:15:21.839
-ready so because I recorded a video of
+ready, because I recorded a video of
00:15:21.839 --> 00:15:22.720
the demo
00:15:22.720 --> 00:15:26.000
-of the ef camera have a look so
+of the EAF Camera, have a look.
00:15:26.000 --> 00:15:28.079
-let's move to the beginning hello people
+Let's move to the beginning, "Hello people
00:15:28.079 --> 00:15:29.279
-from the future
+from the future!
00:15:29.279 --> 00:15:32.399
-this is a demo of the ef video player
+This is a demo of the EAF Video Player
00:15:32.399 --> 00:15:35.199
-that demos the ef camera feature
+that demos the EAF Camera feature,
00:15:35.199 --> 00:15:37.440
-so as you can see on the screen of me
+so, as you can see on the screen of me
00:15:37.440 --> 00:15:38.639
-inside my camera
+inside my camera,
00:15:38.639 --> 00:15:40.959
and the screen is actually with all
00:15:40.959 --> 00:15:42.880
-within Emacs
+within Emacs.
+
+00:15:42.880 --> 00:15:45.273
+(Right, the video itself is as well, haha.)
-00:15:42.880 --> 00:15:46.079
-right so and you can open this
+00:15:45.273 --> 00:15:46.079
+You can open this
00:15:46.079 --> 00:15:49.839
-using here open camera
+using eaf-open-camera
00:15:49.839 --> 00:15:53.040
-and which I'm already into and you can
+which I'm already into, and you can
00:15:53.040 --> 00:15:53.600
press
00:15:53.600 --> 00:15:56.720
-p to capture a photo
+p to capture a photo,
00:15:56.720 --> 00:15:59.680
-so the photo is by default stored at
+so, the photo is by default stored at
-00:15:59.680 --> 00:16:00.880
-your home slash
+00:15:59.680 --> 00:16:02.773
+your $HOME/Downloads directory,
-00:16:00.880 --> 00:16:03.920
-downloads directory and you can modify
-
-00:16:03.920 --> 00:16:04.320
-it
+00:16:02.773 --> 00:16:04.320
+and you can modify it
00:16:04.320 --> 00:16:07.839
-freely so if you go here and you can see
+freely. If you go here, and you can see
00:16:07.839 --> 00:16:09.519
the camera stored
00:16:09.519 --> 00:16:13.759
-right here so why what I used here
+right here."
00:16:13.759 --> 00:16:16.240
-so you press space to pause what I used
+So, you press Space (SPC) to pause, what I used
00:16:16.240 --> 00:16:17.120
here is
00:16:17.120 --> 00:16:20.320
-the year so ef open this entire so
+the eaf-open-this-from-dired.
00:16:20.320 --> 00:16:22.959
-basically so in direct you you go to you
+Basically, in dired
00:16:22.959 --> 00:16:23.839
you select
@@ -1255,109 +1231,103 @@ you select
the file that should be opened by
00:16:26.959 --> 00:16:30.320
-eaf and I use that so it it detects that
+EAF, and I used that. It detects that
00:16:30.320 --> 00:16:32.720
-it wants to use the ef image viewer so
+it wants to use the EAF Image Viewer, so
00:16:32.720 --> 00:16:35.839
-I accidentally tested if image viewer
-
-00:16:35.839 --> 00:16:39.759
-before I noticed so that that that gives
+I accidentally tested EAF Image Viewer
-00:16:39.759 --> 00:16:40.240
-the
+00:16:35.839 --> 00:16:40.240
+before I noticed. That gives the
00:16:40.240 --> 00:16:43.680
image of the photo I just took
00:16:43.680 --> 00:16:47.040
-using ef camera and as you can see you
+using EAF Camera. As you can see, you
00:16:47.040 --> 00:16:47.360
can
00:16:47.360 --> 00:16:50.720
-I can use hl the bim button to navigate
+use hl — the Vim binding to navigate
-00:16:50.720 --> 00:16:51.600
-in the time
+00:16:50.720 --> 00:16:53.256
+in the timestamp in the video,
-00:16:51.600 --> 00:16:55.920
-timestamp in the video and I can use
+00:16:53.256 --> 00:16:55.920
+and I can use
00:16:55.920 --> 00:17:02.320
-jk to to change the volumes of the video
+jk to change the volumes of the video.
00:17:02.320 --> 00:17:05.520
-alright so now you've seen all the basic
+Alright. Now, you've seen all the basic
00:17:05.520 --> 00:17:06.160
usages
00:17:06.160 --> 00:17:08.720
-of the ef project it comes the question
+of the EAF project, it comes the question
00:17:08.720 --> 00:17:11.600
-of what is the magic behind it
+of what is the magic behind it.
00:17:11.600 --> 00:17:14.559
-all right let's open the hacking page in
+All right. Let's open the hacking page in
00:17:14.559 --> 00:17:15.919
-the wiki
+the wiki,
00:17:15.919 --> 00:17:20.400
-the design is laid out in a diagram here
+the design is laid out in a diagram here.
00:17:20.400 --> 00:17:25.120
-so and let's put it
+Let's put it
00:17:25.120 --> 00:17:27.839
-side by side along with my text so you
+side by side along with my text, so
-00:17:27.839 --> 00:17:28.160
-can
-
-00:17:28.160 --> 00:17:32.320
-go we can follow through
+00:17:27.839 --> 00:17:32.320
+we can follow through.
00:17:32.320 --> 00:17:36.080
-right okay let me
+Right, okay. Let me…,
00:17:36.080 --> 00:17:42.320
-sorry let me drink some water
+sorry, let me drink some water.
00:17:42.320 --> 00:17:46.000
-so this page in the wiki went into a lot
+This page in the wiki went into a lot
00:17:46.000 --> 00:17:48.160
-of detail
+of detail,
00:17:48.160 --> 00:17:49.520
due to the time constraint I will just
00:17:49.520 --> 00:17:51.679
-rephrase some of the ideas here so for
+rephrase some of the ideas here, so for
00:17:51.679 --> 00:17:53.520
-anyone interested please have a look at
+anyone interested, please have a look at
00:17:53.520 --> 00:17:55.600
-the wiki yourself
+the wiki yourself.
00:17:55.600 --> 00:17:58.160
-the easiest way to think about eaf is
+The easiest way to think about EAF is
00:17:58.160 --> 00:17:58.720
that
00:17:58.720 --> 00:18:01.679
-the actual gui application is started in
+the actual GUI application is started in
00:18:01.679 --> 00:18:02.960
-the background
+the background,
00:18:02.960 --> 00:18:04.960
then the frame of the application is
@@ -1369,37 +1339,37 @@ attached to the appropriate location on
the
00:18:07.679 --> 00:18:10.720
-Emacs window so
+Emacs window. So,
00:18:10.720 --> 00:18:13.440
-you have linked qt5 with Emacs using
+EAF linked Qt5 with Emacs using
00:18:13.440 --> 00:18:14.960
-list and python
+Elisp and Python.
00:18:14.960 --> 00:18:17.120
-of the python site which is colored
+On the Python side which is colored
00:18:17.120 --> 00:18:18.640
-yellow in the image
+yellow in the image,
-00:18:18.640 --> 00:18:20.559
-you have two graphics view and queue
+00:18:18.640 --> 00:18:20.439
+we have QGraphicsView and
-00:18:20.559 --> 00:18:22.960
-graphics scene objects
+00:18:20.439 --> 00:18:22.960
+QGraphicsScene objects.
00:18:22.960 --> 00:18:25.039
-these are used to simulate the e-max
+These are used to simulate the Emacs
00:18:25.039 --> 00:18:26.640
window buffer design
00:18:26.640 --> 00:18:28.640
-where q graphics scene is similar to
+where QGraphicsScene is similar to
00:18:28.640 --> 00:18:29.840
-buffers in Emacs
+buffers in Emacs,
00:18:29.840 --> 00:18:31.840
it controls the state and the content
@@ -1407,119 +1377,116 @@ it controls the state and the content
00:18:31.840 --> 00:18:34.240
details of the application
-00:18:34.240 --> 00:18:39.039
-well q graphics view is similar to
-
-00:18:39.039 --> 00:18:41.200
-geographic view is similar to imax
+00:18:34.240 --> 00:18:41.200
+where QGraphicsView is similar to Emacs
00:18:41.200 --> 00:18:43.200
-window it populates the buffer
+window. It populates the buffer
00:18:43.200 --> 00:18:45.919
-to graphics scene to the full program at
+(QGraphicsScene) to the foreground at
00:18:45.919 --> 00:18:46.960
the appropriate
-00:18:46.960 --> 00:18:50.320
-position whenever an ef mode buffer
+00:18:46.960 --> 00:18:48.573
+position.
+
+00:18:48.573 --> 00:18:50.320
+Whenever an EAF mode buffer
00:18:50.320 --> 00:18:57.679
-brings to a background
+brings to a background….
00:18:57.679 --> 00:18:59.679
-whenever an ef mode buffer brings to the
+Whenever an EAF mode buffer brings to the
00:18:59.679 --> 00:19:00.880
-foreground sorry
+foreground, sorry,
00:19:00.880 --> 00:19:02.559
-a queue graphics view instance is
+a QGraphicsView instance is
00:19:02.559 --> 00:19:05.120
-created and whenever the buffer goes to
+created, and whenever the buffer goes to
00:19:05.120 --> 00:19:06.080
the background
00:19:06.080 --> 00:19:08.000
-the q graphics view instance is then
+the QGraphicsView instance is then
00:19:08.000 --> 00:19:09.120
-deleted
+deleted,
00:19:09.120 --> 00:19:10.960
-while q graphics scene the actual
+while QGraphicsScene — the actual
00:19:10.960 --> 00:19:12.480
-process remains running in the
+process — remains running in the
00:19:12.480 --> 00:19:14.480
-background until the ef mode buffer is
+background until the EAF mode buffer is
00:19:14.480 --> 00:19:16.000
-killed
+killed.
00:19:16.000 --> 00:19:18.320
-gpa compositing is used to ensure that q
+GPU compositing is used to ensure that
00:19:18.320 --> 00:19:19.440
-graphics view and
+QGraphicsView and
00:19:19.440 --> 00:19:21.840
-graphics sync is synchronized real time
+QGraphicsScene is synchronized real time.
00:19:21.840 --> 00:19:24.000
-using q windows set parent function
+Using QWindow::setParent function
00:19:24.000 --> 00:19:25.679
-the queue graphics view is attached to
+the QGraphicsView is attached to the
00:19:25.679 --> 00:19:27.840
-appropriate location on the e-max frame
+appropriate location on the Emacs frame,
00:19:27.840 --> 00:19:30.640
-so that although great applications are
+so that although GUI applications are
00:19:30.640 --> 00:19:32.400
-not running within e-max
+not running within Emacs,
00:19:32.400 --> 00:19:36.160
-they look as if they were
+they look as if they were.
00:19:36.160 --> 00:19:39.039
-so when user types on the keyboard it is
+When user types on the keyboard it is
00:19:39.039 --> 00:19:41.039
-first received by the Emacs ef
+first received by the Emacs
00:19:41.039 --> 00:19:43.520
-ef mode buffer and then it lifts sends
+EAF mode buffer, and then Elisp sends
00:19:43.520 --> 00:19:45.360
-the event to google graphics sync using
+the event to QGraphicsScene using
00:19:45.360 --> 00:19:46.240
-dbus
+D-Bus.
00:19:46.240 --> 00:19:48.720
-when user clicks on the gui application
-
-00:19:48.720 --> 00:19:50.400
-it is received by the queue graphics
+When user clicks on the GUI application
-00:19:50.400 --> 00:19:50.799
-view
+00:19:48.720 --> 00:19:50.799
+it is received by the QGraphicsView
00:19:50.799 --> 00:19:53.280
-and process in python ellipse can
+and processed in Python. Elisp can
00:19:53.280 --> 00:19:55.200
-communicate with python through dbus
+communicate with Python through D-Bus,
00:19:55.200 --> 00:19:59.200
-in other words in other words you can
+in other words you can
00:19:59.200 --> 00:20:01.360
customize and extend Emacs not just
@@ -1528,187 +1495,184 @@ customize and extend Emacs not just
using
00:20:01.760 --> 00:20:04.480
-lisp and now you can use python this way
+Elisp, and now you can use Python, this way
00:20:04.480 --> 00:20:05.360
one can leverage
00:20:05.360 --> 00:20:07.039
-all the python properties like
+all the Python properties like
00:20:07.039 --> 00:20:09.600
-multi-threading or some other stuff
+multi-threading or some other stuff,
00:20:09.600 --> 00:20:11.679
-the entire python ecosystem can be
+the entire Python ecosystem can be
00:20:11.679 --> 00:20:13.520
-utilized as well
+utilized as well,
00:20:13.520 --> 00:20:16.159
-such as the qt web engine that is the
+such as the Qt web engine that is the
00:20:16.159 --> 00:20:16.960
basis for
00:20:16.960 --> 00:20:20.640
-our eef browser and pi mu pdf is the
+our EAF Browser, and PyMuPDF is the
00:20:20.640 --> 00:20:23.360
-basis for the ef pdf viewer
+basis for the EAF PDF Viewer.
00:20:23.360 --> 00:20:25.840
-so this really opens the window to many
+This really opens the window to many
00:20:25.840 --> 00:20:28.240
many new possibilities to extend Emacs
00:20:28.240 --> 00:20:32.720
-using eaf
+using EAF.
00:20:32.720 --> 00:20:36.080
-all right back here we are always
+All right, back here. We are always
00:20:36.080 --> 00:20:37.760
looking for people to join the
00:20:37.760 --> 00:20:39.679
-development there are many many
+development, there are many many
00:20:39.679 --> 00:20:42.720
-more work that needs to be done like
+more work that needs to be done,
00:20:42.720 --> 00:20:44.640
-such as testing and debug if there are
+such as testing and debug EAF on
00:20:44.640 --> 00:20:46.640
-more linux distros and window managers
+more Linux distros and window managers
00:20:46.640 --> 00:20:47.760
such as i3
00:20:47.760 --> 00:20:51.200
-and stuff I mean you can also add new ef
+and stuff, you can also add new EAF
00:20:51.200 --> 00:20:52.080
-applications
+applications,
00:20:52.080 --> 00:20:54.240
-or debug and enhance existing af
+or debug and enhance existing EAF
00:20:54.240 --> 00:20:55.440
-applications
+applications,
00:20:55.440 --> 00:20:58.000
-or you can port ef to native wayland
+or you can port EAF to native Wayland
00:20:58.000 --> 00:21:00.240
-which I just discussed with the
+which I just discussed with
00:21:00.240 --> 00:21:03.840
-the ems whip kit author uh a kill
+the emacs-webkit author
00:21:03.840 --> 00:21:07.919
-akira tile and she he told me that like
-
-00:21:07.919 --> 00:21:10.159
-really like it must really yeah it
+Akira Kyle, and he told me that
-00:21:10.159 --> 00:21:11.200
-doesn't really work
+00:21:07.919 --> 00:21:11.200
+EAF doesn't really work on
00:21:11.200 --> 00:21:14.320
-um native villain because it uses
+native Wayland, because it uses
00:21:14.320 --> 00:21:16.799
-x valence so it doesn't work on the pgdk
+XWayland, so it doesn't work on the pgtk
00:21:16.799 --> 00:21:18.159
-port of Emacs
+port of Emacs.
00:21:18.159 --> 00:21:20.559
-so and we also need people to pour ef to
+And we also need people to port EAF to
00:21:20.559 --> 00:21:22.080
non-free operating systems
00:21:22.080 --> 00:21:25.600
-including windows and mac os
+including Windows and macOS,
00:21:25.600 --> 00:21:28.480
-and that's because like debug is a linux
+and that's because, like, D-Bus is a Linux
00:21:28.480 --> 00:21:30.080
-specific feature so it doesn't really
+specific feature, so it doesn't really
00:21:30.080 --> 00:21:31.360
-work on other platform
+work on other platform.
00:21:31.360 --> 00:21:33.039
-we need to change replace it with some
+We need to check, replace it with some
00:21:33.039 --> 00:21:34.640
-alternative and
+alternative, and
00:21:34.640 --> 00:21:36.720
-geographic scene somehow doesn't really
+QGraphicsScene somehow doesn't really
00:21:36.720 --> 00:21:38.640
-work on mac os
+work on macOS,
00:21:38.640 --> 00:21:40.320
and there are many other to-do lists
00:21:40.320 --> 00:21:42.880
-available so please have a look
+available, so please have a look
00:21:42.880 --> 00:21:45.039
-if and see it's anything you want to
+and see if there is anything you want to
00:21:45.039 --> 00:21:46.640
-work on
+work on.
00:21:46.640 --> 00:21:49.039
-all right so since this is a
+All right. So, since this is a
00:21:49.039 --> 00:21:51.120
pre-recorded talk I won't be able to do
00:21:51.120 --> 00:21:53.520
-the q a real time in the video
+the Q & A real time in the video.
00:21:53.520 --> 00:21:56.080
-however I will be around on the
+However, I will be around on the
00:21:56.080 --> 00:21:57.200
-collaborate pad
+collaborative pad
-00:21:57.200 --> 00:22:00.559
-and the irc imax con you must come
+00:21:57.200 --> 00:22:00.239
+and the IRC #emacsconf,
-00:22:00.559 --> 00:22:01.360
-questions
+00:22:00.239 --> 00:22:01.360
+#emacsconf-questions
-00:22:01.360 --> 00:22:04.240
-to answer any questions it pops up and
+00:22:01.360 --> 00:22:04.139
+to answer any questions when it pops up,
-00:22:04.240 --> 00:22:05.760
-you can also submit an issue
+00:22:04.139 --> 00:22:05.760
+and you can also submit an issue
00:22:05.760 --> 00:22:09.120
-on the repo and you can check the wiki
+on the repo, and you can check the wiki
00:22:09.120 --> 00:22:12.640
-for some other guides and tricks
+for some other guides and tricks.
00:22:12.640 --> 00:22:15.039
-all right thank you guys and hopefully
+All right. Thank you guys, and hopefully
00:22:15.039 --> 00:22:16.000
-you find the
+you find
00:22:16.000 --> 00:22:18.320
-this year project very interesting and
+this EAF project very interesting, and
00:22:18.320 --> 00:22:24.320
-enjoy the rest of Emacs com 2020
+enjoy the rest of EmacsConf 2020.